From b69df79e85dddc3a887b7b16e6dbfbf5055b6329 Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Thu, 27 Nov 2014 16:48:42 +0000 Subject: [PATCH] Improved FxOS downloads --- app/css/app.css | 3 +++ app/css/mobile.css | 3 +++ app/js/lib/ng_utils.js | 20 ++++++++++++++++++++ app/js/services.js | 2 +- app/manifest.webapp | 16 ++++++++++++++++ 5 files changed, 43 insertions(+), 1 deletion(-) diff --git a/app/css/app.css b/app/css/app.css index 433deb14..7659d996 100644 --- a/app/css/app.css +++ b/app/css/app.css @@ -1870,6 +1870,9 @@ img.img_fullsize { -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ } +.video_full_player video { + background: #000; +} .media_modal_info { color: #999; diff --git a/app/css/mobile.css b/app/css/mobile.css index 335bb2e3..0d83f0c5 100644 --- a/app/css/mobile.css +++ b/app/css/mobile.css @@ -1166,6 +1166,9 @@ a.mobile_modal_action .tg_checkbox_label { font-size: 13px; height: 46px; } +.media_modal_top_actions .navbar-quick-media-back:hover { + text-decoration: none; +} .media_modal_top_actions .navbar-quick-media-back .icon-back { position: absolute; margin-left: -18px; diff --git a/app/js/lib/ng_utils.js b/app/js/lib/ng_utils.js index bd28d90e..c15cd1ed 100644 --- a/app/js/lib/ng_utils.js +++ b/app/js/lib/ng_utils.js @@ -214,6 +214,26 @@ angular.module('izhukov.utils', []) window.navigator.msSaveBlob(blob, fileName); return false; } + + if (window.navigator && navigator.getDeviceStorage) { + var storageName = 'sdcard'; + switch (mimeType.split('/')[0]) { + case 'video': storageName = 'videos'; break; + case 'audio': storageName = 'music'; break; + case 'image': storageName = 'pictures'; break; + } + var deviceStorage = navigator.getDeviceStorage(storageName); + + var request = deviceStorage.addNamed(blob, fileName); + + request.onsuccess = function () { + console.log('Device storage save result', this.result); + }; + request.onerror = function () { + }; + return; + } + getFileCorrectUrl(blob, mimeType).then(function (url) { var anchor = document.createElementNS('http://www.w3.org/1999/xhtml', 'a'); anchor.href = url; diff --git a/app/js/services.js b/app/js/services.js index c428a230..b43c1a98 100644 --- a/app/js/services.js +++ b/app/js/services.js @@ -2573,7 +2573,7 @@ angular.module('myApp.services', ['myApp.i18n', 'izhukov.utils']) function saveVideoFile (videoID) { var video = videos[videoID], - mimeType = video.mime_type || 'video/mpeg4', + mimeType = video.mime_type || 'video/mp4', fileExt = mimeType.split('.')[1] || 'mp4', fileName = 't_video' + videoID + '.' + fileExt, historyVideo = videosForHistory[videoID] || video || {}; diff --git a/app/manifest.webapp b/app/manifest.webapp index e8ab25d7..30c41319 100644 --- a/app/manifest.webapp +++ b/app/manifest.webapp @@ -28,6 +28,22 @@ }, "push": { "description": "Required for notifications" + }, + "device-storage:music": { + "description": "Required for voice notes download", + "access": "createonly" + }, + "device-storage:pictures": { + "description": "Required for photos download", + "access": "createonly" + }, + "device-storage:sdcard": { + "description": "Required for documents download", + "access": "createonly" + }, + "device-storage:videos": { + "description": "Required for videos download", + "access": "createonly" } }, "activities": {