OLD | NEW |
---|---|
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 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * Object representing an image item (a photo). | 8 * Object representing an image item (a photo). |
9 * | 9 * |
10 * @param {FileEntry} entry Image entry. | 10 * @param {FileEntry} entry Image entry. |
11 * @param {EntryLocation} locationInfo Entry location information. | |
11 * @param {function():Promise} fethcedMediaProvider Function to provide the | 12 * @param {function():Promise} fethcedMediaProvider Function to provide the |
12 * fetchedMedia metadata. | 13 * fetchedMedia metadata. |
13 * @param {boolean} original Whether the entry is original or edited. | 14 * @param {boolean} original Whether the entry is original or edited. |
14 * @param {boolean} readonly Whether the entry is located at readonly directory | 15 * @param {boolean} readonly Whether the entry is located at readonly directory |
hirono
2014/09/04 03:45:02
If the item takes EntryLocation, we don't need to
| |
15 * or not. | 16 * or not. |
16 * @constructor | 17 * @constructor |
17 */ | 18 */ |
18 Gallery.Item = function(entry, metadata, metadataCache, original, readonly) { | 19 Gallery.Item = function( |
20 entry, locationInfo, metadata, metadataCache, original, readonly) { | |
19 /** | 21 /** |
20 * @type {FileEntry} | 22 * @type {FileEntry} |
21 * @private | 23 * @private |
22 */ | 24 */ |
23 this.entry_ = entry; | 25 this.entry_ = entry; |
24 | 26 |
25 /** | 27 /** |
28 * @type {EntryLocation} | |
29 * @private | |
30 */ | |
31 this.locationInfo_ = locationInfo; | |
32 | |
33 /** | |
26 * @type {Object} | 34 * @type {Object} |
27 * @private | 35 * @private |
28 */ | 36 */ |
29 this.metadata_ = Object.freeze(metadata); | 37 this.metadata_ = Object.freeze(metadata); |
30 | 38 |
31 /** | 39 /** |
32 * @type {MetadataCache} | 40 * @type {MetadataCache} |
33 * @private | 41 * @private |
34 */ | 42 */ |
35 this.metadataCache_ = metadataCache; | 43 this.metadataCache_ = metadataCache; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
71 | 79 |
72 Object.seal(this); | 80 Object.seal(this); |
73 }; | 81 }; |
74 | 82 |
75 /** | 83 /** |
76 * @return {FileEntry} Image entry. | 84 * @return {FileEntry} Image entry. |
77 */ | 85 */ |
78 Gallery.Item.prototype.getEntry = function() { return this.entry_; }; | 86 Gallery.Item.prototype.getEntry = function() { return this.entry_; }; |
79 | 87 |
80 /** | 88 /** |
89 * @return {EntryLocation} Entry location information. | |
90 */ | |
91 Gallery.Item.prototype.getLocationInfo = function() { | |
92 return this.locationInfo_; | |
93 }; | |
94 | |
95 /** | |
81 * @return {Object} Metadata. | 96 * @return {Object} Metadata. |
82 */ | 97 */ |
83 Gallery.Item.prototype.getMetadata = function() { return this.metadata_; }; | 98 Gallery.Item.prototype.getMetadata = function() { return this.metadata_; }; |
84 | 99 |
85 /** | 100 /** |
86 * Obtains the latest media metadata. | 101 * Obtains the latest media metadata. |
87 * | 102 * |
88 * This is a heavy operation since it forces to load the image data to obtain | 103 * This is a heavy operation since it forces to load the image data to obtain |
89 * the metadata. | 104 * the metadata. |
90 * @return {Promise} Promise to be fulfilled with fetched metadata. | 105 * @return {Promise} Promise to be fulfilled with fetched metadata. |
(...skipping 29 matching lines...) Expand all Loading... | |
120 | 135 |
121 /** | 136 /** |
122 * @return {boolean} True if this image has not been created in this session. | 137 * @return {boolean} True if this image has not been created in this session. |
123 */ | 138 */ |
124 Gallery.Item.prototype.isOriginal = function() { return this.original_; }; | 139 Gallery.Item.prototype.isOriginal = function() { return this.original_; }; |
125 | 140 |
126 /** | 141 /** |
127 * @return {boolean} Whther the item is located at a readonly directory. | 142 * @return {boolean} Whther the item is located at a readonly directory. |
128 */ | 143 */ |
129 Gallery.Item.prototype.isReadOnly = function() { | 144 Gallery.Item.prototype.isReadOnly = function() { |
130 return this.isReadOnly_; | 145 return this.isReadOnly_; |
131 }; | 146 }; |
132 | 147 |
133 /** | 148 /** |
134 * Obtains the item is on the drive volume or not. | 149 * @return {boolean} Whther the item supports sharing, or not. |
135 * @return {boolean} True if the item is on the drive volume. | |
136 */ | 150 */ |
137 Gallery.Item.prototype.isOnDrive = function() { | 151 Gallery.Item.prototype.isShareable = function() { |
hirono
2014/09/04 03:45:02
Is it used?
| |
138 return !!this.metadata_.drive; | 152 return this.locationInfo_.isShareable; |
139 }; | 153 }; |
140 | 154 |
141 /** | 155 /** |
142 * Obtains the last accessed date. | 156 * Obtains the last accessed date. |
143 * @return {number} Last accessed date. | 157 * @return {number} Last accessed date. |
144 */ | 158 */ |
145 Gallery.Item.prototype.getLastAccessedDate = function() { | 159 Gallery.Item.prototype.getLastAccessedDate = function() { |
146 return this.lastAccessed_; | 160 return this.lastAccessed_; |
147 }; | 161 }; |
148 | 162 |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
345 return Promise.reject(str('GALLERY_FILE_EXISTS')); | 359 return Promise.reject(str('GALLERY_FILE_EXISTS')); |
346 }, function() { | 360 }, function() { |
347 return new Promise( | 361 return new Promise( |
348 this.entry_.moveTo.bind(this.entry_, parentDirectory, newFileName)); | 362 this.entry_.moveTo.bind(this.entry_, parentDirectory, newFileName)); |
349 }.bind(this)); | 363 }.bind(this)); |
350 }.bind(this)); | 364 }.bind(this)); |
351 }.bind(this)).then(function(entry) { | 365 }.bind(this)).then(function(entry) { |
352 this.entry_ = entry; | 366 this.entry_ = entry; |
353 }.bind(this)); | 367 }.bind(this)); |
354 }; | 368 }; |
OLD | NEW |