@Override
  public void onCreate() {
    LoginScreen.appendLog(TAG, "[SERVICE] onCreate");
    super.onCreate();

    // Load settings
    mSettings = PreferenceManager.getDefaultSharedPreferences(this);
    mPedometerSettings = new PedometerSettings(mSettings);
    mState = getSharedPreferences("state", 0);

    mUtils = Utils.getInstance();
    mUtils.setService(this);

    acquireWakeLock();

    // Start detecting
    mStepDetector = new StepDetector();
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    registerDetector();

    // Register our receiver for the ACTION_SCREEN_OFF action. This will make our receiver
    // code be called whenever the phone enters standby mode.
    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
    registerReceiver(mReceiver, filter);

    mStepDisplayer = new StepDisplayer(mPedometerSettings, mUtils);
    mStepDisplayer.setSteps(mSteps = mState.getInt("steps", 0));
    mStepDisplayer.addListener(mStepListener);
    mStepDetector.addStepListener(mStepDisplayer);

    mPaceNotifier = new PaceNotifier(mPedometerSettings, mUtils);
    mPaceNotifier.setPace(mPace = mState.getInt("pace", 0));
    mPaceNotifier.addListener(mPaceListener);
    mStepDetector.addStepListener(mPaceNotifier);

    mDistanceNotifier = new DistanceNotifier(mDistanceListener, mPedometerSettings, mUtils);
    mDistanceNotifier.setDistance(mDistance = mState.getFloat("distance", 0));
    mStepDetector.addStepListener(mDistanceNotifier);

    mSpeedNotifier = new SpeedNotifier(mSpeedListener, mPedometerSettings, mUtils);
    mSpeedNotifier.setSpeed(mSpeed = mState.getFloat("speed", 0));
    mPaceNotifier.addListener(mSpeedNotifier);

    mCaloriesNotifier = new CaloriesNotifier(mCaloriesListener, mPedometerSettings, mUtils);
    mCaloriesNotifier.setCalories(mCalories = mState.getFloat("calories", 0));
    mStepDetector.addStepListener(mCaloriesNotifier);

    // Start voice
    reloadSettings();

    // Tell the user we started.
    // Toast.makeText(this, "we started pedometer service bruh", Toast.LENGTH_SHORT).show();
  }
Beispiel #2
0
  /** This is called every INTERVAL_MS ms from the TimerTask. */
  protected synchronized void updateData() {
    // Get current time for time stamps
    long now_ms = System.currentTimeMillis();

    st.onTimerElapsed(now_ms, detector.getLastAcc(), new double[] {lastComp});

    // Check if a step is detected upon data
    if (detector.checkForStep()) {
      // Call algorithm for navigation/updating position
      st.onStepDetected(now_ms, lastComp);
    }
  }
  public void reloadSettings() {
    mSettings = PreferenceManager.getDefaultSharedPreferences(this);

    if (mStepDetector != null) {
      mStepDetector.setSensitivity(Float.valueOf(mSettings.getString("sensitivity", "10")));
    }

    if (mStepDisplayer != null) mStepDisplayer.reloadSettings();
    if (mPaceNotifier != null) mPaceNotifier.reloadSettings();
    if (mDistanceNotifier != null) mDistanceNotifier.reloadSettings();
    if (mSpeedNotifier != null) mSpeedNotifier.reloadSettings();
    if (mCaloriesNotifier != null) mCaloriesNotifier.reloadSettings();
  }
Beispiel #4
0
        @Override
        public void onSensorChanged(SensorEvent event) {
          switch (event.sensor.getType()) {
            case Sensor.TYPE_ACCELEROMETER:
              st.onAccelerometerDataReceived(
                  System.currentTimeMillis(), event.values[0], event.values[1], event.values[2]);
              // just update the oldest z value
              detector.addSensorValues(System.currentTimeMillis(), event.values);
              break;

            default:
          } // switch (event.sensor.getType())
        }
Beispiel #5
0
 /**
  * @param stepTimeoutMs
  * @uml.property name="step_timeout_ms"
  */
 public void setStep_timeout_ms(int stepTimeoutMs) {
   detector.setStepTimeoutMS(200);
 }
Beispiel #6
0
 /**
  * @param peak
  * @uml.property name="peak"
  */
 public void setPeak(double peak) {
   detector.setPeak(peak);
 }
Beispiel #7
0
 /**
  * @param a
  * @uml.property name="a"
  */
 public void setA(double a) {
   detector.setA(a);
 }
Beispiel #8
0
 /**
  * @return
  * @uml.property name="step_timeout_ms"
  */
 public int getStep_timeout_ms() {
   return detector.getStepTimeoutMS();
 }
Beispiel #9
0
 /**
  * @return
  * @uml.property name="peak"
  */
 public double getPeak() {
   return detector.getPeak();
 }
Beispiel #10
0
 /**
  * @return
  * @uml.property name="a"
  */
 public double getA() {
   return detector.getA();
 }