@enact/webos
Version:
webOS support library
104 lines (100 loc) • 4.09 kB
JavaScript
;
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;