UNPKG

appium-xcuitest-driver

Version:

Appium driver for iOS using XCUITest for backend

68 lines 2.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mobileSetAppearance = mobileSetAppearance; exports.mobileGetAppearance = mobileGetAppearance; const lodash_1 = __importDefault(require("lodash")); const support_1 = require("appium/support"); /** * Set the device's UI appearance style * * @since iOS 12.0 * @param style - The appearance style to set * @throws If the current platform does not support UI appearance changes */ async function mobileSetAppearance(style) { if (!['light', 'dark'].includes(lodash_1.default.toLower(style))) { throw new Error(`The 'style' value is expected to equal either 'light' or 'dark'`); } if (support_1.util.compareVersions(this.opts.platformVersion, '<', '12.0')) { throw new Error('Changing appearance is only supported since iOS 12'); } if (this.isSimulator()) { try { await this.device.setAppearance(style); return; } catch (e) { this.log.debug(e.stack); } } try { await this.proxyCommand('/wda/device/appearance', 'POST', { name: style }, false); return; } catch (e) { this.log.debug(e.stack); } // Fall back to the ugly Siri workaround if the current SDK is too old await this.mobileSiriCommand(`Turn ${lodash_1.default.toLower(style) === 'dark' ? 'on' : 'off'} dark mode`); } /** * Get the device's UI appearance style. * * @since Xcode SDK 11 * @returns The current appearance style */ async function mobileGetAppearance() { if (support_1.util.compareVersions(this.opts.platformVersion, '<', '12.0')) { return { style: 'unsupported' }; } let style; if (this.isSimulator()) { try { style = await this.device.getAppearance(); } catch { } } if (!style) { const deviceInfo = await this.proxyCommand('/wda/device/info', 'GET'); style = (deviceInfo?.userInterfaceStyle ?? 'unknown'); } return { style: style, }; } //# sourceMappingURL=appearance.js.map