initial support for FW 4.0-dp1
This commit is contained in:
parent
d225743d64
commit
b79b94809a
|
@ -69,7 +69,7 @@ public class AppMessageHandlerMisfit extends AppMessageHandler {
|
|||
break;
|
||||
}
|
||||
|
||||
if (!mPebbleProtocol.isFw3x) {
|
||||
if (mPebbleProtocol.mFwMajor < 3) {
|
||||
timestamp -= SimpleTimeZone.getDefault().getOffset(timestamp * 1000L) / 1000;
|
||||
}
|
||||
Date startDate = new Date((long) timestamp * 1000L);
|
||||
|
|
|
@ -296,7 +296,7 @@ public class PebbleIoThread extends GBDeviceIoThread {
|
|||
if (mPBWReader.isFirmware()) {
|
||||
writeInstallApp(mPebbleProtocol.encodeInstallFirmwareComplete());
|
||||
finishInstall(false);
|
||||
} else if (mPBWReader.isLanguage() || mPebbleProtocol.isFw3x) {
|
||||
} else if (mPBWReader.isLanguage() || mPebbleProtocol.mFwMajor >= 3) {
|
||||
finishInstall(false); // FIXME: dont know yet how to detect success
|
||||
} else {
|
||||
writeInstallApp(mPebbleProtocol.encodeAppRefresh(mInstallSlot));
|
||||
|
@ -614,7 +614,7 @@ public class PebbleIoThread extends GBDeviceIoThread {
|
|||
writeInstallApp(mPebbleProtocol.encodeGetTime());
|
||||
} else {
|
||||
GBDeviceApp app = mPBWReader.getGBDeviceApp();
|
||||
if (mPebbleProtocol.isFw3x && !mPBWReader.isLanguage()) {
|
||||
if (mPebbleProtocol.mFwMajor >= 3 && !mPBWReader.isLanguage()) {
|
||||
if (appId == 0) {
|
||||
// only install metadata - not the binaries
|
||||
write(mPebbleProtocol.encodeInstallMetadata(app.getUUID(), app.getName(), mPBWReader.getAppVersion(), mPBWReader.getSdkVersion(), mPBWReader.getFlags(), mPBWReader.getIconId()));
|
||||
|
|
|
@ -262,7 +262,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
|
||||
private static final Random mRandom = new Random();
|
||||
|
||||
boolean isFw3x = false;
|
||||
int mFwMajor = 3;
|
||||
boolean mForceProtocol = false;
|
||||
GBDeviceEventScreenshot mDevEventScreenshot = null;
|
||||
int mScreenshotRemaining = -1;
|
||||
|
@ -453,12 +453,12 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
}
|
||||
|
||||
Long ts = System.currentTimeMillis();
|
||||
if (!isFw3x) {
|
||||
if (mFwMajor < 3) {
|
||||
ts += (SimpleTimeZone.getDefault().getOffset(ts));
|
||||
}
|
||||
ts /= 1000;
|
||||
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
// 3.x notification
|
||||
return encodeBlobdbNotification(id, (int) (ts & 0xffffffffL), title, subtitle, notificationSpec.body, notificationSpec.sourceName, hasHandle, notificationSpec.type, notificationSpec.cannedReplies);
|
||||
} else if (mForceProtocol || notificationSpec.type != NotificationType.EMAIL) {
|
||||
|
@ -500,7 +500,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
long ts = System.currentTimeMillis();
|
||||
long ts_offset = (SimpleTimeZone.getDefault().getOffset(ts));
|
||||
ByteBuffer buf;
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
String timezone = SimpleTimeZone.getDefault().getID();
|
||||
short length = (short) (LENGTH_SETTIME + timezone.getBytes().length + 3);
|
||||
buf = ByteBuffer.allocate(LENGTH_PREFIX + length);
|
||||
|
@ -1194,7 +1194,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
|
||||
@Override
|
||||
public byte[] encodeAppInfoReq() {
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
return null; // can't do this on 3.x :(
|
||||
}
|
||||
return encodeSimpleMessage(ENDPOINT_APPMANAGER, APPMANAGER_GETUUIDS);
|
||||
|
@ -1202,7 +1202,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
|
||||
@Override
|
||||
public byte[] encodeAppStart(UUID uuid, boolean start) {
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
ByteBuffer buf = ByteBuffer.allocate(LENGTH_PREFIX + LENGTH_APPRUNSTATE);
|
||||
buf.order(ByteOrder.BIG_ENDIAN);
|
||||
buf.putShort(LENGTH_APPRUNSTATE);
|
||||
|
@ -1221,7 +1221,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
|
||||
@Override
|
||||
public byte[] encodeAppDelete(UUID uuid) {
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
if (UUID_PEBBLE_HEALTH.equals(uuid)) {
|
||||
return encodeActivateHealth(false);
|
||||
}
|
||||
|
@ -1317,7 +1317,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
/* pebble specific install methods */
|
||||
public byte[] encodeUploadStart(byte type, int app_id, int size, String filename) {
|
||||
short length;
|
||||
if (isFw3x && (type != PUTBYTES_TYPE_FILE)) {
|
||||
if (mFwMajor >= 3 && (type != PUTBYTES_TYPE_FILE)) {
|
||||
length = LENGTH_UPLOADSTART_3X;
|
||||
type |= 0b10000000;
|
||||
} else {
|
||||
|
@ -1336,7 +1336,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
buf.putInt(size);
|
||||
buf.put(type);
|
||||
|
||||
if (isFw3x && (type != PUTBYTES_TYPE_FILE)) {
|
||||
if (mFwMajor >= 3 && (type != PUTBYTES_TYPE_FILE)) {
|
||||
buf.putInt(app_id);
|
||||
} else {
|
||||
// slot
|
||||
|
@ -1724,7 +1724,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
int id;
|
||||
long uuid_high = 0;
|
||||
long uuid_low = 0;
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
buf.order(ByteOrder.BIG_ENDIAN);
|
||||
uuid_high = buf.getLong();
|
||||
uuid_low = buf.getLong();
|
||||
|
@ -1792,9 +1792,9 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
break;
|
||||
}
|
||||
GBDeviceEventSendBytes sendBytesAck = null;
|
||||
if (isFw3x || needsAck2x) {
|
||||
if (mFwMajor >= 3 || needsAck2x) {
|
||||
sendBytesAck = new GBDeviceEventSendBytes();
|
||||
if (isFw3x) {
|
||||
if (mFwMajor >= 3) {
|
||||
sendBytesAck.encodedBytes = encodeActionResponse(new UUID(uuid_high, uuid_low), icon_id, caption);
|
||||
} else {
|
||||
sendBytesAck.encodedBytes = encodeActionResponse2x(id, action, 6, caption);
|
||||
|
@ -2040,9 +2040,8 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
|||
buf.get(tmp, 0, 32);
|
||||
|
||||
versionCmd.fwVersion = new String(tmp).trim();
|
||||
if (versionCmd.fwVersion.startsWith("v3")) {
|
||||
isFw3x = true;
|
||||
}
|
||||
|
||||
mFwMajor = versionCmd.fwVersion.charAt(1);
|
||||
|
||||
buf.get(tmp, 0, 9);
|
||||
int hwRev = buf.get() + 8;
|
||||
|
|
Loading…
Reference in New Issue