package com.betomaluje.miband.bluetooth;
import com.betomaluje.miband.ActionCallback;
import java.util.UUID;
/**
* Created by Lewis on 10/01/15.
*/
public class WriteAction implements BLEAction {
private UUID service;
private final UUID characteristic;
private final byte[] payload;
private ActionCallback callback;
public WriteAction(final UUID service, final UUID characteristic, final byte[] payload) {
this.service = service;
this.characteristic = characteristic;
this.payload = payload;
}
public WriteAction(final UUID service, final UUID characteristic, final byte[] payload, ActionCallback callback) {
this.service = service;
this.characteristic = characteristic;
this.payload = payload;
this.callback = callback;
}
public WriteAction(final UUID characteristic, final byte[] payload) {
this.characteristic = characteristic;
this.payload = payload;
}
public WriteAction(final UUID characteristic, final byte[] payload, ActionCallback callback) {
this.characteristic = characteristic;
this.payload = payload;
this.callback = callback;
}
public UUID getCharacteristic() {
return characteristic;
}
public byte[] getPayload() {
return payload;
}
public ActionCallback getCallback() {
return callback;
}
public UUID getService() {
return service;
}
@Override
public boolean expectsResult() {
return true;
}
@Override
public boolean run(BTCommandManager btCommandManager) {
if (service == null)
return btCommandManager.writeCharacteristicWithResponse(getCharacteristic(), getPayload(), getCallback());
else
return btCommandManager.writeCharacteristicWithResponse(getService(), getCharacteristic(), getPayload(), getCallback());
}
}