Files
appium/android/device_state.js
T
filmaj 0d3950994a Robust, device-friendly unlock. Added gitsubmodule for unlock_apk.
reset.sh now builds the apk. adbs unlockScreen method now invokes
unlock.apk. added a new small, focused module called device_state to handle determining state of emulators/devices. currently has a "isScreenLocked" function. unlockScreen in adb.js now 1) checks if screen is locked or not first before doing anything and 2) uses unlock.apk to do the unlocking.
2013-09-19 14:09:45 -07:00

39 lines
1.1 KiB
JavaScript

"use strict";
var exec = require('child_process').exec
, logger = require('../logger').get('appium');
function log(msg) {
logger.info("[ADB] " + msg);
}
module.exports = {
isScreenLocked: function(adbCmd, cb) {
var cmd = adbCmd + " shell dumpsys window";
log("Checking if screen is unlocked via `dumpsys window`...");
exec(cmd, {maxBuffer: 524288}, function(err, stdout, stderr) {
if (err) {
cb(err);
} else {
var screenLocked = /mShowingLockscreen=\w+/gi.exec(stdout);
var samsungNoteUnlocked = /mScreenOnFully=\w+/gi.exec(stdout);
if (screenLocked && screenLocked[0]) {
if (screenLocked[0].split('=')[1] == 'false') {
cb(null, false);
} else {
cb(null, true);
}
} else if (samsungNoteUnlocked && samsungNoteUnlocked[0]) {
if (samsungNoteUnlocked[0].split('=')[1] == 'true') {
cb(null, false);
} else {
cb(null, true);
}
} else {
cb(null, true);
}
}
});
}
};