UNPKG

appium-android-driver

Version:

Android UiAutomator and Chrome support for Appium

119 lines 4.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.hideKeyboard = hideKeyboard; exports.isKeyboardShown = isKeyboardShown; exports.keys = keys; exports.doSendKeys = doSendKeys; exports.keyevent = keyevent; exports.pressKeyCode = pressKeyCode; exports.longPressKeyCode = longPressKeyCode; exports.mobilePerformEditorAction = mobilePerformEditorAction; exports.initUnicodeKeyboard = initUnicodeKeyboard; exports.hideKeyboardCompletely = hideKeyboardCompletely; /* eslint-disable @typescript-eslint/no-unused-vars */ const lodash_1 = __importDefault(require("lodash")); const driver_1 = require("appium/driver"); const io_appium_settings_1 = require("io.appium.settings"); /** * @this {import('../driver').AndroidDriver} * @returns {Promise<boolean>} */ async function hideKeyboard() { return await /** @type {import('appium-adb').ADB} */ (this.adb).hideKeyboard(); } /** * @this {import('../driver').AndroidDriver} * @returns {Promise<boolean>} */ async function isKeyboardShown() { const { isKeyboardShown } = await /** @type {import('appium-adb').ADB} */ (this.adb).isSoftKeyboardPresent(); return isKeyboardShown; } /** * @this {import('../driver').AndroidDriver} * @param {string|string[]} keys * @returns {Promise<void>} */ async function keys(keys) { // Protocol sends an array; rethink approach keys = lodash_1.default.isArray(keys) ? keys.join('') : keys; await this.doSendKeys({ text: keys, replace: false, }); } /** * @this {import('../driver').AndroidDriver} * @param {import('./types').SendKeysOpts} params * @returns {Promise<void>} */ async function doSendKeys(params) { throw new driver_1.errors.NotImplementedError('Not implemented'); } /** * @this {import('../driver').AndroidDriver} * @param {string|number} keycode * @param {number} [metastate] * @returns {Promise<void>} */ async function keyevent(keycode, metastate) { // TODO deprecate keyevent; currently wd only implements keyevent this.log.warn('keyevent will be deprecated use pressKeyCode'); return await this.pressKeyCode(keycode, metastate); } /** * @this {import('../driver').AndroidDriver} * @param {string|number} keycode * @param {number} [metastate] * @returns {Promise<void>} */ async function pressKeyCode(keycode, metastate) { throw new driver_1.errors.NotImplementedError('Not implemented'); } /** * @this {import('../driver').AndroidDriver} * @param {string|number} keycode * @param {number} [metastate] * @returns {Promise<void>} */ async function longPressKeyCode(keycode, metastate) { throw new driver_1.errors.NotImplementedError('Not implemented'); } /** * @this {import('../driver').AndroidDriver} * @param {string | number} action * @returns {Promise<void>} */ async function mobilePerformEditorAction(action) { await this.settingsApp.performEditorAction(action); } // #region Internal Helpers /** * @deprecated * @this {import('../driver').AndroidDriver} * @returns {Promise<string?>} */ async function initUnicodeKeyboard() { this.log.debug('Enabling Unicode keyboard support'); // get the default IME so we can return back to it later if we want const defaultIME = await this.adb.defaultIME(); this.log.debug(`Unsetting previous IME ${defaultIME}`); this.log.debug(`Setting IME to '${io_appium_settings_1.UNICODE_IME}'`); await this.adb.enableIME(io_appium_settings_1.UNICODE_IME); await this.adb.setIME(io_appium_settings_1.UNICODE_IME); return defaultIME; } /** * @this {import('../driver').AndroidDriver} * @returns {Promise<void>} */ async function hideKeyboardCompletely() { this.log.debug(`Hiding the on-screen keyboard by setting IME to '${io_appium_settings_1.EMPTY_IME}'`); await this.adb.enableIME(io_appium_settings_1.EMPTY_IME); await this.adb.setIME(io_appium_settings_1.EMPTY_IME); } // #endregion //# sourceMappingURL=keyboard.js.map