package com.lemenzo.clock.alarm;
import android.content.*;import com.lemenzo.clock.model.Alarm;
public final class AlarmReceiver extends BroadcastReceiver{
 @Override public void onReceive(Context c,Intent i){if(i==null)return;long id=i.getLongExtra(AlarmIntentActions.EXTRA_ID,-1);if(id<0)return;String action=i.getAction();AlarmRepository r=new AlarmRepository(c);Alarm alarm=r.get(id);
  if(AlarmIntentActions.FIRE.equals(action)){if(alarm==null)return;AlarmScheduler.clearConsumedSkip(alarm,System.currentTimeMillis());if(alarm.repeatDays.isEmpty()){alarm.enabled=false;r.save(alarm);}else{r.save(alarm);new AlarmScheduler(c).schedule(alarm);}Intent s=new Intent(c,AlarmService.class).setAction(AlarmIntentActions.FIRE).putExtra(AlarmIntentActions.EXTRA_ID,id);c.startForegroundService(s);}
  else if(AlarmIntentActions.SNOOZE.equals(action)){c.startService(new Intent(c,AlarmService.class).setAction(AlarmService.ACTION_REMOVE).putExtra(AlarmIntentActions.EXTRA_ID,id));if(alarm!=null)AlarmManagerHelper.snooze(c,alarm);}
  else if(AlarmIntentActions.DISMISS.equals(action)){c.startService(new Intent(c,AlarmService.class).setAction(AlarmService.ACTION_REMOVE).putExtra(AlarmIntentActions.EXTRA_ID,id));if(alarm!=null&&alarm.deleteAfterDismiss&&!alarm.enabled)r.delete(id);}
 }
}