package net.bradmont.openmpd;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import java.util.Calendar;
import java.util.GregorianCalendar;
import net.bradmont.openmpd.*;
import net.bradmont.openmpd.models.ServiceAccount;
import net.bradmont.openmpd.controllers.TntImportService;
import net.bradmont.supergreen.models.ModelList;
/**
* Handles the device boot system broadcast, and schedules data updates
*/
public class OnBootScheduler extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Log.d("net.bradmont.openmpd", "received boot broadcast");
MPDDBHelper helper = MPDDBHelper.get();
// set up our alarms for automatic background updating
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar cal = new GregorianCalendar();
ModelList accounts = helper.getReferenceModel("service_account").getAll();
if (accounts.size() == 0){
Log.d("net.bradmont.openmpd", "no accounts, not setting alarm");
return;
}
int [] account_ids = new int [accounts.size()];
for (int i = 0; i < accounts.size(); i++){
account_ids[i] = accounts.get(i).getID();
}
alarmManager.setInexactRepeating(AlarmManager.RTC, cal.getTimeInMillis(), AlarmManager.INTERVAL_HOUR,
//alarmManager.setInexactRepeating(AlarmManager.RTC, cal.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES,
PendingIntent.getService(context, 0, new Intent(context, TntImportService.class).putExtra("net.bradmont.openmpd.account_ids", account_ids),
PendingIntent.FLAG_UPDATE_CURRENT)
);
Log.d("net.bradmont.openmpd", "alarmmanager set");
}
}