Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.getpebble.android.framework.protocol.outbound;
- import com.getpebble.android.common.version.AndroidPebbleAppVersion;
- import com.getpebble.android.framework.protocol.EndpointId;
- import com.getpebble.android.framework.util.ByteUtils;
- import com.google.common.primitives.UnsignedInteger;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- public class PblOutboundPhoneVersionMessage extends PblOutboundMessage
- {
- private static final OperatingSystem mOperatingSystem = OperatingSystem.ANDROID;
- private AndroidPebbleAppVersion mAppVersion;
- private final List<RemoteCapability> mRemoteCapabilities = new ArrayList();
- private final List<SessionCapability> mSessionCapabilities = new ArrayList();
- public PblOutboundPhoneVersionMessage(AndroidPebbleAppVersion paramAndroidPebbleAppVersion)
- {
- super(EndpointId.PHONE_VERSION);
- this.mAppVersion = paramAndroidPebbleAppVersion;
- }
- private final UnsignedInteger getRemoteBitField()
- {
- int i = 0x0 | mOperatingSystem.getId();
- Iterator localIterator = this.mRemoteCapabilities.iterator();
- while (localIterator.hasNext())
- i |= ((RemoteCapability)localIterator.next()).getId();
- return UnsignedInteger.fromIntBits(i);
- }
- private final UnsignedInteger getSessionBitField()
- {
- int i = 0;
- Iterator localIterator = this.mSessionCapabilities.iterator();
- while (localIterator.hasNext())
- i |= ((SessionCapability)localIterator.next()).getId();
- return UnsignedInteger.fromIntBits(i);
- }
- public byte[] getBytes()
- {
- if (!areBytesCached())
- {
- Byte[] arrayOfByte1 = new Byte[1];
- arrayOfByte1[0] = Byte.valueOf(1);
- addBytes(arrayOfByte1);
- addBytes(ByteUtils.unsignedInt2bytes(UnsignedInteger.MAX_VALUE));
- addBytes(ByteUtils.unsignedInt2bytes(getSessionBitField()));
- addBytes(ByteUtils.unsignedInt2bytes(getRemoteBitField()));
- Byte[] arrayOfByte2 = new Byte[1];
- arrayOfByte2[0] = Byte.valueOf(2);
- addBytes(arrayOfByte2);
- Byte[] arrayOfByte3 = new Byte[1];
- arrayOfByte3[0] = Byte.valueOf((byte)this.mAppVersion.getMajor());
- addBytes(arrayOfByte3);
- Byte[] arrayOfByte4 = new Byte[1];
- arrayOfByte4[0] = Byte.valueOf((byte)this.mAppVersion.getMinor());
- addBytes(arrayOfByte4);
- Byte[] arrayOfByte5 = new Byte[1];
- arrayOfByte5[0] = Byte.valueOf((byte)this.mAppVersion.getPoint());
- addBytes(arrayOfByte5);
- }
- return super.getBytes();
- }
- public static enum OperatingSystem
- {
- private final int id;
- static
- {
- IOS = new OperatingSystem("IOS", 1, 1);
- ANDROID = new OperatingSystem("ANDROID", 2, 2);
- OSX = new OperatingSystem("OSX", 3, 3);
- LINUX = new OperatingSystem("LINUX", 4, 4);
- WINDOWS = new OperatingSystem("WINDOWS", 5, 5);
- OperatingSystem[] arrayOfOperatingSystem = new OperatingSystem[6];
- arrayOfOperatingSystem[0] = UNKNOWN;
- arrayOfOperatingSystem[1] = IOS;
- arrayOfOperatingSystem[2] = ANDROID;
- arrayOfOperatingSystem[3] = OSX;
- arrayOfOperatingSystem[4] = LINUX;
- arrayOfOperatingSystem[5] = WINDOWS;
- }
- private OperatingSystem(int paramInt)
- {
- this.id = paramInt;
- }
- public int getId()
- {
- return this.id;
- }
- }
- public static enum RemoteCapability
- {
- private final int id;
- static
- {
- SMS = new RemoteCapability("SMS", 1, 32);
- GPS = new RemoteCapability("GPS", 2, 64);
- BTLE = new RemoteCapability("BTLE", 3, 128);
- CAMERA_FRONT = new RemoteCapability("CAMERA_FRONT", 4, 240);
- CAMERA_REAR = new RemoteCapability("CAMERA_REAR", 5, 256);
- ACCEL = new RemoteCapability("ACCEL", 6, 512);
- GYRO = new RemoteCapability("GYRO", 7, 1024);
- COMPASS = new RemoteCapability("COMPASS", 8, 2048);
- RemoteCapability[] arrayOfRemoteCapability = new RemoteCapability[9];
- arrayOfRemoteCapability[0] = TELEPHONY;
- arrayOfRemoteCapability[1] = SMS;
- arrayOfRemoteCapability[2] = GPS;
- arrayOfRemoteCapability[3] = BTLE;
- arrayOfRemoteCapability[4] = CAMERA_FRONT;
- arrayOfRemoteCapability[5] = CAMERA_REAR;
- arrayOfRemoteCapability[6] = ACCEL;
- arrayOfRemoteCapability[7] = GYRO;
- arrayOfRemoteCapability[8] = COMPASS;
- }
- private RemoteCapability(int paramInt)
- {
- this.id = paramInt;
- }
- public int getId()
- {
- return this.id;
- }
- }
- public static enum SessionCapability
- {
- private final int id;
- static
- {
- GAMMA_RAY = new SessionCapability("GAMMA_RAY", 1, -2147483648);
- SessionCapability[] arrayOfSessionCapability = new SessionCapability[2];
- arrayOfSessionCapability[0] = GEOLOCATION;
- arrayOfSessionCapability[1] = GAMMA_RAY;
- }
- private SessionCapability(int paramInt)
- {
- this.id = paramInt;
- }
- public int getId()
- {
- return this.id;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement