Chromium Code Reviews| Index: ui/file_manager/file_manager/common/js/importer_common.js |
| diff --git a/ui/file_manager/file_manager/common/js/importer_common.js b/ui/file_manager/file_manager/common/js/importer_common.js |
| index ea6faa2a75434a4b01675b081b757e1764ddfb25..7022225dad806c24c3ea3fa127a10a2e1ff93927 100644 |
| --- a/ui/file_manager/file_manager/common/js/importer_common.js |
| +++ b/ui/file_manager/file_manager/common/js/importer_common.js |
| @@ -6,6 +6,15 @@ |
| var importer = importer || {}; |
| /** |
| + * Volume types eligible for the affections of Cloud Import. |
| + * @private @const {!Array.<!VolumeManagerCommon.VolumeType>} |
| + */ |
| +importer.ELIGIBLE_VOLUME_TYPES_ = [ |
| + VolumeManagerCommon.VolumeType.MTP, |
| + VolumeManagerCommon.VolumeType.REMOVABLE |
| +]; |
| + |
| +/** |
| * @enum {string} |
| */ |
| importer.Destination = { |
| @@ -13,6 +22,30 @@ importer.Destination = { |
| }; |
| /** |
| + * Returns true if the entry is a media file (and a descendant of a DCIM dir). |
| + * |
| + * @param {Entry} entry |
| + * @return {boolean} |
| + */ |
| +importer.isMediaEntry = function(entry) { |
| + return !!entry && |
| + entry.isFile && |
| + FileType.isImageOrVideo(entry) && |
| + entry.fullPath.toUpperCase().indexOf('/DCIM/') === 0; |
|
mtomasz
2014/12/08 00:41:50
AFAIR existence of a trailing slash is not well de
Steve McKay
2014/12/08 17:17:40
isMediaEntry is only applied to files, so there ha
|
| +}; |
| + |
| +/** |
| + * Returns true if the volume is eligible for Cloud Import. |
| + * |
| + * @param {VolumeInfo} volumeInfo |
| + * @return {boolean} |
| + */ |
| +importer.isEligibleVolume = function(volumeInfo) { |
| + return !!volumeInfo && |
| + importer.ELIGIBLE_VOLUME_TYPES_.indexOf(volumeInfo.volumeType) != -1; |
|
mtomasz
2014/12/08 00:41:50
nit: !==
Steve McKay
2014/12/08 17:17:40
Darn. Sorry about that. I'm trying :)
|
| +}; |
| + |
| +/** |
| * Returns true if the entry is cloud import eligible. |
| * |
| * @param {VolumeManagerCommon.VolumeInfoProvider} volumeInfoProvider |
| @@ -20,20 +53,17 @@ importer.Destination = { |
| * @return {boolean} |
| */ |
| importer.isEligibleEntry = function(volumeInfoProvider, entry) { |
| - assert(volumeInfoProvider != null); |
| - if (entry && entry.isFile && FileType.isImageOrVideo(entry)) { |
| + console.assert(volumeInfoProvider != null); |
| + if (importer.isMediaEntry(entry)) { |
| var volumeInfo = volumeInfoProvider.getVolumeInfo(entry); |
| - if (volumeInfo && |
| - volumeInfo.volumeType == VolumeManagerCommon.VolumeType.REMOVABLE) { |
| - return entry.fullPath.indexOf('/DCIM/') === 0; |
| - } |
| + return importer.isEligibleVolume(volumeInfo); |
| } |
| return false; |
| }; |
| /** |
| * Returns true if the entry represents a media directory for the purposes |
| - * of cloud import. |
| + * of Cloud Import. |
| * |
| * @param {Entry} entry |
| * @param {VolumeManagerCommon.VolumeInfoProvider} volumeInfoProvider |
| @@ -44,15 +74,13 @@ importer.isMediaDirectory = function(entry, volumeInfoProvider) { |
| return false; |
| } |
| - if (entry.fullPath !== '/DCIM') { |
| + if (entry.fullPath.toUpperCase() !== '/DCIM') { |
| return false; |
| } |
| - assert(volumeInfoProvider != null); |
| + console.assert(volumeInfoProvider != null); |
|
mtomasz
2014/12/08 00:41:50
nit: !==
Steve McKay
2014/12/08 17:17:40
Done.
|
| var volumeInfo = volumeInfoProvider.getVolumeInfo(entry); |
| - return !!volumeInfo && |
| - volumeInfo.isType(VolumeManagerCommon.VolumeType.REMOVABLE) && |
| - volumeInfo.hasMedia; |
| + return importer.isEligibleVolume(volumeInfo); |
| }; |
| /** |
| @@ -60,15 +88,11 @@ importer.isMediaDirectory = function(entry, volumeInfoProvider) { |
| * is enabled. |
| */ |
| importer.importEnabled = function() { |
| - // TODO(smckay): Also verify that Drive is enabled and we're |
| - // not running in guest mode. |
| return new Promise( |
| function(resolve, reject) { |
| chrome.commandLinePrivate.hasSwitch( |
| 'enable-cloud-backup', |
| - /** |
| - * @param {boolean} enabled |
| - */ |
| + /** @param {boolean} enabled */ |
| function(enabled) { |
| importer.lastKnownImportEnabled = enabled; |
| resolve(enabled); |