Newer
Older

Peter Joseph De Jonckheere CESM2014
committed
package com.example.stimulus;

Peter Joseph De Jonckheere CESM2014
committed
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

Peter Joseph De Jonckheere CESM2014
committed
import com.example.stimulusStrategy.StimulusStrategy;
/**
* Created by pharmacy on 09/01/2018.
*/

Peter Joseph De Jonckheere CESM2014
committed
class SedentaryStimulus extends BroadcastReceiver implements Stimulus {

Peter Joseph De Jonckheere CESM2014
committed
private StimulusStrategy strategy;

Peter Joseph De Jonckheere CESM2014
committed
private Context context;

Peter Joseph De Jonckheere CESM2014
committed

Peter Joseph De Jonckheere CESM2014
committed
public SedentaryStimulus(Context context){
this.context = context;

Peter Joseph De Jonckheere CESM2014
committed
chooseStrategy(null);
}

Peter Joseph De Jonckheere CESM2014
committed
public SedentaryStimulus(Context context, StimulusStrategy s){
this.context = context;

Peter Joseph De Jonckheere CESM2014
committed
chooseStrategy(s);
}
public void chooseStrategy(StimulusStrategy s) {
if(s != null){
strategy = s;
} else{

Peter Joseph De Jonckheere CESM2014
committed
strategy = defaultStrategy;

Peter Joseph De Jonckheere CESM2014
committed
//can no longer have default strategy in interface as strategies require context

Peter Joseph De Jonckheere CESM2014
committed
}

Peter Joseph De Jonckheere CESM2014
committed
strategy.monitor();

Peter Joseph De Jonckheere CESM2014
committed
Intent intent = new Intent(this.context, strategy.getClass());
this.context.startService(intent);

Peter Joseph De Jonckheere CESM2014
committed
}

Peter Joseph De Jonckheere CESM2014
committed

Peter Joseph De Jonckheere CESM2014
committed
@Override

Peter Joseph De Jonckheere CESM2014
committed
public void onReceive(Context context, Intent intent) {

Peter Joseph De Jonckheere CESM2014
committed
//If a condition - such as time elapsed since last notification or not night time

Peter Joseph De Jonckheere CESM2014
committed
//Intent data used here to configure notification?? Intent would need to be configured properly for this.

Peter Joseph De Jonckheere CESM2014
committed
context.startService(intent);

Peter Joseph De Jonckheere CESM2014
committed
//Restarts the chosen strategy process.
chooseStrategy(strategy);

Peter Joseph De Jonckheere CESM2014
committed

Peter Joseph De Jonckheere CESM2014
committed
}

Peter Joseph De Jonckheere CESM2014
committed