Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: ui/file_manager/gallery/js/gallery_item.js

Issue 971723002: Files.app: Rename FileSystemMetadata with MetadataModel. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 * Object representing an image item (a photo). 6 * Object representing an image item (a photo).
7 * 7 *
8 * @param {!FileEntry} entry Image entry. 8 * @param {!FileEntry} entry Image entry.
9 * @param {!EntryLocation} locationInfo Entry location information. 9 * @param {!EntryLocation} locationInfo Entry location information.
10 * @param {!Object} metadata Metadata for the entry. 10 * @param {!Object} metadata Metadata for the entry.
11 * @param {!MetadataCache} metadataCache Metadata cache instance. 11 * @param {!MetadataCache} metadataCache Metadata cache instance.
12 * @param {!FileSystemMetadata} fileSystemMetadata File system metadata. 12 * @param {!MetadataModel} metadataModel File system metadata.
13 * @param {boolean} original Whether the entry is original or edited. 13 * @param {boolean} original Whether the entry is original or edited.
14 * @constructor 14 * @constructor
15 * @struct 15 * @struct
16 */ 16 */
17 Gallery.Item = function( 17 Gallery.Item = function(
18 entry, locationInfo, metadata, metadataCache, fileSystemMetadata, 18 entry, locationInfo, metadata, metadataCache, metadataModel,
19 original) { 19 original) {
20 /** 20 /**
21 * @type {!FileEntry} 21 * @type {!FileEntry}
22 * @private 22 * @private
23 */ 23 */
24 this.entry_ = entry; 24 this.entry_ = entry;
25 25
26 /** 26 /**
27 * @type {!EntryLocation} 27 * @type {!EntryLocation}
28 * @private 28 * @private
29 */ 29 */
30 this.locationInfo_ = locationInfo; 30 this.locationInfo_ = locationInfo;
31 31
32 /** 32 /**
33 * @type {!Object} 33 * @type {!Object}
34 * @private 34 * @private
35 */ 35 */
36 this.metadata_ = Object.preventExtensions(metadata); 36 this.metadata_ = Object.preventExtensions(metadata);
37 37
38 /** 38 /**
39 * @type {!MetadataCache} 39 * @type {!MetadataCache}
40 * @private 40 * @private
41 * @const 41 * @const
42 */ 42 */
43 this.metadataCache_ = metadataCache; 43 this.metadataCache_ = metadataCache;
44 44
45 /** 45 /**
46 * @type {!FileSystemMetadata} 46 * @type {!MetadataModel}
47 * @private 47 * @private
48 * @const 48 * @const
49 */ 49 */
50 this.fileSystemMetadata_ = fileSystemMetadata; 50 this.metadataModel_ = metadataModel;
51 51
52 // TODO(yawano): Change this.contentImage and this.screenImage to private 52 // TODO(yawano): Change this.contentImage and this.screenImage to private
53 // fields and provide utility methods for them (e.g. revokeFullImageCache). 53 // fields and provide utility methods for them (e.g. revokeFullImageCache).
54 /** 54 /**
55 * The content cache is used for prefetching the next image when going through 55 * The content cache is used for prefetching the next image when going through
56 * the images sequentially. The real life photos can be large (18Mpix = 72Mb 56 * the images sequentially. The real life photos can be large (18Mpix = 72Mb
57 * pixel array) so we want only the minimum amount of caching. 57 * pixel array) so we want only the minimum amount of caching.
58 * @type {(HTMLCanvasElement|HTMLImageElement)} 58 * @type {(HTMLCanvasElement|HTMLImageElement)}
59 */ 59 */
60 this.contentImage = null; 60 this.contentImage = null;
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 function(metadataList) { 264 function(metadataList) {
265 if (metadataList.length === 1) { 265 if (metadataList.length === 1) {
266 this.metadata_ = metadataList[0]; 266 this.metadata_ = metadataList[0];
267 if (opt_callback) 267 if (opt_callback)
268 opt_callback(true); 268 opt_callback(true);
269 } else { 269 } else {
270 if (opt_callback) 270 if (opt_callback)
271 opt_callback(false); 271 opt_callback(false);
272 } 272 }
273 }.bind(this)); 273 }.bind(this));
274 this.fileSystemMetadata_.notifyEntriesChanged([this.entry_]); 274 this.metadataModel_.notifyEntriesChanged([this.entry_]);
275 }.bind(this); 275 }.bind(this);
276 276
277 var onError = function(error) { 277 var onError = function(error) {
278 console.error('Error saving from gallery', name, error); 278 console.error('Error saving from gallery', name, error);
279 ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('SaveResult'), 0, 2); 279 ImageUtil.metrics.recordEnum(ImageUtil.getMetricName('SaveResult'), 0, 2);
280 if (opt_callback) 280 if (opt_callback)
281 opt_callback(false); 281 opt_callback(false);
282 }; 282 };
283 283
284 var doSave = function(newFile, fileEntry) { 284 var doSave = function(newFile, fileEntry) {
285 var metadataPromise = this.fileSystemMetadata_.get( 285 var metadataPromise = this.metadataModel_.get(
286 [fileEntry], 286 [fileEntry],
287 ['mediaMimeType', 'contentMimeType', 'ifd', 'exifLittleEndian']); 287 ['mediaMimeType', 'contentMimeType', 'ifd', 'exifLittleEndian']);
288 metadataPromise.then(function(metadataItems) { 288 metadataPromise.then(function(metadataItems) {
289 fileEntry.createWriter(function(fileWriter) { 289 fileEntry.createWriter(function(fileWriter) {
290 var writeContent = function() { 290 var writeContent = function() {
291 fileWriter.onwriteend = onSuccess.bind(null, fileEntry); 291 fileWriter.onwriteend = onSuccess.bind(null, fileEntry);
292 var metadataItem = metadataItems[0]; 292 var metadataItem = metadataItems[0];
293 metadataItem.modificationTime = new Date(); 293 metadataItem.modificationTime = new Date();
294 var metadataEncoder = ImageEncoder.encodeMetadata( 294 var metadataEncoder = ImageEncoder.encodeMetadata(
295 metadataItem, canvas, /* quality for thumbnail*/ 0.8); 295 metadataItem, canvas, /* quality for thumbnail*/ 0.8);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 return Promise.reject(str('GALLERY_FILE_EXISTS')); 377 return Promise.reject(str('GALLERY_FILE_EXISTS'));
378 }, function() { 378 }, function() {
379 return new Promise( 379 return new Promise(
380 this.entry_.moveTo.bind(this.entry_, parentDirectory, newFileName)); 380 this.entry_.moveTo.bind(this.entry_, parentDirectory, newFileName));
381 }.bind(this)); 381 }.bind(this));
382 }.bind(this)); 382 }.bind(this));
383 }.bind(this)).then(function(entry) { 383 }.bind(this)).then(function(entry) {
384 this.entry_ = entry; 384 this.entry_ = entry;
385 }.bind(this)); 385 }.bind(this));
386 }; 386 };
OLDNEW
« no previous file with comments | « ui/file_manager/gallery/js/gallery_data_model_unittest.js ('k') | ui/file_manager/gallery/js/gallery_item_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698