Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
This commit is contained in:
parent
93e3a48004
commit
b38dea0597
25901 changed files with 9982925 additions and 369 deletions
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
define(['require','modules/mvvm/observable','modules/mvvm/observable_array','shared/keyboard_helper','shared/manifest_helper'],function(require){'use strict';var Observable=require('modules/mvvm/observable');var ObservableArray=require('modules/mvvm/observable_array');var KeyboardHelper=require('shared/keyboard_helper');var ManifestHelper=require('shared/manifest_helper');var _layoutDict=null;var _keyboards=ObservableArray([]);var _enabledLayouts=ObservableArray([]);var _isReady=false;var _parsingApps=false;var _callbacks=[];var _defaultEnabledCallbacks=[];var Keyboard=function(name,description,launchPath,layouts,app){var _observable=Observable({name:name,description:description,launchPath:launchPath,layouts:layouts,app:app});return _observable;};var Layout=function(options){var _observable=Observable({id:options.id,appName:options.appName,name:options.name,nameL10nId:options.nameL10nId,description:options.description,types:options.types,enabled:options.enabled});_observable.observe('enabled',function(newValue,oldValue){if(!_parsingApps){KeyboardHelper.setLayoutEnabled(options.appManifestURL,options.id,newValue);if(!newValue){KeyboardHelper.checkDefaults(function(layouts,missingTypes){refreshEnabledLayouts(layouts);notifyDefaultEnabled(layouts,missingTypes);});}}});return _observable;};var _waitForLayouts;function refreshEnabledLayouts(reEnabledLayouts){reEnabledLayouts.forEach(function(layout){var app=_layoutDict[layout.app.manifestURL];if(app){app[layout.layoutId].enabled=true;}});}
|
||||
function notifyDefaultEnabled(layouts,missingTypes){_defaultEnabledCallbacks.forEach(function withCallbacks(callback){callback(layouts[0],missingTypes[0]);});}
|
||||
function updateLayouts(layouts,reason){function mapLayout(layout){var app=_layoutDict[layout.app.manifestURL];if(!app){app=_layoutDict[layout.app.manifestURL]={};}
|
||||
if(app[layout.layoutId]){app[layout.layoutId].enabled=layout.enabled;return app[layout.layoutId];}
|
||||
app[layout.layoutId]=Layout({id:layout.layoutId,appName:layout.manifest.name,appManifestURL:layout.app.manifestURL,name:layout.inputManifest.name,nameL10nId:layout.inputManifest.nameL10nId,description:layout.inputManifest.description,types:layout.inputManifest.types,enabled:layout.enabled});return app[layout.layoutId];}
|
||||
function reduceApps(carry,layout){if(!carry.some(function checkApp(app){if(app.app===layout.app){app.layouts.push(mapLayout(layout));return true;}})){carry.push({app:layout.app,manifest:layout.manifest,layouts:[mapLayout(layout)]});}
|
||||
return carry;}
|
||||
function mapKeyboard(app){return Keyboard(app.manifest.name,app.manifest.description,app.manifest.launch_path,app.layouts,app.app);}
|
||||
_parsingApps=true;if(reason.apps){_layoutDict={};var apps=layouts.reduce(reduceApps,[]);var keyboards=apps.map(mapKeyboard);_keyboards.reset(keyboards);}
|
||||
var enabled=layouts.filter(function filterEnabled(layout){return layout.enabled;}).map(mapLayout);_enabledLayouts.reset(enabled);_parsingApps=false;if(_waitForLayouts){_waitForLayouts();_waitForLayouts=undefined;}}
|
||||
var _init=function(callback){document.addEventListener('DOMRetranslated',function(){_keyboards.forEach(function(keyboard){var keyboardAppInstance=keyboard.app;var keyboardManifest=new ManifestHelper(keyboardAppInstance.manifest);keyboard.name=keyboardManifest.name;keyboard.description=keyboardManifest.description;keyboard.layouts.forEach(function(layout){layout.appName=keyboardManifest.name;});});});_waitForLayouts=callback;KeyboardHelper.stopWatching();KeyboardHelper.watchLayouts(updateLayouts);};var _ready=function(callback){if(!callback){return;}
|
||||
if(_isReady){callback();}else{_callbacks.push(callback);}};return{reset:function kc_reset(){_layoutDict=null;_keyboards=ObservableArray([]);_enabledLayouts=ObservableArray([]);_isReady=false;_parsingApps=false;_callbacks=[];_defaultEnabledCallbacks=[];},init:function kc_init(callback){_defaultEnabledCallbacks=[];_isReady=false;_init(function(){_isReady=true;_callbacks.forEach(function(callback){callback();});});_ready(callback);},keyboards:function kc_keyboards(callback){_ready(function(){callback(_keyboards);});},enabledLayouts:function kc_enabledLayouts(callback){_ready(function(){callback(_enabledLayouts);});},defaultKeyboardEnabled:function kc_defaultKeyboardEnabled(callback){_defaultEnabledCallbacks.push(callback);}};});
|
||||
Loading…
Reference in a new issue