/* * Copyright (c) 2015-2017, Michael A. Updike All rights reserved. * Licensed under the BSD-3-Clause * https://opensource.org/licenses/BSD-3-Clause * https://github.com/opus1269/photo-screen-saver/blob/master/LICENSE.md */ window.app = window.app || {}; /** * Builder for a {@link app.Screensaver} * @namespace */ app.SSBuilder = (function() { 'use strict'; new ExceptionHandler(); /** * Build the {@link app.SSPhotos} that will be displayed * @returns {boolean} true if there is at least one photo * @private * @memberOf app.SSBuilder */ function _loadPhotos() { let sources = app.PhotoSources.getSelectedPhotos(); sources = sources || []; for (const source of sources) { app.SSPhotos.addFromSource(source); } if (!app.SSPhotos.getCount()) { // No usable photos app.Screensaver.setNoPhotos(); return false; } if (Chrome.Storage.getBool('shuffle')) { // randomize the order app.SSPhotos.shuffle(); } return true; } return { /** * Build everything related to a {@link app.Screensaver} * @returns {boolean} true if there are photos for the show * @memberOf app.SSBuilder */ build: function() { // load the photos for the slide show const hasPhotos = _loadPhotos(); if (hasPhotos) { // create the animated pages app.Screensaver.createPages(); // initialize the photo finder app.SSFinder.initialize(); } return hasPhotos; }, }; })();