RangeState.java 2.49 KB
package com.radiusnetworks.ibeacon.service;

import com.radiusnetworks.ibeacon.IBeacon;
import com.radiusnetworks.ibeacon.IBeaconManager;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class RangeState
{
  private Callback a;
  private Map<IBeacon, RangedIBeacon> b = new HashMap();
  
  public RangeState(Callback paramCallback)
  {
    this.a = paramCallback;
  }
  
  public void addIBeacon(IBeacon paramIBeacon)
  {
    if (this.b.containsKey(paramIBeacon))
    {
      RangedIBeacon localRangedIBeacon = (RangedIBeacon)this.b.get(paramIBeacon);
      if (IBeaconManager.debug) {
        new StringBuilder("adding ").append(paramIBeacon.getProximityUuid()).append(" to existing range for: ").append(localRangedIBeacon.getProximityUuid());
      }
      localRangedIBeacon.addRangeMeasurement(Integer.valueOf(paramIBeacon.getRssi()));
      return;
    }
    if (IBeaconManager.debug) {
      new StringBuilder("adding ").append(paramIBeacon.getProximityUuid()).append(" to new rangedIBeacon");
    }
    this.b.put(paramIBeacon, new RangedIBeacon(paramIBeacon));
  }
  
  public Collection<IBeacon> finalizeIBeacons()
  {
    HashMap localHashMap;
    for (;;)
    {
      try
      {
        ArrayList localArrayList = new ArrayList();
        localHashMap = new HashMap();
        synchronized (this.b)
        {
          Iterator localIterator = this.b.keySet().iterator();
          if (!localIterator.hasNext()) {
            break;
          }
          IBeacon localIBeacon = (IBeacon)localIterator.next();
          RangedIBeacon localRangedIBeacon = (RangedIBeacon)this.b.get(localIBeacon);
          if (localRangedIBeacon.isTracked())
          {
            localRangedIBeacon.commitMeasurements();
            localArrayList.add(localRangedIBeacon);
          }
          if (!localRangedIBeacon.noMeasurementsAvailable())
          {
            i = 1;
            if (i != 1) {
              continue;
            }
            localRangedIBeacon.setTracked(false);
            localHashMap.put(localIBeacon, localRangedIBeacon);
          }
        }
        int i = 0;
      }
      finally {}
    }
    this.b = localHashMap;
    return localCollection;
  }
  
  public Callback getCallback()
  {
    return this.a;
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/radiusnetworks/ibeacon/service/RangeState.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */