mirror of
https://github.com/openstf/stf
synced 2025-10-04 10:19:30 +02:00
Expose input services.
This commit is contained in:
parent
eb332ff36a
commit
b50ec6b4b0
4 changed files with 168 additions and 14 deletions
|
@ -228,20 +228,56 @@ module.exports = function(options) {
|
||||||
)])
|
)])
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function touchSender(klass) {
|
||||||
|
return function(data) {
|
||||||
|
push.send([
|
||||||
|
group
|
||||||
|
, wireutil.envelope(new klass(
|
||||||
|
data.x
|
||||||
|
, data.y
|
||||||
|
))
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function keySender(klass) {
|
||||||
|
return function(data) {
|
||||||
|
push.send([
|
||||||
|
group
|
||||||
|
, wireutil.envelope(new klass(
|
||||||
|
data.key
|
||||||
|
))
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
socket.on('input.touchDown', touchSender(wire.TouchDownMessage))
|
||||||
|
socket.on('input.touchMove', touchSender(wire.TouchMoveMessage))
|
||||||
|
socket.on('input.touchUp', touchSender(wire.TouchUpMessage))
|
||||||
|
socket.on('input.tap', touchSender(wire.TapMessage))
|
||||||
|
|
||||||
|
socket.on('input.keyDown', keySender(wire.KeyDownMessage))
|
||||||
|
socket.on('input.keyUp', keySender(wire.KeyUpMessage))
|
||||||
|
socket.on('input.keyPress', keySender(wire.KeyPressMessage))
|
||||||
|
|
||||||
|
socket.on('input.type', function(data) {
|
||||||
|
push.send([
|
||||||
|
group
|
||||||
|
, wireutil.envelope(new wire.TypeMessage(
|
||||||
|
data.text
|
||||||
|
))
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
|
// @todo
|
||||||
|
socket.on('input.back', function(data) {})
|
||||||
|
socket.on('input.home', function(data) {})
|
||||||
|
socket.on('input.menu', function(data) {})
|
||||||
|
|
||||||
socket.on('flick', function(data) {})
|
socket.on('flick', function(data) {})
|
||||||
socket.on('back', function(data) {})
|
socket.on('back', function(data) {})
|
||||||
socket.on('forward', function(data) {})
|
socket.on('forward', function(data) {})
|
||||||
socket.on('refresh', function(data) {})
|
socket.on('refresh', function(data) {})
|
||||||
socket.on('monkey.touchDown', function(data) {})
|
|
||||||
socket.on('monkey.touchMove', function(data) {})
|
|
||||||
socket.on('monkey.touchUp', function(data) {})
|
|
||||||
socket.on('monkey.keyDown', function(data) {})
|
|
||||||
socket.on('monkey.keyUp', function(data) {})
|
|
||||||
socket.on('monkey.press', function(data) {})
|
|
||||||
socket.on('monkey.type', function(data) {})
|
|
||||||
socket.on('monkey.back', function(data) {})
|
|
||||||
socket.on('monkey.home', function(data) {})
|
|
||||||
socket.on('monkey.menu', function(data) {})
|
|
||||||
socket.on('internal.relaunch', function(data) {})
|
socket.on('internal.relaunch', function(data) {})
|
||||||
socket.on('browser.open', function(data) {})
|
socket.on('browser.open', function(data) {})
|
||||||
socket.on('chrome.open', function(data) {})
|
socket.on('chrome.open', function(data) {})
|
||||||
|
|
|
@ -259,8 +259,10 @@ module.exports = function(options) {
|
||||||
return monkey.connectStream(conn)
|
return monkey.connectStream(conn)
|
||||||
})
|
})
|
||||||
.then(function(monkey) {
|
.then(function(monkey) {
|
||||||
services.monkey =
|
services.monkey = vitals.register(
|
||||||
vitals.register('device:remote:monkey:monkey', monkey)
|
'device:remote:monkey:monkey'
|
||||||
|
, Promise.promisifyAll(monkey)
|
||||||
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -289,8 +291,10 @@ module.exports = function(options) {
|
||||||
return monkey.connectStream(conn)
|
return monkey.connectStream(conn)
|
||||||
})
|
})
|
||||||
.then(function(monkey) {
|
.then(function(monkey) {
|
||||||
services.input =
|
services.input = vitals.register(
|
||||||
vitals.register('device:remote:input:monkey', monkey)
|
'device:remote:input:monkey'
|
||||||
|
, Promise.promisifyAll(monkey)
|
||||||
|
)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
|
@ -349,6 +353,30 @@ module.exports = function(options) {
|
||||||
}
|
}
|
||||||
channels.keepalive(channel)
|
channels.keepalive(channel)
|
||||||
})
|
})
|
||||||
|
.on(wire.TouchDownMessage, function(channel, message) {
|
||||||
|
services.input.touchDownAsync(message.x, message.y)
|
||||||
|
})
|
||||||
|
.on(wire.TouchMoveMessage, function(channel, message) {
|
||||||
|
services.input.touchMoveAsync(message.x, message.y)
|
||||||
|
})
|
||||||
|
.on(wire.TouchUpMessage, function(channel, message) {
|
||||||
|
services.input.touchUpAsync(message.x, message.y)
|
||||||
|
})
|
||||||
|
.on(wire.TapMessage, function(channel, message) {
|
||||||
|
services.input.tapAsync(message.x, message.y)
|
||||||
|
})
|
||||||
|
.on(wire.TypeMessage, function(channel, message) {
|
||||||
|
services.input.typeAsync(message.text)
|
||||||
|
})
|
||||||
|
.on(wire.KeyDownMessage, function(channel, message) {
|
||||||
|
services.input.keyDownAsync(message.key)
|
||||||
|
})
|
||||||
|
.on(wire.KeyUpMessage, function(channel, message) {
|
||||||
|
services.input.keyUpAsync(message.key)
|
||||||
|
})
|
||||||
|
.on(wire.KeyPressMessage, function(channel, message) {
|
||||||
|
services.input.pressAsync(message.key)
|
||||||
|
})
|
||||||
.on(wire.ShellCommandMessage, function(channel, message) {
|
.on(wire.ShellCommandMessage, function(channel, message) {
|
||||||
log.info('Running shell command "%s"', message.command.join(' '))
|
log.info('Running shell command "%s"', message.command.join(' '))
|
||||||
adb.shellAsync(options.serial, message.command)
|
adb.shellAsync(options.serial, message.command)
|
||||||
|
|
|
@ -17,6 +17,14 @@ enum MessageType {
|
||||||
DeviceLogMessage = 14;
|
DeviceLogMessage = 14;
|
||||||
DevicePresentMessage = 16;
|
DevicePresentMessage = 16;
|
||||||
DeviceAbsentMessage = 17;
|
DeviceAbsentMessage = 17;
|
||||||
|
TouchDownMessage = 18;
|
||||||
|
TouchMoveMessage = 19;
|
||||||
|
TouchUpMessage = 20;
|
||||||
|
TapMessage = 21;
|
||||||
|
TypeMessage = 22;
|
||||||
|
KeyDownMessage = 23;
|
||||||
|
KeyUpMessage = 24;
|
||||||
|
KeyPressMessage = 25;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Envelope {
|
message Envelope {
|
||||||
|
@ -135,6 +143,44 @@ message LeaveGroupMessage {
|
||||||
required string serial = 1;
|
required string serial = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Input
|
||||||
|
|
||||||
|
message TouchDownMessage {
|
||||||
|
required uint32 x = 1;
|
||||||
|
required uint32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message TouchMoveMessage {
|
||||||
|
required uint32 x = 1;
|
||||||
|
required uint32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message TouchUpMessage {
|
||||||
|
required uint32 x = 1;
|
||||||
|
required uint32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message TapMessage {
|
||||||
|
required uint32 x = 1;
|
||||||
|
required uint32 y = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message TypeMessage {
|
||||||
|
required string text = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message KeyDownMessage {
|
||||||
|
required uint32 key = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message KeyUpMessage {
|
||||||
|
required uint32 key = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message KeyPressMessage {
|
||||||
|
required uint32 key = 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Commands
|
// Commands
|
||||||
|
|
||||||
message ShellCommandMessage {
|
message ShellCommandMessage {
|
||||||
|
|
|
@ -21,6 +21,23 @@ define(['./module', 'lodash'], function(mod, _) {
|
||||||
$rootScope.$digest()
|
$rootScope.$digest()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function touchSender(type) {
|
||||||
|
return function(x, y) {
|
||||||
|
socket.emit(type, {
|
||||||
|
x: x
|
||||||
|
, y: y
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function keySender(type) {
|
||||||
|
return function(key) {
|
||||||
|
socket.emit(type, {
|
||||||
|
key: key
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
groupService.invite = function(requirements) {
|
groupService.invite = function(requirements) {
|
||||||
socket.emit('group.invite', requirements)
|
socket.emit('group.invite', requirements)
|
||||||
}
|
}
|
||||||
|
@ -29,6 +46,33 @@ define(['./module', 'lodash'], function(mod, _) {
|
||||||
socket.emit('group.kick', requirements)
|
socket.emit('group.kick', requirements)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
groupService.touchDown = touchSender('input.touchDown')
|
||||||
|
groupService.touchMove = touchSender('input.touchMove')
|
||||||
|
groupService.touchUp = touchSender('input.touchUp')
|
||||||
|
groupService.tap = touchSender('input.tap')
|
||||||
|
|
||||||
|
groupService.keyDown = keySender('input.keyDown')
|
||||||
|
groupService.keyUp = keySender('input.keyUp')
|
||||||
|
groupService.keyPress = keySender('input.keyPress')
|
||||||
|
|
||||||
|
groupService.home = function() {
|
||||||
|
socket.emit('input.home')
|
||||||
|
}
|
||||||
|
|
||||||
|
groupService.menu = function() {
|
||||||
|
socket.emit('input.menu')
|
||||||
|
}
|
||||||
|
|
||||||
|
groupService.back = function() {
|
||||||
|
socket.emit('input.back')
|
||||||
|
}
|
||||||
|
|
||||||
|
groupService.type = function(text) {
|
||||||
|
socket.emit('input.type', {
|
||||||
|
text: text
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return groupService
|
return groupService
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue