Example #1
0
  protected void manageUpdateListener(boolean register, SensorEventListener listener) {
    if (register) {
      if (!listeningForUpdate) {
        sensorAttached = sensorHelper.attach(proxy.getTiContext().getActivity());

        if (sensorAttached) {

          LocationManager locationManager =
              (LocationManager)
                  proxy.getTiContext().getActivity().getSystemService(Context.LOCATION_SERVICE);

          Criteria criteria = new Criteria();
          String provider = locationManager.getBestProvider(criteria, true);
          if (provider != null) {
            Location location = locationManager.getLastKnownLocation(provider);
            if (location != null) {
              geomagneticField =
                  new GeomagneticField(
                      (float) location.getLatitude(),
                      (float) location.getLongitude(),
                      (float) location.getAltitude(),
                      System.currentTimeMillis());
            }
          }
          sensorHelper.registerListener(SENSORS, listener, SensorManager.SENSOR_DELAY_UI);
          listeningForUpdate = true;
        }
      }
    } else {
      if (listeningForUpdate) {
        sensorHelper.unregisterListener(SENSORS, listener);
        if (sensorHelper.isEmpty()) {
          listeningForUpdate = false;
          sensorHelper.detach();
        }
      }
    }
  }
Example #2
0
  @Override
  public void eventListenerRemoved(String type, int count, KrollProxy proxy) {
    if (accelerometerRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_ACCELEROMETER, this);
        accelerometerRegistered = false;
      }
    }
    if (magneticFieldRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_MAGNETIC_FIELD, this);
        magneticFieldRegistered = false;
      }
    }

    if (ambiantTemperatureRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_AMBIENT_TEMPERATURE, this);
        ambiantTemperatureRegistered = false;
      }
    }

    if (gameRotationVectorRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_GAME_ROTATION_VECTOR, this);
        gameRotationVectorRegistered = false;
      }
    }

    if (geomagneticRotationVectorRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR, this);
        geomagneticRotationVectorRegistered = false;
      }
    }

    if (gravityRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_GRAVITY, this);
        gravityRegistered = false;
      }
    }

    if (gyroscopeRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_GYROSCOPE, this);
        gyroscopeRegistered = false;
      }
    }

    if (gyroscopeUncalibratedRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_GYROSCOPE_UNCALIBRATED, this);
        gyroscopeUncalibratedRegistered = false;
      }
    }

    /*if (heartRateRegistered) {
    	if (EVENT_UPDATE.equals(type)) {
    		TiSensorHelper.unregisterListener(Sensor.TYPE_HEART_RATE, this);
    		heartRateRegistered = false;
    	}
    }*/

    if (lightRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_LIGHT, this);
        lightRegistered = false;
      }
    }

    if (linearAccelerationRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_LINEAR_ACCELERATION, this);
        linearAccelerationRegistered = false;
      }
    }

    if (magneticFieldUncalibratedRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED, this);
        magneticFieldUncalibratedRegistered = false;
      }
    }

    if (orientationRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_ORIENTATION, this);
        orientationRegistered = false;
      }
    }

    if (pressureRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_PRESSURE, this);
        pressureRegistered = false;
      }
    }

    if (proximityRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_PROXIMITY, this);
        proximityRegistered = false;
      }
    }

    if (relativeHumidityRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_RELATIVE_HUMIDITY, this);
        relativeHumidityRegistered = false;
      }
    }

    if (rotationVectorRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_ROTATION_VECTOR, this);
        rotationVectorRegistered = false;
      }
    }

    if (significantMotionRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_SIGNIFICANT_MOTION, this);
        significantMotionRegistered = false;
      }
    }

    if (stepCounterRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_STEP_COUNTER, this);
        stepCounterRegistered = false;
      }
    }

    if (stepDetectorRegistered) {
      if (EVENT_UPDATE.equals(type)) {
        TiSensorHelper.unregisterListener(Sensor.TYPE_STEP_DETECTOR, this);
        stepDetectorRegistered = false;
      }
    }
    setflashLightOff();
    super.eventListenerRemoved(type, count, proxy);
  }
 public void unregisterListener() {
   TiSensorHelper.unregisterListener(Sensor.TYPE_ORIENTATION, this);
 }