diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-02-25 23:02:13 +0100 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-02-25 23:02:18 +0100 |
commit | df19ffa05ec5dfc6bccb010bc9fd6231987bafcb (patch) | |
tree | 2825961568875dac94091c2bef2444fdf24cdc27 /same-android/src | |
parent | 232b46f11e0249cad574e35bd2e0d5922efa7d6f (diff) |
SameService sends all state initially to new listeners.
Diffstat (limited to 'same-android/src')
-rw-r--r-- | same-android/src/main/java/com/orbekk/same/SameService.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/same-android/src/main/java/com/orbekk/same/SameService.java b/same-android/src/main/java/com/orbekk/same/SameService.java index 55fb17c..dad4b50 100644 --- a/same-android/src/main/java/com/orbekk/same/SameService.java +++ b/same-android/src/main/java/com/orbekk/same/SameService.java @@ -97,6 +97,7 @@ public class SameService extends Service { Messenger messenger = message.replyTo; if (messenger != null) { stateReceivers.add(messenger); + sendAllState(messenger); } else { logger.error("ADD_STATE_RECEIVER: Missing Messenger."); } @@ -127,6 +128,21 @@ public class SameService extends Service { } }; + private void sendAllState(Messenger messenger) { + State state = sameController.getClient().getInterface().getState(); + for (Component c : state.getComponents()) { + Message message = Message.obtain(null, UPDATED_STATE_MESSAGE); + message.obj = c; + try { + messenger.send(message); + } catch (RemoteException e) { + logger.warn("Failed to send state."); + e.printStackTrace(); + return; + } + } + } + private void initializeConfiguration() { Properties properties = new Properties(); String localIp = new Broadcaster(this) |