Android Open Source - Rejsekort-Reminder Metro Mode






From Project

Back to project page Rejsekort-Reminder.

License

The source code is released under:

GNU General Public License

If you think the Android project Rejsekort-Reminder listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.example.publictransportation.modes;
// w w w  .j  a  va 2  s .  co  m
import android.content.res.Resources;

import com.example.publictransportation.R;
import com.example.publictransportation.profiles.AbstractProfile;
import com.example.publictransportation.sensors.AbstractSensor;
import com.example.publictransportation.sensors.ActivitySensor;
import com.example.publictransportation.sensors.CellSensor;
import com.example.publictransportation.sensors.SensorTypes;
import com.example.publictransportation.service.IModeManager;

  
public class MetroMode extends AbstractMode {
  
  Boolean underground;
  Boolean leavingMetro;
  
  final static String METRO_TUNNEL = "METRO_TUNNEL";
  
  public MetroMode(AbstractProfile profile, IModeManager manager) {
    super(profile, manager, "");
    
    // assumed per default when starting this mode
    underground = true;
    leavingMetro = false;
    
    // accessing the external resources to get list of cells
    Resources r = manager.getApplicationContext().getResources();
    int[] metroUndergroundCells = r.getIntArray(R.array.metro_underground_cells);
    int[] metroUndergroundCellsIgnore = r.getIntArray(R.array.metro_underground_cells_ignore);
    
    AbstractSensor metroCellSensor = new CellSensor(this, metroUndergroundCells, metroUndergroundCellsIgnore, METRO_TUNNEL);
    AbstractSensor activitySensor = new ActivitySensor(this, profile.getActivitySensorDelay(), profile.getDefaultActivitySensorCutoff());
    
    addSensor(metroCellSensor);
    addSensor(activitySensor);
  }

  @Override
  public void input(AbstractSensor sensor, String data) {
    if (sensor.getType() == SensorTypes.CELL) {
      underground = data.equals(CellSensor.NOTHING_FOUND)? false : true;
    }
    else if (sensor.getType() == SensorTypes.ACTIVITY && data.equals(ActivitySensor.ON_FOOT)) {
      if (!underground) {
        leavingMetro = true;
      }
    }
    
    // input() should always end with a call to evaluate()
    evaluate();
  }

  @Override
  protected void evaluate() {
    if (leavingMetro) {
      changeMode(ModeTypes.MOVING, "");
    }
  }

  @Override
  public ModeTypes getType() {
    return ModeTypes.METRO;
  }

}




Java Source Code List

com.example.publictransportation.MainActivity.java
com.example.publictransportation.WidgetProvider.java
com.example.publictransportation.modes.AbstractMode.java
com.example.publictransportation.modes.ActivityResults.java
com.example.publictransportation.modes.BusMode.java
com.example.publictransportation.modes.DefaultMode.java
com.example.publictransportation.modes.ForcedMode.java
com.example.publictransportation.modes.MetroMode.java
com.example.publictransportation.modes.ModeTypes.java
com.example.publictransportation.modes.MovingMode.java
com.example.publictransportation.modes.STrainMode.java
com.example.publictransportation.modes.WaitingMode.java
com.example.publictransportation.profiles.AbstractProfile.java
com.example.publictransportation.profiles.DefaultProfile.java
com.example.publictransportation.sensors.AbstractSensor.java
com.example.publictransportation.sensors.ActivitySensorIntentService.java
com.example.publictransportation.sensors.ActivitySensor.java
com.example.publictransportation.sensors.CellSensor.java
com.example.publictransportation.sensors.SensorTypes.java
com.example.publictransportation.sensors.TimeSensor.java
com.example.publictransportation.sensors.WifiGroup.java
com.example.publictransportation.sensors.WifiSensor.java
com.example.publictransportation.service.IModeManager.java
com.example.publictransportation.service.LogItem.java
com.example.publictransportation.service.LogTypes.java
com.example.publictransportation.service.Logger.java
com.example.publictransportation.service.TrackerService.java