Android Open Source - Rejsekort-Reminder Abstract Mode

From Project

Back to project page Rejsekort-Reminder.


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;
/*  ww w . j  a v a  2s.  c o m*/
import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.widget.Toast;

import com.example.publictransportation.profiles.AbstractProfile;
import com.example.publictransportation.sensors.AbstractSensor;
import com.example.publictransportation.sensors.ActivitySensor;
import com.example.publictransportation.sensors.SensorTypes;
import com.example.publictransportation.sensors.WifiSensor;
import com.example.publictransportation.service.IModeManager;
import com.example.publictransportation.service.LogTypes;

public abstract class AbstractMode {

  protected IModeManager manager;
  protected AbstractProfile profile;
  protected List<AbstractSensor> sensors;
  final String BUS = "BUS";
  final String TRAIN = "TRAIN";
  protected String latestMacAddress; // Contains the MAC address to be passed to other modes

  public AbstractMode(AbstractProfile profile, IModeManager manager, String latestMacAddress) {
    this.profile = profile;
    this.manager = manager;
    this.latestMacAddress = latestMacAddress;
    sensors = new ArrayList<AbstractSensor>();
  public Boolean isForced() {
    return false;

  protected void changeMode(ModeTypes newMode, String latestMacAddress) {
    manager.changeMode(newMode, latestMacAddress);

  // called by a child sensor
  abstract public void input(AbstractSensor sensor, String data);

  // where all transportation mode changing decisions are made
  // should be called every time input() is called
  abstract protected void evaluate();

  // called by the parent activity
  public void kill() {

  // needed for the Activity to ID the mode
  abstract public ModeTypes getType();

  // needed to give sensors access to system services (e.g. TelephonyManager)
  public Context getContext() {
    return manager.getApplicationContext();

  protected void addSensor(AbstractSensor sensor) {

  // called upon getting a kill signal
  protected void killAllSensors() {
    for (AbstractSensor sensor : sensors) {

  public void log(SensorTypes type, String label, String data) {
    manager.log(LogTypes.SENSOR, String.valueOf(type) + " (" + label + "): " + data);

Java Source Code List