UNPKG

appium-android-driver

Version:

Android UiAutomator and Chrome support for Appium

44 lines 1.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mobileDeviceidle = mobileDeviceidle; const driver_1 = require("appium/driver"); const lodash_1 = __importDefault(require("lodash")); const SUPPORTED_ACTIONS = ['whitelistAdd', 'whitelistRemove']; /** * This is a wrapper to 'adb shell dumpsys deviceidle' interface. * Read https://www.protechtraining.com/blog/post/diving-into-android-m-doze-875 * for more details. * * @param {'whitelistAdd' | 'whitelistRemove'} action The action name to execute * @param {string} [packages] Either a single package or multiple packages to add or remove from the idle whitelist * @returns {Promise<void>} */ async function mobileDeviceidle(action, packages) { if (!(lodash_1.default.isString(packages) || lodash_1.default.isArray(packages))) { throw new driver_1.errors.InvalidArgumentError(`packages argument must be a string or an array`); } /** @type {string[]} */ const packagesArr = lodash_1.default.isArray(packages) ? packages : [packages]; /** @type {string[]} */ const commonArgs = ['dumpsys', 'deviceidle', 'whitelist']; /** @type {(x: string) => string[]} */ let argsGenerator; switch (action) { case SUPPORTED_ACTIONS[0]: argsGenerator = (pkg) => [...commonArgs, `+${pkg}`]; break; case SUPPORTED_ACTIONS[1]: argsGenerator = (pkg) => [...commonArgs, `-${pkg}`]; break; default: throw new driver_1.errors.InvalidArgumentError(`action must be one of ${JSON.stringify(SUPPORTED_ACTIONS)}. Got '${action}' instead`); } await this.adb.shellChunks(argsGenerator, packagesArr); } /** * @typedef {import('appium-adb').ADB} ADB */ //# sourceMappingURL=deviceidle.js.map