| OLD | NEW |
| 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * Controller for QuickView. | 6 * Controller for QuickView. |
| 7 * | 7 * |
| 8 * @param {!FilesQuickView} quickView | 8 * @param {!FilesQuickView} quickView |
| 9 * @param {!MetadataModel} metadataModel File system metadata. | 9 * @param {!MetadataModel} metadataModel File system metadata. |
| 10 * @param {!FileSelectionHandler} selectionHandler | 10 * @param {!FileSelectionHandler} selectionHandler |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 | 196 |
| 197 /** | 197 /** |
| 198 * Update quick view using file entry and loaded metadata. | 198 * Update quick view using file entry and loaded metadata. |
| 199 * | 199 * |
| 200 * @param {!FileEntry} entry | 200 * @param {!FileEntry} entry |
| 201 * @param {Array<MetadataItem>} items | 201 * @param {Array<MetadataItem>} items |
| 202 * @private | 202 * @private |
| 203 */ | 203 */ |
| 204 QuickViewController.prototype.onMetadataLoaded_ = function(entry, items) { | 204 QuickViewController.prototype.onMetadataLoaded_ = function(entry, items) { |
| 205 return this.getQuickViewParameters_(entry, items).then(function(params) { | 205 return this.getQuickViewParameters_(entry, items).then(function(params) { |
| 206 this.quickView_.contentUrl = params.contentUrl || ''; | |
| 207 this.quickView_.type = params.type || ''; | 206 this.quickView_.type = params.type || ''; |
| 208 this.quickView_.filePath = params.filePath || ''; | 207 this.quickView_.filePath = params.filePath || ''; |
| 208 this.quickView_.contentUrl = params.contentUrl || ''; |
| 209 this.quickView_.videoPoster = params.videoPoster || ''; | 209 this.quickView_.videoPoster = params.videoPoster || ''; |
| 210 this.quickView_.audioArtwork = params.audioArtwork || ''; | 210 this.quickView_.audioArtwork = params.audioArtwork || ''; |
| 211 this.quickView_.autoplay = params.autoplay || false; | 211 this.quickView_.autoplay = params.autoplay || false; |
| 212 this.quickView_.browsable = params.browsable || false; |
| 212 }.bind(this)); | 213 }.bind(this)); |
| 213 }; | 214 }; |
| 214 | 215 |
| 215 /** | 216 /** |
| 216 * @typedef {{ | 217 * @typedef {{ |
| 217 * type: string, | 218 * type: string, |
| 218 * filePath: string, | 219 * filePath: string, |
| 219 * contentUrl: (string|undefined), | 220 * contentUrl: (string|undefined), |
| 220 * videoPoster: (string|undefined), | 221 * videoPoster: (string|undefined), |
| 221 * audioArtwork: (string|undefined), | 222 * audioArtwork: (string|undefined), |
| 222 * autoplay: (boolean|undefined) | 223 * autoplay: (boolean|undefined), |
| 224 * browsable: (boolean|undefined), |
| 223 * }} | 225 * }} |
| 224 */ | 226 */ |
| 225 var QuickViewParams; | 227 var QuickViewParams; |
| 226 | 228 |
| 227 /** | 229 /** |
| 228 * @param {!FileEntry} entry | 230 * @param {!FileEntry} entry |
| 229 * @param {Array<MetadataItem>} items | 231 * @param {Array<MetadataItem>} items |
| 230 * @return !Promise<!QuickViewParams> | 232 * @return !Promise<!QuickViewParams> |
| 231 * | 233 * |
| 232 * @private | 234 * @private |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 var file = values[1]; | 306 var file = values[1]; |
| 305 var item = items[0]; | 307 var item = items[0]; |
| 306 if (item.contentThumbnailUrl) { | 308 if (item.contentThumbnailUrl) { |
| 307 params.audioArtwork = item.contentThumbnailUrl; | 309 params.audioArtwork = item.contentThumbnailUrl; |
| 308 } | 310 } |
| 309 params.contentUrl = URL.createObjectURL(file); | 311 params.contentUrl = URL.createObjectURL(file); |
| 310 return params; | 312 return params; |
| 311 }); | 313 }); |
| 312 } | 314 } |
| 313 } | 315 } |
| 314 return Promise.resolve(params); | 316 if (item.externalFileUrl || type === '.folder') { |
| 317 return Promise.resolve(params); |
| 318 } |
| 319 return Promise |
| 320 .all([ |
| 321 getFile(entry), |
| 322 new Promise(function(resolve) { |
| 323 chrome.fileManagerPrivate.getFileTasks([entry], resolve); |
| 324 }) |
| 325 ]) |
| 326 .then(function(values) { |
| 327 var file = values[0]; |
| 328 var tasks = values[1]; |
| 329 var browsable = tasks.some(function(task) { |
| 330 return ['view-in-browser', 'view-pdf'].includes( |
| 331 task.taskId.split('|')[2]); |
| 332 }); |
| 333 params.browsable = browsable; |
| 334 params.contentUrl = browsable && URL.createObjectURL(file); |
| 335 return params; |
| 336 }); |
| 315 }; | 337 }; |
| 316 | 338 |
| 317 /** | 339 /** |
| 318 * Loads a thumbnail from Drive. | 340 * Loads a thumbnail from Drive. |
| 319 * | 341 * |
| 320 * @param {string} url Thumbnail url | 342 * @param {string} url Thumbnail url |
| 321 * @return Promise<{{status: string, data:string, width:number, height:number}}> | 343 * @return Promise<{{status: string, data:string, width:number, height:number}}> |
| 322 * @private | 344 * @private |
| 323 */ | 345 */ |
| 324 QuickViewController.prototype.loadThumbnailFromDrive_ = function(url) { | 346 QuickViewController.prototype.loadThumbnailFromDrive_ = function(url) { |
| 325 return new Promise(function(resolve) { | 347 return new Promise(function(resolve) { |
| 326 ImageLoaderClient.getInstance().load(url, resolve) | 348 ImageLoaderClient.getInstance().load(url, resolve) |
| 327 }); | 349 }); |
| 328 }; | 350 }; |
| OLD | NEW |