@Override
  public void onReceive(Context context, Intent intent) {
    // Acquire wake-lock.
    WakeLocker.acquire(context);

    this.context = context;

    // Fetch extras.
    Bundle extras = intent.getExtras();
    final int alarmId = new AlarmIntentHelper(intent).getAlarmId();

    if (!this.isRequirementsMet(alarmId)) {
      return;
    }

    // Fetching alarm
    this.alarm = SFApplication.get().getPersister().fetchAlarmById(alarmId);

    // Start the alarm, this will wake the screen up!
    this.startAlarm(extras);

    if (alarm.isSpeech()) {
      startSpeech();
    }
  }