package com.manning.aip.portfolio;

import java.util.Calendar;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

/**
 * Odbiornik <code>BroadcastReceiver</code> powiadamiany o rozruchu urządzenia.
 * Używa klasy {@link http://developer.android.com/reference/android/app/AlarmManager.html AlarmManager}
 * do planowania regularnych wywołań usługi 
 * {@link com.manning.aip.portfolio.PorfolioManagerService PortfolioManagerService}.
 * 
 * Kod można łatwo zmodyfikować, aby używał usługi Cloud to Device Messaging. Szczegóły znajdziesz
 * w komentarzach.
 * 
 * @author Michael Galpin
 *
 */
public class PortfolioStartupReceiver extends BroadcastReceiver {
	private static final int FIFTEEN_MINUTES = 15*60*1000;

	// Usuń komentarz pod stałą, aby użyć usługi C2DM. W puste pole wstaw adres e-mail 
	// używany do przesyłania aplikacji do sklepu Android Market.
	//private static final String DEVELOPER_EMAIL_ADDRESS = "";
	
	@Override
	public void onReceive(Context context, Intent intent) {
		
		// Początek kodu opartego na klasie AlarmManager. Usuń ten kod, aby użyć usługi C2DM.
		AlarmManager mgr = 
			(AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
		Intent i = new Intent(context, AlarmReceiver.class);
		PendingIntent sender = PendingIntent.getBroadcast(context, 0, 
				i, PendingIntent.FLAG_CANCEL_CURRENT);
		Calendar now = Calendar.getInstance();
		now.add(Calendar.MINUTE, 2);
		mgr.setRepeating(AlarmManager.RTC_WAKEUP, 
				now.getTimeInMillis(), FIFTEEN_MINUTES, sender);
		// Koniec kodu opartego na klasie AlarmManager.
		
		// Usuń komentarze, aby użyć usługi C2DM.
//		Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
//		registrationIntent.putExtra("app", PendingIntent.getBroadcast(context, 0, new Intent(), 0));
//		registrationIntent.putExtra("sender", DEVELOPER_EMAIL_ADDRESS);
//		context.startService(registrationIntent);
	}
}