preferences.js 2.74 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2016 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and may be covered by U.S. and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */
/* istanbul ignore next */
/* globals Promise */
define('screens/player/firmware/preferences/preferences', [], function() {
    'use strict';

    /**
     * Defines the preferences API.
     *
     * @interface Preferences
     */
    return Object.freeze({

        /**
         * The service name
         * @property serviceName
         * @memberof Preferences
         * @constant
         */
        serviceName: 'com.adobe.cq.screens.player.preferences.preferences',

        ACTIONS: Object.freeze({
            SAVING: 'preferences-action-saving',
            SAVING_DONE: 'preferences-action-saving-done',
            SAVING_ERROR: 'preferences-action-saving-error'
        }),

        COMMANDS: Object.freeze({
            UPDATE: 'preferences-update',
            SEND: 'preferences-send'
        }),

        FLAGS: Object.freeze({
            REBOOT_ON_SAVE: 'reboot-on-save'
        }),

        /**
         * Possible states on the service
         * @property STATES
         * @memberof Preferences
         * @constant
         * @type {Object}
         */
        STATES: Object.freeze({
            SAVING: 'preferences-state-saving',
            READY: 'preferences-state-ready'
        }),

        NAMESPACE: 'preferences',

        /**
         * Returns the current preferences.
         * @returns {Object} The current preferences
         * @method Preferences#getPreferences
         */
        getPreferences: function() {
            return {};
        },

        /**
         * Function follows the Redux Thunk Action Pattern.
         * It saves the Preferences preferable persistently depending on the Platform abstraction.
         * @param {Object} preferences the preferences
         * @param {Object} [flags] Object containing Preferences.FLAGS ({FLAG: true})
         * @method Preferences#save
         */
        save: function(preferences, flags) {},

        /**
         * Resets the preferences to the defaults
         * @param {Object} [flags] Object containing Preferences.FLAGS ({FLAG: true})
         * @method Preferences#reset
         */
        reset: function(flags) {}
    });

});