46 lines
1.5 KiB
Java
46 lines
1.5 KiB
Java
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.messages;
|
|
|
|
public class DownloadRequestMessage extends GFDIMessage {
|
|
|
|
private final int fileIndex;
|
|
private final REQUEST_TYPE requestType;
|
|
private final int crcSeed;
|
|
private final int dataSize;
|
|
|
|
private final int dataOffset;
|
|
|
|
public DownloadRequestMessage(GarminMessage garminMessage, int fileIndex, int size, REQUEST_TYPE requestType, int crcSeed, int dataSize, int dataOffset) {
|
|
this.requestType = requestType;
|
|
this.crcSeed = crcSeed;
|
|
this.dataSize = dataSize;
|
|
this.dataOffset = dataOffset;
|
|
this.garminMessage = garminMessage;
|
|
this.fileIndex = fileIndex;
|
|
this.statusMessage = this.getStatusMessage();
|
|
}
|
|
|
|
public DownloadRequestMessage(int fileIndex, int dataSize, REQUEST_TYPE requestType, int crcSeed, int dataOffset) {
|
|
this(GarminMessage.DOWNLOAD_REQUEST, fileIndex, dataSize, requestType, crcSeed, dataSize, dataOffset);
|
|
}
|
|
|
|
@Override
|
|
protected boolean generateOutgoing() {
|
|
final MessageWriter writer = new MessageWriter(response);
|
|
writer.writeShort(0); // packet size will be filled below
|
|
writer.writeShort(this.garminMessage.getId());
|
|
writer.writeShort(this.fileIndex);
|
|
writer.writeInt(this.dataOffset);
|
|
writer.writeByte(this.requestType.ordinal());
|
|
writer.writeShort(this.crcSeed);
|
|
writer.writeInt(this.dataSize);
|
|
|
|
return true;
|
|
}
|
|
|
|
public enum REQUEST_TYPE {
|
|
CONTINUE,
|
|
NEW,
|
|
}
|
|
|
|
}
|