Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: ui/file_manager/gallery/js/gallery.js

Issue 959643003: [Gallery] Add reload feature (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/file_manager/gallery/js/background.js ('k') | ui/file_manager/gallery/js/gallery_scripts.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/file_manager/gallery/js/gallery.js
diff --git a/ui/file_manager/gallery/js/gallery.js b/ui/file_manager/gallery/js/gallery.js
index 07891d48310e035c381ec49ede81b90dabd3a62b..fd85ae155ce62d325662199c8bb25cd0f68f9e0b 100644
--- a/ui/file_manager/gallery/js/gallery.js
+++ b/ui/file_manager/gallery/js/gallery.js
@@ -54,6 +54,7 @@ function Gallery(volumeManager) {
this.selectedEntry_ = null;
this.metadataCacheObserverId_ = null;
this.onExternallyUnmountedBound_ = this.onExternallyUnmounted_.bind(this);
+ this.initialized_ = false;
this.dataModel_ = new GalleryDataModel(
this.context_.metadataCache);
@@ -340,6 +341,11 @@ Gallery.prototype.loadInternal_ = function(entries, selectedEntries) {
return a.index - b.index;
});
+ if (loadingList.length === 0) {
+ this.dataModel_.splice(0, this.dataModel_.length);
+ return;
+ }
+
// Load entries.
// Use the self variable capture-by-closure because it is faster than bind.
var self = this;
@@ -359,6 +365,14 @@ Gallery.prototype.loadInternal_ = function(entries, selectedEntries) {
if (chunk.length !== metadataList.length)
return Promise.reject('Failed to load metadata.');
+ // Remove all the previous items if it's the first chunk.
+ // Do it here because prevent a flicker between removing all the items
+ // and adding new ones.
+ if (firstChunk) {
+ self.dataModel_.splice(0, self.dataModel_.length);
+ self.updateThumbnails_(); // Remove the caches.
+ }
+
// Add items to the model.
var items = [];
chunk.forEach(function(chunkItem, index) {
@@ -390,7 +404,7 @@ Gallery.prototype.loadInternal_ = function(entries, selectedEntries) {
self.onSelection_();
// Init modes after the first chunk is loaded.
- if (firstChunk) {
+ if (firstChunk && !self.initialized_) {
// Determine the initial mode.
var shouldShowMosaic = selectedEntries.length > 1 ||
(self.context_.pageState &&
@@ -418,6 +432,7 @@ Gallery.prototype.loadInternal_ = function(entries, selectedEntries) {
cr.dispatchSimpleEvent(self, 'loaded');
});
}
+ self.initialized_ = true;
}
// Continue to load chunks.
@@ -908,6 +923,17 @@ Gallery.prototype.debugMe = function() {
var gallery = null;
/**
+ * (Re-)loads entries.
+ */
+function reload() {
+ initializePromise.then(function() {
+ util.URLsToEntries(window.appState.urls, function(entries) {
+ gallery.load(entries);
+ });
+ });
+}
+
+/**
* Promise to initialize the load time data.
* @type {!Promise}
*/
@@ -937,27 +963,17 @@ var initializePromise =
Promise.all([loadTimeDataPromise, volumeManagerPromise]).
then(function(args) {
var volumeManager = args[1];
- var gallery = new Gallery(volumeManager);
- return gallery;
+ gallery = new Gallery(volumeManager);
});
// Loads entries.
-initializePromise.then(
- /**
- * Loads entries.
- * @param {!Gallery} gallery The gallery instance.
- */
- function(gallery) {
- util.URLsToEntries(window.appState.urls, function(entries) {
- gallery.load(entries);
- });
- });
+initializePromise.then(reload);
/**
* Enteres the debug mode.
*/
window.debugMe = function() {
- initializePromise.then(function(gallery) {
+ initializePromise.then(function() {
gallery.debugMe();
});
};
« no previous file with comments | « ui/file_manager/gallery/js/background.js ('k') | ui/file_manager/gallery/js/gallery_scripts.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698