| 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..f65c5d21f67d4868773ad64225541aa4726a78c3 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;
|
| +};
|
| +
|
| +/**
|
| + * 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;
|
| +};
|
| +
|
| +/**
|
| * 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,14 @@ importer.isMediaDirectory = function(entry, volumeInfoProvider) {
|
| return false;
|
| }
|
|
|
| - if (entry.fullPath !== '/DCIM') {
|
| + var fullPath = entry.fullPath.toUpperCase();
|
| + if (fullPath !== '/DCIM' && fullPath !== '/DCIM/') {
|
| return false;
|
| }
|
|
|
| - assert(volumeInfoProvider != null);
|
| + console.assert(volumeInfoProvider !== null);
|
| var volumeInfo = volumeInfoProvider.getVolumeInfo(entry);
|
| - return !!volumeInfo &&
|
| - volumeInfo.isType(VolumeManagerCommon.VolumeType.REMOVABLE) &&
|
| - volumeInfo.hasMedia;
|
| + return importer.isEligibleVolume(volumeInfo);
|
| };
|
|
|
| /**
|
| @@ -60,15 +89,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);
|
|
|