1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)'use strict'; 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Namespace object for the utilities. 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)var ActionChoiceUtil = {}; 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/** 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Gets list of defined actions. 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @param {Object} loadTimeData Load time data for i18n. 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @param {function(Array.<Object>)} callback Callback with list of defined 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * actions. 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ActionChoiceUtil.getDefinedActions = function(loadTimeData, callback) { 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Fill out predefined actions first. 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var result = [{ 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) id: 'view-files', 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) title: loadTimeData.getString('ACTION_CHOICE_VIEW_FILES'), 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) class: 'view-files-icon' 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }, { 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) id: 'import-photos-to-drive', 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) title: loadTimeData.getString('ACTION_CHOICE_PHOTOS_DRIVE'), 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) class: 'import-photos-to-drive-icon', 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) disabled: true, 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) disabledTitle: loadTimeData.getString('ACTION_CHOICE_DRIVE_NOT_REACHED') 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }, { 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) id: 'watch-single-video', 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) class: 'watch-single-video-icon', 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) hidden: true, 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) disabled: true 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }]; 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) chrome.mediaGalleriesPrivate.getHandlers(function(handlers) { 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) for (var i = 0; i < handlers.length; i++) { 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var action = { 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) id: handlers[i].extensionId + ':' + handlers[i].id, 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) title: handlers[i].title, 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // TODO(mtomasz): Get the passed icon instead of the extension icon. 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) icon100: 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'chrome://extension-icon/' + handlers[i].extensionId + '/32/1', 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) icon200: 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 'chrome://extension-icon/' + handlers[i].extensionId + '/64/1', 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) extensionId: handlers[i].extensionId, 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) actionId: handlers[i].id 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) result.push(action); 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) callback(result); 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }.bind(this)); 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/** 54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Gets the remembered action's identifier. 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @param {function(string=)} callback Callback with the identifier. 56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ActionChoiceUtil.getRememberedActionId = function(callback) { 587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) chrome.storage.local.get(['action-choice'], function(result) { 59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) callback(result['action-choice']); 60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }); 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/** 64c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Sets the remembered action's identifier. 65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * @param {string=} opt_actionId Action's identifier. If undefined, then forgets 66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * the remembered choice. 67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ActionChoiceUtil.setRememberedActionId = function(opt_actionId) { 697d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) chrome.storage.local.set({'action-choice': opt_actionId}); 70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 71