1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 02:29:26 +02:00

Fix browser plugin not updating in real time.

This commit is contained in:
Simo Kinnunen 2014-05-01 20:13:29 +09:00
parent 26b2b1acc6
commit 98ecf57d49
9 changed files with 128 additions and 181 deletions

View file

@ -1,4 +1,5 @@
var util = require('util')
var events = require('events')
var syrup = require('syrup')
var Promise = require('bluebird')
@ -37,6 +38,7 @@ module.exports = syrup.serial()
.define(function(options, adb, router, push, apk) {
var log = logger.createLogger('device:plugins:service')
var messageResolver = new MessageResolver()
var plugin = new events.EventEmitter()
var agent = {
socket: null
@ -182,6 +184,7 @@ module.exports = syrup.serial()
, message.enabled
))
])
plugin.emit('airplaneModeChange', message)
break
case apk.wire.MessageType.EVENT_BATTERY:
var message = apk.wire.BatteryEvent.decode(envelope.message)
@ -198,23 +201,11 @@ module.exports = syrup.serial()
, message.voltage
))
])
plugin.emit('batteryChange', message)
break
case apk.wire.MessageType.EVENT_BROWSER_PACKAGE:
var message = apk.wire.BrowserPackageEvent.decode(envelope.message)
push.send([
wireutil.global
, wireutil.envelope(new wire.BrowserPackageEvent(
options.serial
, message.selected
, message.apps.map(function(app) {
return new wire.BrowserApp(
app.name
, app.component
, app.selected
)
})
))
])
plugin.emit('browserPackageChange', message)
break
case apk.wire.MessageType.EVENT_CONNECTIVITY:
var message = apk.wire.ConnectivityEvent.decode(envelope.message)
@ -229,6 +220,7 @@ module.exports = syrup.serial()
, message.roaming
))
])
plugin.emit('connectivityChange', message)
break
case apk.wire.MessageType.EVENT_PHONE_STATE:
var message = apk.wire.PhoneStateEvent.decode(envelope.message)
@ -241,6 +233,7 @@ module.exports = syrup.serial()
, message.operator
))
])
plugin.emit('phoneStateChange', message)
break
case apk.wire.MessageType.EVENT_ROTATION:
var message = apk.wire.RotationEvent.decode(envelope.message)
@ -251,6 +244,7 @@ module.exports = syrup.serial()
, message.rotation
))
])
plugin.emit('rotationChange', message)
break
}
}
@ -267,14 +261,14 @@ module.exports = syrup.serial()
)
}
function type(text) {
plugin.type = function(text) {
return runAgentCommand(
apk.wire.MessageType.DO_TYPE
, new apk.wire.DoTypeRequest(text)
)
}
function paste(text) {
plugin.paste = function(text) {
return setClipboard(text)
.then(function() {
keyEvent({
@ -285,28 +279,28 @@ module.exports = syrup.serial()
})
}
function wake() {
plugin.wake = function() {
return runAgentCommand(
apk.wire.MessageType.DO_WAKE
, new apk.wire.DoWakeRequest()
)
}
function freezeRotation(rotation) {
plugin.freezeRotation = function(rotation) {
return runAgentCommand(
apk.wire.MessageType.SET_ROTATION
, new apk.wire.SetRotationRequest(rotation, true)
)
}
function thawRotation() {
plugin.thawRotation = function() {
return runAgentCommand(
apk.wire.MessageType.SET_ROTATION
, new apk.wire.SetRotationRequest(0, false)
)
}
function version() {
plugin.version = function() {
return runServiceCommand(
apk.wire.MessageType.GET_VERSION
, new apk.wire.GetVersionRequest()
@ -321,7 +315,7 @@ module.exports = syrup.serial()
})
}
function unlock() {
plugin.unlock = function() {
return runServiceCommand(
apk.wire.MessageType.SET_KEYGUARD_STATE
, new apk.wire.SetKeyguardStateRequest(false)
@ -335,7 +329,7 @@ module.exports = syrup.serial()
})
}
function lock() {
plugin.lock = function() {
return runServiceCommand(
apk.wire.MessageType.SET_KEYGUARD_STATE
, new apk.wire.SetKeyguardStateRequest(true)
@ -349,7 +343,7 @@ module.exports = syrup.serial()
})
}
function acquireWakeLock() {
plugin.acquireWakeLock = function() {
return runServiceCommand(
apk.wire.MessageType.SET_WAKE_LOCK
, new apk.wire.SetWakeLockRequest(true)
@ -363,7 +357,7 @@ module.exports = syrup.serial()
})
}
function releaseWakeLock() {
plugin.releaseWakeLock = function() {
return runServiceCommand(
apk.wire.MessageType.SET_WAKE_LOCK
, new apk.wire.SetWakeLockRequest(false)
@ -377,7 +371,7 @@ module.exports = syrup.serial()
})
}
function identity() {
plugin.identity = function() {
return runServiceCommand(
apk.wire.MessageType.DO_IDENTIFY
, new apk.wire.DoIdentifyRequest(options.serial)
@ -391,7 +385,7 @@ module.exports = syrup.serial()
})
}
function setClipboard(text) {
plugin.setClipboard = function(text) {
return runServiceCommand(
apk.wire.MessageType.SET_CLIPBOARD
, new apk.wire.SetClipboardRequest(
@ -408,7 +402,7 @@ module.exports = syrup.serial()
})
}
function getClipboard() {
plugin.getClipboard = function() {
return runServiceCommand(
apk.wire.MessageType.GET_CLIPBOARD
, new apk.wire.GetClipboardRequest(
@ -428,7 +422,7 @@ module.exports = syrup.serial()
})
}
function getBrowsers() {
plugin.getBrowsers = function() {
return runServiceCommand(
apk.wire.MessageType.GET_BROWSERS
, new apk.wire.GetBrowsersRequest()
@ -444,7 +438,7 @@ module.exports = syrup.serial()
})
}
function getProperties(properties) {
plugin.getProperties = function(properties) {
return runServiceCommand(
apk.wire.MessageType.GET_PROPERTIES
, new apk.wire.GetPropertiesRequest(properties)
@ -488,7 +482,7 @@ module.exports = syrup.serial()
router
.on(wire.PhysicalIdentifyMessage, function(channel) {
var reply = wireutil.reply(options.serial)
identity()
plugin.identity()
push.send([
channel
, reply.okay()
@ -513,29 +507,16 @@ module.exports = syrup.serial()
})
})
.on(wire.TypeMessage, function(channel, message) {
type(message.text)
plugin.type(message.text)
})
.on(wire.RotateMessage, function(channel, message) {
if (message.rotation >= 0) {
freezeRotation(message.rotation)
plugin.freezeRotation(message.rotation)
}
else {
thawRotation()
plugin.thawRotation()
}
})
return {
acquireWakeLock: acquireWakeLock
, copy: getClipboard
, getBrowsers: getBrowsers
, getProperties: getProperties
, identity: identity
, lock: lock
, paste: paste
, releaseWakeLock: releaseWakeLock
, unlock: unlock
, version: version
, wake: wake
}
})
.return(plugin)
})