package com.jadn.cc.services;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.net.wifi.WifiManager;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.util.Log;
/*
* Based on http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/
*/
public class AlarmHostService extends Service {
private PendingIntent alarm_sender;
@Override
public void onCreate() {
super.onCreate();
alarm_sender = PendingIntent.getService(AlarmHostService.this, 0, new Intent(AlarmHostService.this, AlarmService.class), 0);
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
//Set the alarm time
String time = app_preferences.getString("timeAutoDownload", "2:0");
GregorianCalendar currentCalendar = new GregorianCalendar();
long alarmTime = new GregorianCalendar(
currentCalendar.get(Calendar.YEAR),
currentCalendar.get(Calendar.MONTH),
currentCalendar.get(Calendar.DAY_OF_MONTH),
Integer.valueOf(time.split(":")[0]),
Integer.valueOf(time.split(":")[1])).getTime().getTime();
//Add a day if the hour has passed
if (alarmTime < currentCalendar.getTime().getTime())
alarmTime = alarmTime + AlarmManager.INTERVAL_DAY;
am.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime, AlarmManager.INTERVAL_DAY, alarm_sender);
Log.i("AlarmHostService", "set " + (new Date(alarmTime)));
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}