From 52c12e63b6d1c437facaec229d03ad1d2d651186 Mon Sep 17 00:00:00 2001 From: Benjamin Stern <1266727+benjamin-stern@users.noreply.github.com> Date: Sun, 9 Nov 2025 11:15:28 +0200 Subject: [PATCH] fix: Sync basename parsing for different hosts (#583) --- lib/providers/sync_provider.dart | 5 +++-- lib/util/string_extensions.dart | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/providers/sync_provider.dart b/lib/providers/sync_provider.dart index f06c354..f484e51 100644 --- a/lib/providers/sync_provider.dart +++ b/lib/providers/sync_provider.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'dart:developer'; import 'dart:io'; +import 'package:fladder/util/string_extensions.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart' hide ConnectionState; @@ -620,11 +621,11 @@ extension SyncNotifierHelpers on SyncNotifier { if (parent == null) { await _db.insertItem(syncItem); } - + return syncItem.copyWith( fileSize: response.mediaSources?.firstOrNull?.size ?? 0, syncing: false, - videoFileName: response.path?.split('/').lastOrNull ?? "", + videoFileName: response.path?.universalBasename ?? "", ); } diff --git a/lib/util/string_extensions.dart b/lib/util/string_extensions.dart index b7f8982..c8d62a2 100644 --- a/lib/util/string_extensions.dart +++ b/lib/util/string_extensions.dart @@ -1,4 +1,5 @@ import 'package:fladder/models/items/item_shared_models.dart'; +import 'package:path/path.dart' as path; extension StringExtensions on String { String capitalize() { @@ -49,6 +50,13 @@ extension StringExtensions on String { return result; } + + /// Supports both Linux and Windows server path separators as referenced in [path.separator]. + /// Instead of the [path.basename] method, which returns the last part of the path for the current client platform. + String get universalBasename { + final parts = split(RegExp(r'[\\/]+')); + return parts.where((s)=>s.isNotEmpty).lastOrNull ?? ''; + } } extension ListExtensions on List {