appium-android-driver
Version:
Android UiAutomator and Chrome support for Appium
119 lines • 4.07 kB
JavaScript
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
;