UNPKG

@enact/webos

Version:

webOS support library

104 lines (100 loc) 4.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.deviceinfo = exports["default"] = void 0; var _LS2Request = _interopRequireDefault(require("../LS2Request")); var _platform = require("../platform"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } /** * Provides a function to get the device-specific information. * * @module webos/deviceinfo * @exports deviceinfo */ var device = {}; /** * Callback signature for `deviceinfo` * * @callback deviceCallback * @param {Object} info - JSON object containing the device information details * @param {String} info.modelName Model name of device in UTF-8 format * @param {String} info.modelNameAscii Model name of device in ASCII format * @param {String} info.version Full OS firmware version string * @param {Number} info.versionMajor Subset of OS version string: Major version number * @param {Number} info.versionMinor Subset of OS version string: Minor version number * @param {Number} info.versionDot Subset of OS version string: Dot version number * @param {String} info.sdkVersion webOS SDK version * @param {Number} info.screenWidth Width in pixels * @param {Number} info.screenHeight Height in pixels * @param {Boolean} [info.uhd] Whether supports Ultra HD resolution. * @memberof webos/deviceinfo */ /** * Gets the device-specific information regarding model, OS version, specifications, etc. * * @function * @param {webos/deviceinfo~deviceCallback} callback - Called once the information is collected * @returns {undefined} * @memberof webos/deviceinfo * @public */ var deviceinfo = exports.deviceinfo = function deviceinfo(callback) { if (Object.keys(device).length === 0) { try { var _window$webOSSystem; var webOSSystem = (_window$webOSSystem = window.webOSSystem) !== null && _window$webOSSystem !== void 0 ? _window$webOSSystem : window.PalmSystem; var info = JSON.parse(webOSSystem.deviceInfo); device.modelName = info.modelName; device.modelNameAscii = info.modelNameAscii; device.version = info.platformVersion; device.versionMajor = info.platformVersionMajor; device.versionMinor = info.platformVersionMinor; device.versionDot = info.platformVersionDot; device.sdkVersion = info.platformVersion; device.screenWidth = info.screenWidth; device.screenHeight = info.screenHeight; } catch (e) { device.modelName = device.modelNameAscii = 'webOS Device'; } device.screenHeight = device.screenHeight || window.screen.height; device.screenWidth = device.screenWidth || window.screen.width; if (_platform.platform.tv) { new _LS2Request["default"]().send({ service: 'luna://com.webos.service.tv.systemproperty', method: 'getSystemInfo', parameters: { 'keys': ['firmwareVersion', 'modelName', 'sdkVersion', 'UHD'] }, onSuccess: function onSuccess(response) { device.modelName = response.modelName || device.modelName; device.modelNameAscii = response.modelName || device.modelNameAscii; device.sdkVersion = response.sdkVersion || device.sdkVersion; device.uhd = response.UHD === 'true'; if (!response.firmwareVersion || response.firmwareVersion === '0.0.0') { response.firmwareVersion = response.sdkVersion; } if (response.firmwareVersion) { device.version = response.firmwareVersion; var segments = device.version.split('.'); var keys = ['versionMajor', 'versionMinor', 'versionDot']; for (var i = 0; i < keys.length; i++) { try { device[keys[i]] = parseInt(segments[i]); } catch (e) { device[keys[i]] = segments[i]; } } } callback(device); }, onFailure: function onFailure() { callback(device); } }); } } else { callback(device); } }; var _default = exports["default"] = deviceinfo;