Wake up and unlock device when it's being used. A bit messy, pending refactor.

This commit is contained in:
Simo Kinnunen
2014-03-04 18:00:31 +09:00
parent 999e5113bf
commit a25df0b293
6 changed files with 183 additions and 20 deletions

View File

@@ -239,7 +239,7 @@ module.exports = function(options) {
.then(function(port) {
var log = logger.createLogger('device:inputAgent')
return promiseutil.periodicNotify(
inputAgent.open(adb, options.serial)
inputAgent.openAgent(adb, options.serial)
, 1000
)
.progressed(function() {
@@ -264,8 +264,34 @@ module.exports = function(options) {
)
})
})
.then(function(apk) {
log.info('Launching InputService')
return inputAgent.stopService(adb, options.serial)
.then(function() {
return devutil.waitForPortToFree(adb, options.serial, 1100)
})
.then(function(port) {
var log = logger.createLogger('device:inputService')
return inputAgent.openService(adb, options.serial)
.then(function() {
return promiseutil.periodicNotify(
devutil.waitForPort(adb, options.serial, port)
, 1000
)
.progressed(function() {
log.info('Waiting for InputService')
})
})
})
.then(function(conn) {
services.inputServiceSocket = vitals.register(
'device:inputService:socket'
, conn
)
})
})
.then(function() {
log.info('Launching input service')
log.info('Launching TouchService')
return devutil.ensureUnusedPort(adb, options.serial, 2820)
.then(function(port) {
var log = logger.createLogger('device:remote:input')
@@ -290,7 +316,7 @@ module.exports = function(options) {
return monkey.connectStream(conn)
})
.then(function(monkey) {
services.input = vitals.register(
services.touch = vitals.register(
'device:remote:input:monkey'
, Promise.promisifyAll(monkey)
)
@@ -404,25 +430,25 @@ module.exports = function(options) {
}
})
.on(wire.TouchDownMessage, function(channel, message) {
services.input.touchDownAsync(message.x, message.y)
services.touch.touchDownAsync(message.x, message.y)
.catch(function(err) {
log.error('touchDown failed', err.stack)
})
})
.on(wire.TouchMoveMessage, function(channel, message) {
services.input.touchMoveAsync(message.x, message.y)
services.touch.touchMoveAsync(message.x, message.y)
.catch(function(err) {
log.error('touchMove failed', err.stack)
})
})
.on(wire.TouchUpMessage, function(channel, message) {
services.input.touchUpAsync(message.x, message.y)
services.touch.touchUpAsync(message.x, message.y)
.catch(function(err) {
log.error('touchUp failed', err.stack)
})
})
.on(wire.TapMessage, function(channel, message) {
services.input.tapAsync(message.x, message.y)
services.touch.tapAsync(message.x, message.y)
.catch(function(err) {
log.error('tap failed', err.stack)
})
@@ -593,6 +619,8 @@ module.exports = function(options) {
))
])
services.logcat.on('entry', logcatListener)
inputAgent.acquireWakeLock(services.inputServiceSocket)
inputAgent.unlock(services.inputServiceSocket)
owner = newOwner
}
@@ -609,6 +637,8 @@ module.exports = function(options) {
))
])
services.logcat.removeListener('entry', logcatListener)
inputAgent.releaseWakeLock(services.inputServiceSocket)
inputAgent.lock(services.inputServiceSocket)
owner = null
}