Commit b2efe31e authored by oka's avatar oka Committed by Commit bot

Quick View: Show year recorded metadata.

In metadata box of Quick View, we show year recorded metadata in mp3
files in any.
This CL also populates track metadata from the metadata in mp3 if any.
Screenshot: https://bugs.chromium.org/p/chromium/issues/detail?id=636191#c22

BUG=636191
TEST=
1. Download a mp3 file from Google Music.
2. Open the file on Quick View
3. Confirm year recorded metadata is shown.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2581133002
Cr-Commit-Position: refs/heads/master@{#439440}
parent 6142d96f
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
<files-metadata-entry i18n-values="key:METADATA_BOX_EXIF_DEVICE_MODEL" value="[[deviceModel_(ifd)]]"></files-metadata-entry> <files-metadata-entry i18n-values="key:METADATA_BOX_EXIF_DEVICE_MODEL" value="[[deviceModel_(ifd)]]"></files-metadata-entry>
<files-metadata-entry i18n-values="key:METADATA_BOX_EXIF_DEVICE_SETTINGS" value="[[deviceSettings_(ifd)]]"></files-metadata-entry> <files-metadata-entry i18n-values="key:METADATA_BOX_EXIF_DEVICE_SETTINGS" value="[[deviceSettings_(ifd)]]"></files-metadata-entry>
<files-metadata-entry i18n-values="key:METADATA_BOX_EXIF_GEOGRAPHY" value="[[geography_(ifd)]]"></files-metadata-entry> <files-metadata-entry i18n-values="key:METADATA_BOX_EXIF_GEOGRAPHY" value="[[geography_(ifd)]]"></files-metadata-entry>
<files-metadata-entry i18n-values="key:METADATA_BOX_YEAR_RECORDED" value="[[mediaYearRecorded]]"></files-metadata-entry>
</div> </div>
</div> </div>
</template> </template>
......
...@@ -43,7 +43,11 @@ var FilesMetadataBox = Polymer({ ...@@ -43,7 +43,11 @@ var FilesMetadataBox = Polymer({
observer: 'metadataUpdated_', observer: 'metadataUpdated_',
}, },
mediaTrack: { mediaTrack: {
type: Number, type: String,
observer: 'metadataUpdated_',
},
mediaYearRecorded: {
type: String,
observer: 'metadataUpdated_', observer: 'metadataUpdated_',
}, },
/** /**
...@@ -80,7 +84,8 @@ var FilesMetadataBox = Polymer({ ...@@ -80,7 +84,8 @@ var FilesMetadataBox = Polymer({
this.mediaAlbum = ''; this.mediaAlbum = '';
this.mediaDuration = 0; this.mediaDuration = 0;
this.mediaGenre = ''; this.mediaGenre = '';
this.mediaTrack = 0; this.mediaTrack = '';
this.mediaYearRecorded = '';
this.ifd = null; this.ifd = null;
this.isSizeLoading = false; this.isSizeLoading = false;
...@@ -118,7 +123,7 @@ var FilesMetadataBox = Polymer({ ...@@ -118,7 +123,7 @@ var FilesMetadataBox = Polymer({
this.hasFileSpecificInfo_ = this.hasFileSpecificInfo_ =
!!(this.imageWidth && this.imageHeight || this.mediaTitle || !!(this.imageWidth && this.imageHeight || this.mediaTitle ||
this.mediaArtist || this.mediaAlbum || this.mediaDuration || this.mediaArtist || this.mediaAlbum || this.mediaDuration ||
this.mediaGenre || this.mediaTrack || this.mediaGenre || this.mediaTrack || this.mediaYearRecorded ||
this.ifd); this.ifd);
}, },
......
...@@ -65,6 +65,7 @@ ContentMetadataProvider.PROPERTY_NAMES = [ ...@@ -65,6 +65,7 @@ ContentMetadataProvider.PROPERTY_NAMES = [
'mediaMimeType', 'mediaMimeType',
'mediaTitle', 'mediaTitle',
'mediaTrack', 'mediaTrack',
'mediaYearRecorded',
]; ];
/** /**
...@@ -162,7 +163,9 @@ ContentMetadataProvider.prototype.getFromMediaGalleries_ = ...@@ -162,7 +163,9 @@ ContentMetadataProvider.prototype.getFromMediaGalleries_ =
entry.file(function(blob) { entry.file(function(blob) {
var metadataType = 'mimeTypeOnly'; var metadataType = 'mimeTypeOnly';
if (names.indexOf('mediaArtist') !== -1 || if (names.indexOf('mediaArtist') !== -1 ||
names.indexOf('mediaTitle') !== -1) { names.indexOf('mediaTitle') !== -1 ||
names.indexOf('mediaTrack') !== -1 ||
names.indexOf('mediaYearRecorded') !== -1) {
metadataType = 'mimeTypeAndTags'; metadataType = 'mimeTypeAndTags';
} }
if (names.indexOf('contentThumbnailUrl') !== -1) { if (names.indexOf('contentThumbnailUrl') !== -1) {
...@@ -314,7 +317,23 @@ ContentMetadataProvider.prototype.convertMediaMetadataToMetadataItem_ = ...@@ -314,7 +317,23 @@ ContentMetadataProvider.prototype.convertMediaMetadataToMetadataItem_ =
item.mediaDuration = metadata['duration']; item.mediaDuration = metadata['duration'];
item.mediaGenre = metadata['genre']; item.mediaGenre = metadata['genre'];
item.mediaTitle = metadata['title']; item.mediaTitle = metadata['title'];
item.mediaTrack = metadata['track']; if (metadata['track']) {
item.mediaTrack = '' + metadata['track'];
}
if (metadata.rawTags) {
metadata.rawTags.forEach(function(entry) {
if (entry.type === 'mp3') {
if (entry.tags['date']) {
item.mediaYearRecorded = entry.tags['date'];
}
// It is possible that metadata['track'] is undefined but this is
// defined.
if (entry.tags['track']) {
item.mediaTrack = entry.tags['track'];
}
}
});
}
if (metadata.attachedImages && metadata.attachedImages.length > 0) { if (metadata.attachedImages && metadata.attachedImages.length > 0) {
var reader = new FileReader(); var reader = new FileReader();
reader.onload = function(e) { reader.onload = function(e) {
......
...@@ -193,10 +193,15 @@ function MetadataItem() { ...@@ -193,10 +193,15 @@ function MetadataItem() {
this.mediaTitle; this.mediaTitle;
/** /**
* @public {number|undefined} * @public {string|undefined}
*/ */
this.mediaTrack; this.mediaTrack;
/**
* @public {string|undefined}
*/
this.mediaYearRecorded;
/** /**
* Mime type obtained by content provider based on URL. * Mime type obtained by content provider based on URL.
* TODO(hirono): Remove the mediaMimeType. * TODO(hirono): Remove the mediaMimeType.
......
...@@ -147,6 +147,7 @@ MetadataBoxController.prototype.onGeneralMetadataLoaded_ = function( ...@@ -147,6 +147,7 @@ MetadataBoxController.prototype.onGeneralMetadataLoaded_ = function(
'mediaGenre', 'mediaGenre',
'mediaTitle', 'mediaTitle',
'mediaTrack', 'mediaTrack',
'mediaYearRecorded',
]) ])
.then(function(items) { .then(function(items) {
var item = items[0]; var item = items[0];
...@@ -158,7 +159,8 @@ MetadataBoxController.prototype.onGeneralMetadataLoaded_ = function( ...@@ -158,7 +159,8 @@ MetadataBoxController.prototype.onGeneralMetadataLoaded_ = function(
this.metadataBox_.mediaDuration = item.mediaDuration || 0; this.metadataBox_.mediaDuration = item.mediaDuration || 0;
this.metadataBox_.mediaGenre = item.mediaGenre || ''; this.metadataBox_.mediaGenre = item.mediaGenre || '';
this.metadataBox_.mediaTitle = item.mediaTitle || ''; this.metadataBox_.mediaTitle = item.mediaTitle || '';
this.metadataBox_.mediaTrack = item.mediaTrack || 0; this.metadataBox_.mediaTrack = item.mediaTrack || '';
this.metadataBox_.mediaYearRecorded = item.mediaYearRecorded || '';
}.bind(this)); }.bind(this));
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment