use of m.co.rh.id.a_medic_log.base.entity.MedicineReminder in project a-medic-log by rh-id.
the class MedicineReminderDetailPage method updateStartDateTime.
private void updateStartDateTime(Date date) {
MedicineReminder medicineReminder = mMedicineReminderSubject.getValue();
medicineReminder.startDateTime = date;
mMedicineReminderSubject.onNext(medicineReminder);
}
use of m.co.rh.id.a_medic_log.base.entity.MedicineReminder in project a-medic-log by rh-id.
the class MedicineDetailPage method confirmDeleteMedicineReminder.
private void confirmDeleteMedicineReminder(MedicineReminder medicineReminder) {
Context context = mSvProvider.getContext();
mRxDisposer.add("confirmDeleteMedicineReminder_deleteMedicineReminderCmd", mSvProvider.get(DeleteMedicineReminderCmd.class).execute(medicineReminder).observeOn(AndroidSchedulers.mainThread()).subscribe((note, throwable) -> {
String errorMessage = context.getString(R.string.error_failed_to_delete_medicine_reminder);
String successMessage = context.getString(R.string.success_deleting_medicine_reminder);
if (throwable != null) {
mSvProvider.get(ILogger.class).e(TAG, errorMessage, throwable);
} else {
mSvProvider.get(ILogger.class).i(TAG, successMessage);
}
}));
}
use of m.co.rh.id.a_medic_log.base.entity.MedicineReminder in project a-medic-log by rh-id.
the class MedicineDetailPage method onEnableSwitchClick.
@Override
public void onEnableSwitchClick(MedicineReminder medicineReminder) {
// save only if this is update medicine AND save flag enabled
if (isUpdate() && shouldSave()) {
Context context = mSvProvider.getContext();
UpdateMedicineReminderCmd updateMedicineReminderCmd = mSvProvider.get(UpdateMedicineReminderCmd.class);
if (updateMedicineReminderCmd.valid(medicineReminder)) {
mRxDisposer.add("onEnableSwitchClick_saveMedicineReminder", updateMedicineReminderCmd.execute(medicineReminder).observeOn(AndroidSchedulers.mainThread()).subscribe((medicineState, throwable) -> {
String errorMessage = context.getString(R.string.error_failed_to_update_medicine_reminder);
String successMessage = context.getString(R.string.success_updating_medicine_reminder);
if (throwable != null) {
mSvProvider.get(ILogger.class).e(TAG, errorMessage, throwable);
} else {
mSvProvider.get(ILogger.class).i(TAG, successMessage);
}
}));
} else {
String error = updateMedicineReminderCmd.getValidationError();
mSvProvider.get(ILogger.class).i(TAG, error);
}
mSvProvider.get(UpdateMedicineReminderCmd.class).execute(medicineReminder);
} else {
mMedicineReminderRecyclerViewAdapter.notifyItemUpdated(medicineReminder);
}
}
use of m.co.rh.id.a_medic_log.base.entity.MedicineReminder in project a-medic-log by rh-id.
the class NoteDaoTest method insertUpdateDelete_noteState.
@Test
public void insertUpdateDelete_noteState() {
NoteDao noteDao = mAppDatabase.noteDao();
MedicineDao medicineDao = mAppDatabase.medicineDao();
String noteContent = "test note";
String noteTagTag = "sample tag";
String medicineName = "test medicine name";
String medicineIntakeDesc = "test medicine intake";
String medicineReminderMessage = "test medicine reminder message";
NoteState noteState = new NoteState();
Note note = new Note();
note.content = noteContent;
noteState.updateNote(note);
NoteTag noteTag = new NoteTag();
noteTag.tag = noteTagTag;
noteState.updateNoteTagSet(Collections.singletonList(noteTag));
List<MedicineState> medicineStateList = new ArrayList<>();
MedicineState medicineState = new MedicineState();
Medicine medicine = new Medicine();
medicine.name = medicineName;
medicineState.updateMedicine(medicine);
MedicineReminder medicineReminder = new MedicineReminder();
medicineReminder.message = medicineReminderMessage;
medicineState.updateMedicineReminderList(Collections.singletonList(medicineReminder));
medicineStateList.add(medicineState);
noteState.updateMedicineStates(medicineStateList);
// INSERT NOTE
noteDao.insertNote(noteState);
assertEquals(1, noteDao.countNote());
assertEquals(1, noteDao.countNoteTag());
assertEquals(1, medicineDao.countMedicine());
assertEquals(1, medicineDao.countMedicineReminder());
assertEquals(0, medicineDao.countMedicineIntake());
Note noteFromInsert = noteDao.findNoteById(noteState.getNoteId());
assertEquals(noteContent, noteFromInsert.content);
List<NoteTag> noteTagListFromInsert = noteDao.findNoteTagsByNoteId(noteState.getNoteId());
assertEquals(1, noteTagListFromInsert.size());
assertEquals(noteTagTag, noteTagListFromInsert.get(0).tag);
List<Medicine> medicineListFromInsert = noteDao.findMedicinesByNoteId(noteState.getNoteId());
assertEquals(1, medicineListFromInsert.size());
assertEquals(medicineName, medicineListFromInsert.get(0).name);
List<MedicineReminder> medicineReminderListFromInsert = medicineDao.findMedicineRemindersByMedicineId(medicineListFromInsert.get(0).id);
assertEquals(1, medicineReminderListFromInsert.size());
assertEquals(medicineReminderMessage, medicineReminderListFromInsert.get(0).message);
// try insert medicine intake
MedicineIntake medicineIntake = new MedicineIntake();
medicineIntake.medicineId = medicineListFromInsert.get(0).id;
medicineIntake.description = medicineIntakeDesc;
medicineDao.insert(medicineIntake);
// after that update note
String noteContentUpdate = noteContent + " updated ";
noteState.getNote().content = noteContentUpdate;
// UPDATE NOTE
noteDao.updateNote(noteState);
assertEquals(1, noteDao.countNote());
assertEquals(1, noteDao.countNoteTag());
assertEquals(1, medicineDao.countMedicine());
assertEquals(1, medicineDao.countMedicineReminder());
assertEquals(1, medicineDao.countMedicineIntake());
Note noteFromUpdate = noteDao.findNoteById(noteState.getNoteId());
assertEquals(noteContentUpdate, noteFromUpdate.content);
List<NoteTag> noteTagListFromUpdate = noteDao.findNoteTagsByNoteId(noteState.getNoteId());
assertEquals(1, noteTagListFromUpdate.size());
assertEquals(noteTagTag, noteTagListFromUpdate.get(0).tag);
List<Medicine> medicineListFromUpdate = noteDao.findMedicinesByNoteId(noteState.getNoteId());
assertEquals(1, medicineListFromUpdate.size());
assertEquals(medicineName, medicineListFromUpdate.get(0).name);
List<MedicineReminder> medicineReminderListFromUpdate = medicineDao.findMedicineRemindersByMedicineId(medicineListFromUpdate.get(0).id);
assertEquals(1, medicineReminderListFromUpdate.size());
assertEquals(medicineReminderMessage, medicineReminderListFromUpdate.get(0).message);
// ensure medicine intake not deleted when updating note state
MedicineIntake updateNoteMedicineIntake = medicineDao.findLastMedicineIntake(medicineIntake.medicineId);
assertNotNull(updateNoteMedicineIntake);
assertEquals(medicineIntakeDesc, updateNoteMedicineIntake.description);
// DELETE NOTE
noteDao.deleteNote(noteState);
assertEquals(0, noteDao.countNote());
assertEquals(0, noteDao.countNoteTag());
assertEquals(0, medicineDao.countMedicine());
assertEquals(0, medicineDao.countMedicineReminder());
assertEquals(0, medicineDao.countMedicineIntake());
}
use of m.co.rh.id.a_medic_log.base.entity.MedicineReminder in project a-medic-log by rh-id.
the class MedicineDao method findMedicineStateByMedicineId.
@Transaction
public MedicineState findMedicineStateByMedicineId(long medicineId) {
MedicineState medicineState = new MedicineState();
Medicine medicine = findMedicineById(medicineId);
List<MedicineReminder> medicineReminders = findMedicineRemindersByMedicineId(medicineId);
medicineState.updateMedicine(medicine);
medicineState.updateMedicineReminderList(medicineReminders);
return medicineState;
}
Aggregations