コード例 #1
0
  // this method is meant to be called just by AlarmReceiver class!
  public static void registerNextReminder(int currentVocabularyId, boolean doesTriggersNext) {
    Vocabulary current = Vocabularies.select(currentVocabularyId);
    if (current == null) {
      // exception occurred.
      return;
    }

    current.setLearned(true);
    Vocabularies.update(current);

    if (!doesTriggersNext) {
      return;
    }

    ReminderSettings settings = ReminderManager.getReminderSettings();

    Vocabulary next = Vocabularies.next(currentVocabularyId);
    if (next == null) {
      settings.setStatus(ReminderSettings.Status.FINISHED);
      settings.setReminder(null);
      ReminderManager.applyReminderSettings(settings);
      return;
    }

    Reminder reminder =
        new Reminder(next.getId(), null, next.getVocabulary(), next.getVocabEnglishDef(), true);
    int todaySentWords = getTodaySentWords();
    if (todaySentWords < settings.getWordsPerDay()) {
      Calendar calendar = Calendar.getInstance();
      calendar.add(Calendar.MINUTE, settings.getIntervals());

      reminder.setTime(calendar.getTime());
      settings.setReminder(reminder);
      addAlarm(reminder);

      applyReminderSettings(settings);
    } else {
      settings.setReminder(reminder);
      applyReminderSettings(settings);
      start(false);
    }
  }