| Index: chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
|
| diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
|
| index 2f6b56fe274aaab4d7552c2b87cf06b336153ef8..ef790495462f3223ffb84a17de20910129d6dcc3 100644
|
| --- a/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
|
| +++ b/chrome/browser/resources/chromeos/wallpaper_manager/js/wallpaper_manager.js
|
| @@ -18,10 +18,12 @@ function WallpaperManager(dialogDom) {
|
| this.storage_ = chrome.storage.local;
|
| this.document_ = dialogDom.ownerDocument;
|
| this.selectedCategory = null;
|
| - this.butterBar_ = new ButterBar(this.dialogDom_);
|
| + this.progressManager_ = new ProgressManager();
|
| this.customWallpaperData_ = null;
|
| this.currentWallpaper_ = null;
|
| this.wallpaperRequest_ = null;
|
| + this.checkmark_ = cr.doc.createElement('div');
|
| + this.checkmark_.classList.add('check');
|
| this.fetchManifest_();
|
| }
|
|
|
| @@ -156,8 +158,8 @@ function WallpaperManager(dialogDom) {
|
| var self = this;
|
| this.storage_.get(AccessManifestKey, function(items) {
|
| self.manifest_ = items[AccessManifestKey] ? items[AccessManifestKey] : {};
|
| - self.butterBar_.showError_(str('connectionFailed'),
|
| - {help_url: LEARN_MORE_URL});
|
| + // TODO(bshe): Add error message back once we decide how to show error
|
| + // message in the new UI. http://crbug.com/162563
|
| self.initDom_();
|
| $('wallpaper-grid').classList.add('image-picker-offline');
|
| });
|
| @@ -283,6 +285,7 @@ function WallpaperManager(dialogDom) {
|
| if (selectedItem && selectedItem.dynamicURL &&
|
| !this.wallpaperGrid_.inProgramSelection) {
|
| var wallpaperURL = selectedItem.baseURL + HighResolutionSuffix;
|
| + var selectedGridItem = this.wallpaperGrid_.getListItem(selectedItem);
|
| var self = this;
|
|
|
| chrome.wallpaperPrivate.setWallpaperIfExist(wallpaperURL,
|
| @@ -290,7 +293,7 @@ function WallpaperManager(dialogDom) {
|
| function() {
|
| if (chrome.runtime.lastError == undefined) {
|
| self.currentWallpaper_ = wallpaperURL;
|
| - self.setActiveThumb(selectedItem);
|
| + self.setActiveThumb(selectedGridItem);
|
| return;
|
| }
|
|
|
| @@ -301,20 +304,20 @@ function WallpaperManager(dialogDom) {
|
| self.wallpaperRequest_ = new XMLHttpRequest();
|
| self.wallpaperRequest_.open('GET', wallpaperURL, true);
|
| self.wallpaperRequest_.responseType = 'arraybuffer';
|
| + self.progressManager_.reset(self.wallpaperRequest_, selectedGridItem);
|
| self.wallpaperRequest_.send(null);
|
| - self.butterBar_.setRequest(self.wallpaperRequest_);
|
| self.wallpaperRequest_.addEventListener('load', function(e) {
|
| if (self.wallpaperRequest_.status === 200) {
|
| var image = self.wallpaperRequest_.response;
|
| - chrome.wallpaperPrivate.setWallpaper(image,
|
| - selectedItem.layout,
|
| - wallpaperURL,
|
| - self.onFinished_.bind(self));
|
| + chrome.wallpaperPrivate.setWallpaper(
|
| + image,
|
| + selectedItem.layout,
|
| + wallpaperURL,
|
| + self.onFinished_.bind(self, selectedGridItem));
|
| self.currentWallpaper_ = wallpaperURL;
|
| - self.setActiveThumb(selectedItem);
|
| } else {
|
| - self.butterBar_.showError_(str('downloadFailed'),
|
| - {help_url: LEARN_MORE_URL});
|
| + // TODO(bshe): Add error message back once we decide how to show
|
| + // error message in the new UI. http://crbug.com/162563
|
| }
|
| self.wallpaperRequest_ = null;
|
| });
|
| @@ -425,16 +428,16 @@ function WallpaperManager(dialogDom) {
|
| console.error('More than one files are selected or no file selected');
|
| var file = files[0];
|
| if (!file.type.match('image/jpeg')) {
|
| - this.butterBar_.showError_(str('invalidWallpaper'),
|
| - {help_url: LEARN_MORE_URL});
|
| + // TODO(bshe): Add error message back once we decide how to show error
|
| + // message in the new UI. http://crbug.com/162563
|
| return;
|
| }
|
| var reader = new FileReader();
|
| reader.readAsArrayBuffer(files[0]);
|
| var self = this;
|
| reader.addEventListener('error', function(e) {
|
| - this.butterBar_.showError_(str('accessFileFailure'),
|
| - {help_url: LEARN_MORE_URL});
|
| + // TODO(bshe): Add error message back once we decide how to show error
|
| + // message in the new UI. http://crbug.com/162563
|
| });
|
| reader.addEventListener('load', function(e) {
|
| self.customWallpaperData_ = e.target.result;
|
| @@ -459,13 +462,18 @@ function WallpaperManager(dialogDom) {
|
|
|
| /**
|
| * Sets wallpaper finished. Displays error message in butter bar if any.
|
| + * @param {WallpaperThumbnailsGridItem=} opt_selectedGridItem The wallpaper
|
| + * thumbnail grid item. It extends from cr.ui.ListItem.
|
| */
|
| - WallpaperManager.prototype.onFinished_ = function() {
|
| + WallpaperManager.prototype.onFinished_ = function(opt_selectedGridItem) {
|
| + if (opt_selectedGridItem)
|
| + this.progressManager_.hideProgressBar(opt_selectedGridItem);
|
| +
|
| if (chrome.runtime.lastError != undefined) {
|
| - this.butterBar_.showError_(chrome.runtime.lastError.message,
|
| - {help_url: LEARN_MORE_URL});
|
| - } else {
|
| - this.butterBar_.hide_();
|
| + // TODO(bshe): Add error message back once we decide how to show error
|
| + // message in the new UI. http://crbug.com/162563
|
| + } else if (opt_selectedGridItem) {
|
| + this.setActiveThumb(opt_selectedGridItem);
|
| }
|
| };
|
|
|
| @@ -548,7 +556,7 @@ function WallpaperManager(dialogDom) {
|
| }
|
| this.wallpaperGrid_.dataModel = wallpapersDataModel;
|
| this.wallpaperGrid_.selectedItem = selectedItem;
|
| - this.setActiveThumb(selectedItem);
|
| + this.setActiveThumb(this.wallpaperGrid_.getListItem(selectedItem));
|
| }
|
| };
|
|
|
| @@ -556,19 +564,16 @@ function WallpaperManager(dialogDom) {
|
| * Shows a checkmark on the active thumbnail and clears previous active one if
|
| * any. Note if wallpaper was not set successfully, checkmark should not show
|
| * on that thumbnail.
|
| - * @param {{baseURL: string, dynamicURL: string, layout: string,
|
| - * author: string, authorWebsite: string, availableOffline: boolean}}
|
| - * activeItem the wallpaper item to active (show checkmark).
|
| + * @param {WallpaperThumbnailsGridItem} selectedGridItem The wallpaper
|
| + * thumbnail grid item. It extends from cr.ui.ListItem.
|
| */
|
| - WallpaperManager.prototype.setActiveThumb = function(activeItem) {
|
| - var activeThumb = $('wallpaper-grid').getListItem(activeItem);
|
| - if (!activeThumb)
|
| + WallpaperManager.prototype.setActiveThumb = function(selectedGridItem) {
|
| + if (!selectedGridItem)
|
| return;
|
| // Clears previous checkmark.
|
| - var previousActiveThumb = $('wallpaper-grid').querySelector('[active]');
|
| - if (previousActiveThumb)
|
| - previousActiveThumb.active = false;
|
| - activeThumb.active = true;
|
| + if (this.checkmark_.parentNode)
|
| + this.checkmark_.parentNode.removeChild(this.checkmark_);
|
| + selectedGridItem.appendChild(this.checkmark_);
|
| };
|
|
|
| })();
|
|
|