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; }
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; }