Improved Safari download performance

This commit is contained in:
Igor Zhukov 2015-02-12 18:54:20 +03:00
parent 7c6fae062b
commit e7d72196f5
3 changed files with 16 additions and 3 deletions

View File

@ -492,6 +492,7 @@ angular.module('izhukov.mtproto.wrapper', ['izhukov.utils', 'izhukov.mtproto'])
}, { }, {
dcID: dcID, dcID: dcID,
fileDownload: true, fileDownload: true,
singleInRequest: true,
createNetworker: true createNetworker: true
}); });
}, 2).then(function (result) { }, 2).then(function (result) {

View File

@ -40,7 +40,12 @@ angular.module('izhukov.utils', [])
return {then: function (cb) { return {then: function (cb) {
return cb(result); return cb(result);
}}; }};
} },
reject: function (result) {
return {then: function (cb, badcb) {
return badcb(result);
}};
},
} }
}) })
@ -109,7 +114,7 @@ angular.module('izhukov.utils', [])
function chooseSaveFile (fileName, ext, mimeType) { function chooseSaveFile (fileName, ext, mimeType) {
if (!$window.chrome || !chrome.fileSystem || !chrome.fileSystem.chooseEntry) { if (!$window.chrome || !chrome.fileSystem || !chrome.fileSystem.chooseEntry) {
return $q.reject(); return qSync.reject();
}; };
var deferred = $q.defer(); var deferred = $q.defer();

View File

@ -2610,7 +2610,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
}) })
.service('AppVideoManager', function ($sce, $rootScope, $modal, $window, MtpApiFileManager, AppUsersManager, FileManager) { .service('AppVideoManager', function ($sce, $rootScope, $modal, $window, MtpApiFileManager, AppUsersManager, FileManager, qSync) {
var videos = {}, var videos = {},
videosForHistory = {}, videosForHistory = {},
windowW = $(window).width(), windowW = $(window).width(),
@ -2736,6 +2736,13 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils'])
access_hash: video.access_hash access_hash: video.access_hash
}; };
if (historyVideo.downloaded && !toFileEntry) {
var cachedBlob = MtpApiFileManager.getCachedFile(inputFileLocation);
if (cachedBlob) {
return qSync.when(cachedBlob);
}
}
historyVideo.progress = {enabled: !historyVideo.downloaded, percent: 1, total: video.size}; historyVideo.progress = {enabled: !historyVideo.downloaded, percent: 1, total: video.size};
var downloadPromise = MtpApiFileManager.downloadFile(video.dc_id, inputFileLocation, video.size, { var downloadPromise = MtpApiFileManager.downloadFile(video.dc_id, inputFileLocation, video.size, {