예제 #1
0
  public Cron getCron(int id) {
    Cursor cursor = null;
    Cron cron = null;
    try {
      cursor = getReadableDatabase().query(Cron.NAME, null, "id=" + id, null, null, null, null);
      if (cursor.getCount() > 0) {
        cursor.moveToFirst();
        cron =
            new Cron(
                cursor.getInt(1),
                cursor.getInt(2),
                cursor.getInt(3),
                cursor.getInt(4),
                cursor.getInt(5),
                cursor.getInt(6));
        cron.setId(cursor.getInt(0));
      }
    } finally {
      if (cursor != null) {
        cursor.close();
      }
    }

    return cron;
  }
예제 #2
0
 public long addOrUpdateCron(Cron cron) {
   ContentValues content = new ContentValues();
   content.put("hourOff", cron.getHourOff());
   content.put("minOff", cron.getMinOff());
   content.put("hourOn", cron.getHourOn());
   content.put("minOn", cron.getMinOn());
   content.put("mask", cron.getMask());
   content.put("status", cron.getStatus());
   return addOrUpdate(cron.getId(), Cron.NAME, content);
 }
예제 #3
0
  public List<Cron> getCrons() {
    List<Cron> list = new ArrayList<>();
    Cursor cursor = null;
    try {
      cursor = getReadableDatabase().query(Cron.NAME, null, null, null, null, null, null);
      if (cursor.getCount() > 0) {
        cursor.moveToFirst();
        do {
          Cron cron =
              new Cron(
                  cursor.getInt(1),
                  cursor.getInt(2),
                  cursor.getInt(3),
                  cursor.getInt(4),
                  cursor.getInt(5),
                  cursor.getInt(6));
          cron.setId(cursor.getInt(0));
          list.add(cron);
        } while (cursor.moveToNext());
      }
    } finally {
      if (cursor != null) {
        cursor.close();
      }
    }

    Collections.sort(
        list,
        new Comparator<Cron>() {
          @Override
          public int compare(Cron lhs, Cron rhs) {
            int diffOff =
                60 * (lhs.getHourOff() - rhs.getHourOff()) + (lhs.getMinOff() - rhs.getMinOff());
            int diffOn =
                60 * (lhs.getHourOn() - rhs.getHourOn()) + (lhs.getMinOn() - rhs.getMinOn());
            return diffOff > 0 ? diffOff : diffOn;
          }
        });
    return list;
  }