package edu.fsu.cs.contextprovider.wakeup;
import edu.fsu.cs.contextprovider.data.ContextConstants;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.util.Log;
public class WakefulServiceReceiver extends BroadcastReceiver {
private static final String TAG = "WakefulServiceReceiver";
private static final boolean DEBUG = true;
private boolean startupEnabled;
private boolean accuracyPopupEnabled;
private String accuracyPopupPeriod;
private int period; // = 30; // 300000; // 5 minutes
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences prefs = context.getSharedPreferences(ContextConstants.CONTEXT_PREFS, 0);
// SharedPreferences prefs =
// PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
startupEnabled = prefs.getBoolean(ContextConstants.PREFS_STARTUP_ENABLED, true);
accuracyPopupEnabled = prefs.getBoolean(ContextConstants.PREFS_ACCURACY_POPUP_ENABLED, true);
// accuracyPopupPeriod =
// prefs.getInt(ContextConstants.PREFS_ACCURACY_POPUP_FREQ, 30);
accuracyPopupPeriod = prefs.getString(ContextConstants.PREFS_ACCURACY_POPUP_FREQ, "30");
period = Integer.parseInt(accuracyPopupPeriod);
if (DEBUG) {
Log.d(TAG, "accuracyPopupEnabled: " + accuracyPopupEnabled + " accuracyPopupPeriod: " + accuracyPopupPeriod + " period: " + period);
}
if (startupEnabled) {
context.startService(new Intent(context, edu.fsu.cs.contextprovider.ContextService.class));
}
if (accuracyPopupEnabled) {
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, edu.fsu.cs.contextprovider.wakeup.WakeupAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 10000, period * 1000, pi);
}
}
}