fix: android track list parsing
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:io' show Platform;
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -158,8 +159,24 @@ class PlayerNative implements Player {
|
||||
break;
|
||||
|
||||
case 'track-list':
|
||||
List? trackList;
|
||||
if (value is List) {
|
||||
final tracks = _parseTrackList(value);
|
||||
trackList = value;
|
||||
} else if (value is String) {
|
||||
// Android - JSON string that needs parsing
|
||||
try {
|
||||
final decoded = jsonDecode(value);
|
||||
if (decoded is List) {
|
||||
trackList = decoded;
|
||||
}
|
||||
} catch (e) {
|
||||
// Invalid JSON, ignore
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (trackList != null) {
|
||||
final tracks = _parseTrackList(trackList);
|
||||
_state = _state.copyWith(tracks: tracks);
|
||||
_tracksController.add(tracks);
|
||||
}
|
||||
@@ -283,7 +300,10 @@ class PlayerNative implements Player {
|
||||
await _observeProperty('duration', 'double');
|
||||
await _observeProperty('pause', 'flag');
|
||||
await _observeProperty('paused-for-cache', 'flag');
|
||||
await _observeProperty('track-list', 'node');
|
||||
await _observeProperty(
|
||||
'track-list',
|
||||
Platform.isAndroid ? 'string' : 'node',
|
||||
);
|
||||
await _observeProperty('eof-reached', 'flag');
|
||||
await _observeProperty('volume', 'double');
|
||||
await _observeProperty('aid', 'string');
|
||||
|
||||
@@ -56,8 +56,7 @@ class _FolderTreeItemState extends State<FolderTreeItem> {
|
||||
}
|
||||
|
||||
KeyEventResult _handleKeyEvent(FocusNode node, KeyEvent event) {
|
||||
if (event is KeyDownEvent &&
|
||||
isKeyboardActivationKey(event.logicalKey)) {
|
||||
if (event is KeyDownEvent && isKeyboardActivationKey(event.logicalKey)) {
|
||||
_isKeyboardActivation = true;
|
||||
return KeyEventResult.ignored; // Let InkWell handle the activation
|
||||
}
|
||||
|
||||
@@ -225,5 +225,4 @@ class PlexImageHelper {
|
||||
final serverPrefix = serverId != null ? '${serverId}_' : '';
|
||||
return '${serverPrefix}transcode_${width}x${height}_${originalPath.hashCode}';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user