diff options
| -rw-r--r-- | same-android/src/main/java/com/orbekk/same/android/ClientInterfaceBridge.java | 15 | ||||
| -rw-r--r-- | same-android/src/main/java/com/orbekk/same/android/SameService.java | 9 | 
2 files changed, 11 insertions, 13 deletions
diff --git a/same-android/src/main/java/com/orbekk/same/android/ClientInterfaceBridge.java b/same-android/src/main/java/com/orbekk/same/android/ClientInterfaceBridge.java index 892e9a5..6ae979c 100644 --- a/same-android/src/main/java/com/orbekk/same/android/ClientInterfaceBridge.java +++ b/same-android/src/main/java/com/orbekk/same/android/ClientInterfaceBridge.java @@ -42,16 +42,17 @@ import com.orbekk.util.DelayedOperation;  public class ClientInterfaceBridge implements ClientInterface {      private State state; -    private ArrayList<StateChangedListener> listeners =  +    private final ArrayList<StateChangedListener> listeners =               new ArrayList<StateChangedListener>(); -    private Map<Integer, DelayedOperation> ongoingOperations = +    private final Map<Integer, DelayedOperation> ongoingOperations =              new HashMap<Integer, DelayedOperation>();      /** This is used to queue operations until connected to the service. */ -    private ArrayList<Message> pendingOperations = new ArrayList<Message>(); -    private int nextOperationNumber = 0; +    private final ArrayList<Message> pendingOperations = new ArrayList<Message>(); +    private volatile int nextOperationNumber = 0;      class ResponseHandler extends Handler {          @Override public synchronized void handleMessage(Message message) { +            logger.info("ResponseHandler: Got here. Message: {}", message);              if (serviceMessenger == null) {                  logger.warn("Ignoring message to disabled ResponseHandler.");                  return; @@ -79,9 +80,9 @@ public class ClientInterfaceBridge implements ClientInterface {      }      private Logger logger = LoggerFactory.getLogger(getClass()); -    private Messenger serviceMessenger = null; -    private Messenger responseMessenger = new Messenger(new ResponseHandler()); -    private Context context; +    private volatile Messenger serviceMessenger = null; +    private volatile Messenger responseMessenger = new Messenger(new ResponseHandler()); +    private volatile Context context;      private ServiceConnection serviceConnection = new ServiceConnection() {          @Override diff --git a/same-android/src/main/java/com/orbekk/same/android/SameService.java b/same-android/src/main/java/com/orbekk/same/android/SameService.java index 18c13af..f369b3a 100644 --- a/same-android/src/main/java/com/orbekk/same/android/SameService.java +++ b/same-android/src/main/java/com/orbekk/same/android/SameService.java @@ -147,12 +147,9 @@ public class SameService extends Service {                      State.Component updatedComponent =                              new ComponentBundle(message.getData()).getComponent();                      int id = message.arg1; -                    logger.info("Running operation. Component: " + updatedComponent);                      DelayedOperation op = sameController.getClient().getInterface()                              .set(updatedComponent); -                    logger.info("Operation finished. Sending callback.");                      operationStatusCallback(op, id, message.replyTo); -                    logger.info("Callback sent.");                      break;                  case KILL_MASTER:                      logger.info("Kill master."); @@ -193,10 +190,10 @@ public class SameService extends Service {              Message message = Message.obtain(null,                      OPERATION_STATUS_CALLBACK);              message.arg1 = id; -            message.arg2 = op.getStatus().getStatusCode(); -            message.obj = op.getStatus().getMessage(); +            message.getData().putInt("statusCode", op.getStatus().getStatusCode()); +            message.getData().putString("statusMessage", op.getStatus().getMessage());              try { -                messenger.send(message); +                replyTo.send(message);              } catch (RemoteException e) {                  logger.warn("Unable to send update result: " +                           op.getStatus());  | 
