Advertisement
FrayxRulez

Untitled

Dec 4th, 2014
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.97 KB | None | 0 0
  1. package com.getpebble.android.framework.protocol.outbound;
  2.  
  3. import com.getpebble.android.common.version.AndroidPebbleAppVersion;
  4. import com.getpebble.android.framework.protocol.EndpointId;
  5. import com.getpebble.android.framework.util.ByteUtils;
  6. import com.google.common.primitives.UnsignedInteger;
  7. import java.util.ArrayList;
  8. import java.util.Iterator;
  9. import java.util.List;
  10.  
  11. public class PblOutboundPhoneVersionMessage extends PblOutboundMessage
  12. {
  13.   private static final OperatingSystem mOperatingSystem = OperatingSystem.ANDROID;
  14.   private AndroidPebbleAppVersion mAppVersion;
  15.   private final List<RemoteCapability> mRemoteCapabilities = new ArrayList();
  16.   private final List<SessionCapability> mSessionCapabilities = new ArrayList();
  17.  
  18.   public PblOutboundPhoneVersionMessage(AndroidPebbleAppVersion paramAndroidPebbleAppVersion)
  19.   {
  20.     super(EndpointId.PHONE_VERSION);
  21.     this.mAppVersion = paramAndroidPebbleAppVersion;
  22.   }
  23.  
  24.   private final UnsignedInteger getRemoteBitField()
  25.   {
  26.     int i = 0x0 | mOperatingSystem.getId();
  27.     Iterator localIterator = this.mRemoteCapabilities.iterator();
  28.     while (localIterator.hasNext())
  29.       i |= ((RemoteCapability)localIterator.next()).getId();
  30.     return UnsignedInteger.fromIntBits(i);
  31.   }
  32.  
  33.   private final UnsignedInteger getSessionBitField()
  34.   {
  35.     int i = 0;
  36.     Iterator localIterator = this.mSessionCapabilities.iterator();
  37.     while (localIterator.hasNext())
  38.       i |= ((SessionCapability)localIterator.next()).getId();
  39.     return UnsignedInteger.fromIntBits(i);
  40.   }
  41.  
  42.   public byte[] getBytes()
  43.   {
  44.     if (!areBytesCached())
  45.     {
  46.       Byte[] arrayOfByte1 = new Byte[1];
  47.       arrayOfByte1[0] = Byte.valueOf(1);
  48.       addBytes(arrayOfByte1);
  49.       addBytes(ByteUtils.unsignedInt2bytes(UnsignedInteger.MAX_VALUE));
  50.       addBytes(ByteUtils.unsignedInt2bytes(getSessionBitField()));
  51.       addBytes(ByteUtils.unsignedInt2bytes(getRemoteBitField()));
  52.       Byte[] arrayOfByte2 = new Byte[1];
  53.       arrayOfByte2[0] = Byte.valueOf(2);
  54.       addBytes(arrayOfByte2);
  55.       Byte[] arrayOfByte3 = new Byte[1];
  56.       arrayOfByte3[0] = Byte.valueOf((byte)this.mAppVersion.getMajor());
  57.       addBytes(arrayOfByte3);
  58.       Byte[] arrayOfByte4 = new Byte[1];
  59.       arrayOfByte4[0] = Byte.valueOf((byte)this.mAppVersion.getMinor());
  60.       addBytes(arrayOfByte4);
  61.       Byte[] arrayOfByte5 = new Byte[1];
  62.       arrayOfByte5[0] = Byte.valueOf((byte)this.mAppVersion.getPoint());
  63.       addBytes(arrayOfByte5);
  64.     }
  65.     return super.getBytes();
  66.   }
  67.  
  68.   public static enum OperatingSystem
  69.   {
  70.     private final int id;
  71.  
  72.     static
  73.     {
  74.       IOS = new OperatingSystem("IOS", 1, 1);
  75.       ANDROID = new OperatingSystem("ANDROID", 2, 2);
  76.       OSX = new OperatingSystem("OSX", 3, 3);
  77.       LINUX = new OperatingSystem("LINUX", 4, 4);
  78.       WINDOWS = new OperatingSystem("WINDOWS", 5, 5);
  79.       OperatingSystem[] arrayOfOperatingSystem = new OperatingSystem[6];
  80.       arrayOfOperatingSystem[0] = UNKNOWN;
  81.       arrayOfOperatingSystem[1] = IOS;
  82.       arrayOfOperatingSystem[2] = ANDROID;
  83.       arrayOfOperatingSystem[3] = OSX;
  84.       arrayOfOperatingSystem[4] = LINUX;
  85.       arrayOfOperatingSystem[5] = WINDOWS;
  86.     }
  87.  
  88.     private OperatingSystem(int paramInt)
  89.     {
  90.       this.id = paramInt;
  91.     }
  92.  
  93.     public int getId()
  94.     {
  95.       return this.id;
  96.     }
  97.   }
  98.  
  99.   public static enum RemoteCapability
  100.   {
  101.     private final int id;
  102.  
  103.     static
  104.     {
  105.       SMS = new RemoteCapability("SMS", 1, 32);
  106.       GPS = new RemoteCapability("GPS", 2, 64);
  107.       BTLE = new RemoteCapability("BTLE", 3, 128);
  108.       CAMERA_FRONT = new RemoteCapability("CAMERA_FRONT", 4, 240);
  109.       CAMERA_REAR = new RemoteCapability("CAMERA_REAR", 5, 256);
  110.       ACCEL = new RemoteCapability("ACCEL", 6, 512);
  111.       GYRO = new RemoteCapability("GYRO", 7, 1024);
  112.       COMPASS = new RemoteCapability("COMPASS", 8, 2048);
  113.       RemoteCapability[] arrayOfRemoteCapability = new RemoteCapability[9];
  114.       arrayOfRemoteCapability[0] = TELEPHONY;
  115.       arrayOfRemoteCapability[1] = SMS;
  116.       arrayOfRemoteCapability[2] = GPS;
  117.       arrayOfRemoteCapability[3] = BTLE;
  118.       arrayOfRemoteCapability[4] = CAMERA_FRONT;
  119.       arrayOfRemoteCapability[5] = CAMERA_REAR;
  120.       arrayOfRemoteCapability[6] = ACCEL;
  121.       arrayOfRemoteCapability[7] = GYRO;
  122.       arrayOfRemoteCapability[8] = COMPASS;
  123.     }
  124.  
  125.     private RemoteCapability(int paramInt)
  126.     {
  127.       this.id = paramInt;
  128.     }
  129.  
  130.     public int getId()
  131.     {
  132.       return this.id;
  133.     }
  134.   }
  135.  
  136.   public static enum SessionCapability
  137.   {
  138.     private final int id;
  139.  
  140.     static
  141.     {
  142.       GAMMA_RAY = new SessionCapability("GAMMA_RAY", 1, -2147483648);
  143.       SessionCapability[] arrayOfSessionCapability = new SessionCapability[2];
  144.       arrayOfSessionCapability[0] = GEOLOCATION;
  145.       arrayOfSessionCapability[1] = GAMMA_RAY;
  146.     }
  147.  
  148.     private SessionCapability(int paramInt)
  149.     {
  150.       this.id = paramInt;
  151.     }
  152.  
  153.     public int getId()
  154.     {
  155.       return this.id;
  156.     }
  157.   }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement