VulpesOS/gaia/apps/keyboard/build/settings-config.js
OverSu b38dea0597 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.
2026-09-30 23:13:03 +02:00

71 lines
2.4 KiB
JavaScript
Executable file

'use strict';
/* jshint node: true */
var utils = require('utils');
// All layouts for handwriting should be contained.
// When adding a new handwriting IME, add its layout here.
const allHandwritingLayouts = ['zh-Hans-Handwriting'];
// Check whether pre-installed layouts contain layout for handwriting.
function checkHandwriting(allLayouts) {
for (var i = 0; i < allHandwritingLayouts.length; i++) {
for (var j = 0; j < allLayouts.length; j++) {
if (allHandwritingLayouts[i] == allLayouts[j]) {
return true;
}
}
}
return false;
}
function addSettings(appDirPath, distDirPath, enabledFeatures) {
var settings = utils.getFile(appDirPath, 'settings.html');
var content = utils.getFileContent(settings);
var domDoc = utils.getDocument(content);
// Add scripts and modify html for handwriting and user dictionary settings.
// If parse handwriting-settings.html to dom element, and
// add it to container with container.appendChild(), we met
// an error:
// "Exception: HierarchyRequestError: Node cannot be inserted at
// the specified point in the hierarchy"
// Is it a bug?
var baseViewScriptElemInHead =
domDoc.head.querySelector('script[src="js/settings/base_view.js"]');
var insertScript = function (src) {
var script = domDoc.createElement('script');
script.defer = 'defer';
script.src = src;
domDoc.head.insertBefore(script, baseViewScriptElemInHead.nextSibling);
};
if (enabledFeatures.handwriting) {
insertScript('js/settings/handwriting_settings_view.js');
var hwSettings = utils.getFile(appDirPath, 'handwriting-settings.html');
var hwContent = utils.getFileContent(hwSettings);
domDoc.getElementById('general-container').innerHTML += hwContent;
}
if (enabledFeatures.userDict) {
insertScript('js/settings/user_dictionary_edit_dialog.js');
insertScript('js/settings/user_dictionary_list_panel.js');
insertScript('js/settings/word_list_converter.js');
insertScript('js/settings/user_dictionary.js');
var udSettings = utils.getFile(appDirPath, 'user-dictionary-settings.html');
var udContent = utils.getFileContent(udSettings);
domDoc.querySelector('#general-container #general-settings ul').innerHTML +=
udContent;
}
var sDoc = utils.serializeDocument(domDoc);
utils.writeContent(utils.getFile(distDirPath, 'settings.html'), sDoc);
}
exports.checkHandwriting = checkHandwriting;
exports.addSettings = addSettings;