// overloaded to take a reminder
 public long createReminder(Reminder reminder) {
   ContentValues values = new ContentValues();
   values.put(COL_CONTENT, reminder.getContent()); // Contact Name
   values.put(COL_IMPORTANT, reminder.getImportant()); // Contact Phone Number
   // Inserting Row
   return mDb.insert(TABLE_NAME, null, values);
 }
  // Getting all Reminders
  public List<Reminder> getAllReminders() {
    List<Reminder> reminderList = new ArrayList<>();

    // Select all Query
    String selectQuery = "SELECT * FROM " + TABLE_REMINDERS;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // Looping through all rows and adding to list
    if (cursor.moveToFirst()) {
      do {
        Reminder reminder = new Reminder();
        reminder.setID(Integer.parseInt(cursor.getString(0)));
        reminder.setTitle(cursor.getString(1));
        reminder.setDate(cursor.getString(2));
        reminder.setTime(cursor.getString(3));
        reminder.setRepeat(cursor.getString(4));
        reminder.setRepeatNo(cursor.getString(5));
        reminder.setRepeatType(cursor.getString(6));
        reminder.setActive(cursor.getString(7));

        // Adding Reminders to list
        reminderList.add(reminder);
      } while (cursor.moveToNext());
    }
    return reminderList;
  }
 public ContentValues generateValuesReminder(Reminder reminder) {
   ContentValues values = new ContentValues();
   values.put(Reminder.ReminderEntry.COLUMN_TITLE, reminder.getTitle());
   values.put(Reminder.ReminderEntry.COLUMN_NOTES, reminder.getNotes());
   values.put(Reminder.ReminderEntry.COLUMN_DATE, reminder.getDateToString());
   values.put(Reminder.ReminderEntry.COLUMN_DAYS_AFTER, reminder.getDaysAfter());
   values.put(Reminder.ReminderEntry.COLUMN_HOUR_RANGE, reminder.getHourRange());
   values.put(Reminder.ReminderEntry.COLUMN_ESTADO, reminder.getState().toString());
   if (reminder.getPhotoPath() != "") {
     values.put(Reminder.ReminderEntry.COLUMN_PHOTO_PATH, reminder.getPhotoPath());
   } else {
     values.putNull(Reminder.ReminderEntry.COLUMN_PHOTO_PATH);
   }
   if (reminder.getVoiceNotePath() != "") {
     values.put(Reminder.ReminderEntry.COLUMN_VOICE_NOTE_PATH, reminder.getVoiceNotePath());
   } else {
     values.putNull(Reminder.ReminderEntry.COLUMN_VOICE_NOTE_PATH);
   }
   return values;
 }
 public ArrayList<Reminder> getActiveReminders() {
   ArrayList<Reminder> reminders = new ArrayList<Reminder>();
   try {
     SQLiteDatabase dataBase = dbHelper.getReadableDatabase();
     Cursor cursor =
         dataBase.query(Reminder.ReminderEntry.TABLE_NAME, null, null, null, null, null, null);
     if (cursor.moveToFirst()) {
       while (cursor.isAfterLast() == false) {
         Reminder reminder = new Reminder();
         String date = cursor.getString(Reminder.ReminderEntry.INDEX_DATE);
         GregorianCalendar gregorianCalendar = DateUtils.parserStringDate(date);
         reminder.setDate(gregorianCalendar);
         GregorianCalendar currentDate = new GregorianCalendar();
         String state = cursor.getString(Reminder.ReminderEntry.INDEX_ESTADO);
         /*if(state.compareTo("RESOLVED") == 0 ||state.compareTo("resolved") == 0){
             continue;
         }*/
         if (gregorianCalendar.compareTo(currentDate) == 1) {
           reminder.setIdReminder(cursor.getInt(Reminder.ReminderEntry.INDEX_ENTRY_ID));
           reminder.setTitle(cursor.getString(Reminder.ReminderEntry.INDEX_TITLE));
           reminder.setNotes(cursor.getString(Reminder.ReminderEntry.INDEX_NOTES));
           reminder.setDaysAfter(cursor.getInt(Reminder.ReminderEntry.INDEX_DAYS_AFTER));
           reminder.setHourRange(cursor.getInt(Reminder.ReminderEntry.INDEX_HOUR_RANGE));
           String photoPath = cursor.getString(Reminder.ReminderEntry.INDEX_PHOTO_PATH);
           String voiceNotePath = cursor.getString(Reminder.ReminderEntry.INDEX_VOICE_NOTE_PATH);
           reminder.setPhotoPath(photoPath);
           reminder.setVoiceNotePath(voiceNotePath);
           reminder.defineDatesOfNotifications();
           reminders.add(reminder);
         }
         cursor.moveToNext();
       }
     }
   } catch (Exception e) {
     e.printStackTrace();
   }
   Collections.sort(reminders);
   // Collections.reverse(reminders);
   return reminders;
 }
  // Updating single Reminder
  public int updateReminder(Reminder reminder) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(KEY_TITLE, reminder.getTitle());
    values.put(KEY_DATE, reminder.getDate());
    values.put(KEY_TIME, reminder.getTime());
    values.put(KEY_REPEAT, reminder.getRepeat());
    values.put(KEY_REPEAT_NO, reminder.getRepeatNo());
    values.put(KEY_REPEAT_TYPE, reminder.getRepeatType());
    values.put(KEY_ACTIVE, reminder.getActive());

    // Updating row
    return db.update(
        TABLE_REMINDERS, values, KEY_ID + "=?", new String[] {String.valueOf(reminder.getID())});
  }
  // Adding new Reminder
  public int addReminder(Reminder reminder) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();

    values.put(KEY_TITLE, reminder.getTitle());
    values.put(KEY_DATE, reminder.getDate());
    values.put(KEY_TIME, reminder.getTime());
    values.put(KEY_REPEAT, reminder.getRepeat());
    values.put(KEY_REPEAT_NO, reminder.getRepeatNo());
    values.put(KEY_REPEAT_TYPE, reminder.getRepeatType());
    values.put(KEY_ACTIVE, reminder.getActive());

    // Inserting Row
    long ID = db.insert(TABLE_REMINDERS, null, values);
    db.close();
    return (int) ID;
  }
 // Deleting single Reminder
 public void deleteReminder(Reminder reminder) {
   SQLiteDatabase db = this.getWritableDatabase();
   db.delete(TABLE_REMINDERS, KEY_ID + "=?", new String[] {String.valueOf(reminder.getID())});
   db.close();
 }
  public void setReminder(Reminder newReminder) {
    reminder = newReminder;
    reminderText.setText(reminder.getReminderText());

    requestLayout();
  }
 // UPDATE
 public void updateReminder(Reminder reminder) {
   ContentValues values = new ContentValues();
   values.put(COL_CONTENT, reminder.getContent());
   values.put(COL_IMPORTANT, reminder.getImportant());
   mDb.update(TABLE_NAME, values, COL_ID + "=?", new String[] {String.valueOf(reminder.getId())});
 }