This commit is contained in:
Neeraj Gupta
2025-06-16 15:37:11 +05:30
parent fb55b785c2
commit d121bd5ed2
8 changed files with 49 additions and 48 deletions

View File

@@ -267,7 +267,7 @@ Future<void> _init(bool isBackground, {String via = ''}) async {
});
}
_logger.info("PushService/HomeWidget done $tlog");
VideoPreviewServie.instance.init(preferences);
VideoPreviewService.instance.init(preferences);
unawaited(SemanticSearchService.instance.init());
unawaited(MLService.instance.init());
await PersonService.init(
@@ -298,7 +298,7 @@ void logLocalSettings() {
);
_logger.info("Gallery grid size: ${localSettings.getPhotoGridSize()}");
_logger.info(
"Video streaming is enalbed: ${VideoPreviewServie.instance.isVideoStreamingEnabled}",
"Video streaming is enalbed: ${VideoPreviewService.instance.isVideoStreamingEnabled}",
);
}

View File

@@ -165,7 +165,7 @@ class MLService {
} finally {
_isRunningML = false;
computeController.releaseCompute(ml: true);
VideoPreviewServie.instance.queueFiles();
VideoPreviewService.instance.queueFiles();
}
}

View File

@@ -129,7 +129,7 @@ class RemoteSyncService {
fileDataService.syncFDStatus().then((_) {
if (!flagService.hasGrantedMLConsent) {
VideoPreviewServie.instance
VideoPreviewService.instance
.queueFiles(); // if ML is enabled the MLService will queue when ML is done
}
}).ignore();

View File

@@ -41,8 +41,8 @@ import "package:shared_preferences/shared_preferences.dart";
const _maxRetryCount = 3;
class VideoPreviewServie {
final _logger = Logger("VideoPreviewServie");
class VideoPreviewService {
final _logger = Logger("VideoPreviewService");
final LinkedHashMap<int, PreviewItem> _items = LinkedHashMap();
LinkedHashMap<int, EnteFile> fileQueue = LinkedHashMap();
final int _maxPreviewSizeLimitForCache = 50 * 1024 * 1024; // 50 MB
@@ -50,17 +50,19 @@ class VideoPreviewServie {
bool _hasQueuedFile = false;
VideoPreviewServie._privateConstructor();
VideoPreviewService._privateConstructor();
static final VideoPreviewServie instance =
VideoPreviewServie._privateConstructor();
static final VideoPreviewService instance =
VideoPreviewService._privateConstructor();
final cacheManager = DefaultCacheManager();
final videoCacheManager = VideoCacheManager.instance;
int uploadingFileId = -1;
final _dio = NetworkClient.instance.enteDio;
final _enteDio = NetworkClient.instance.enteDio;
final _nonEnteDio = NetworkClient.instance.getDio();
final CollectionsService collectionsService = CollectionsService.instance;
void init(SharedPreferences prefs) {
_prefs = prefs;
@@ -464,7 +466,7 @@ class VideoPreviewServie {
},
encryptionKey,
);
final _ = await _dio.put(
final _ = await _enteDio.put(
"/files/video-data",
data: {
"fileID": file.uploadedFileID!,
@@ -483,7 +485,7 @@ class VideoPreviewServie {
Future<(String, int)> _uploadPreviewVideo(EnteFile file, File preview) async {
_logger.info("Pushing preview for $file");
try {
final response = await _dio.get(
final response = await _enteDio.get(
"/files/data/preview-upload-url",
queryParameters: {
"fileID": file.uploadedFileID!,
@@ -493,7 +495,7 @@ class VideoPreviewServie {
final uploadURL = response.data["url"];
final String objectID = response.data["objectID"];
final objectSize = preview.lengthSync();
final _ = await _dio.put(
final _ = await _enteDio.put(
uploadURL,
data: preview.openRead(),
options: Options(
@@ -635,20 +637,20 @@ class VideoPreviewServie {
Future<Map<String, dynamic>> _getPlaylistData(EnteFile file) async {
late Response<dynamic> response;
if (CollectionsService.instance.isSharedPublicLink(file.collectionID!)) {
response = await NetworkClient.instance.getDio().get(
"${Configuration.instance.getHttpEndpoint()}/public-collection/files/data/fetch/",
queryParameters: {
"fileID": file.uploadedFileID,
"type": "vid_preview",
},
options: Options(
headers: CollectionsService.instance
.publicCollectionHeaders(file.collectionID!),
),
);
if (collectionsService.isSharedPublicLink(file.collectionID!)) {
response = await _nonEnteDio.get(
"${Configuration.instance.getHttpEndpoint()}/public-collection/files/data/fetch/",
queryParameters: {
"fileID": file.uploadedFileID,
"type": "vid_preview",
},
options: Options(
headers:
collectionsService.publicCollectionHeaders(file.collectionID!),
),
);
} else {
response = await _dio.get(
response = await _enteDio.get(
"/files/data/fetch/",
queryParameters: {
"fileID": file.uploadedFileID,
@@ -689,23 +691,22 @@ class VideoPreviewServie {
Future<(String, String)> _getPreviewUrl(EnteFile file) async {
try {
late String url;
if (CollectionsService.instance.isSharedPublicLink(file.collectionID!)) {
final response = await NetworkClient.instance.getDio().get(
"${Configuration.instance.getHttpEndpoint()}/public-collection/files/data/preview",
queryParameters: {
"fileID": file.uploadedFileID,
"type": file.fileType == FileType.video
? "vid_preview"
: "img_preview",
},
options: Options(
headers: CollectionsService.instance
.publicCollectionHeaders(file.collectionID!),
),
);
if (collectionsService.isSharedPublicLink(file.collectionID!)) {
final response = await _nonEnteDio.get(
"${Configuration.instance.getHttpEndpoint()}/public-collection/files/data/preview",
queryParameters: {
"fileID": file.uploadedFileID,
"type":
file.fileType == FileType.video ? "vid_preview" : "img_preview",
},
options: Options(
headers:
collectionsService.publicCollectionHeaders(file.collectionID!),
),
);
url = (response.data["url"] as String);
} else {
final response = await _dio.get(
final response = await _enteDio.get(
"/files/data/preview",
queryParameters: {
"fileID": file.uploadedFileID,

View File

@@ -139,13 +139,13 @@ class AdvancedSettingsScreen extends StatelessWidget {
singleBorderRadius: 8,
alignCaptionedTextToLeft: true,
trailingWidget: ToggleSwitchWidget(
value: () => VideoPreviewServie
value: () => VideoPreviewService
.instance.isVideoStreamingEnabled,
onChanged: () async {
final isEnabled = VideoPreviewServie
final isEnabled = VideoPreviewService
.instance.isVideoStreamingEnabled;
await VideoPreviewServie.instance
await VideoPreviewService.instance
.setIsVideoStreamingEnabled(!isEnabled);
},
),

View File

@@ -379,7 +379,7 @@ class FileAppBarState extends State<FileAppBar> {
await _onTapGuestView();
} else if (value == 99) {
try {
await VideoPreviewServie.instance.chunkAndUploadVideo(
await VideoPreviewService.instance.chunkAndUploadVideo(
context,
widget.file,
);

View File

@@ -77,7 +77,7 @@ class _VideoWidgetState extends State<VideoWidget> {
Future<void> _checkForPreview() async {
if (!widget.file.isOwner) {
final bool isStreamable =
await VideoPreviewServie.instance.isSharedFileStreamble(widget.file);
await VideoPreviewService.instance.isSharedFileStreamble(widget.file);
if (!isStreamable && mounted) {
isPreviewLoadable = false;
setState(() {});
@@ -87,7 +87,7 @@ class _VideoWidgetState extends State<VideoWidget> {
return;
}
widget.playbackCallback?.call(false);
final data = await VideoPreviewServie.instance
final data = await VideoPreviewService.instance
.getPlaylist(widget.file)
.onError((error, stackTrace) {
if (!mounted) return;

View File

@@ -44,7 +44,7 @@ class _PreviewPropertiesItemWidgetState
final textStyle = getEnteTextTheme(context).miniMuted;
final subSectionWidgets = <Widget>[];
final data = await VideoPreviewServie.instance
final data = await VideoPreviewService.instance
.getPlaylist(widget.file)
.onError((error, stackTrace) {
if (!mounted) return;