public long checkDrugTakenTimeInterval(String time) { long interval = 0; /** Calculating the Interval* */ long today = new Date().getTime(); Date tdy = Calendar.getInstance().getTime(); tdy.setTime(today); DatabaseSQLiteHelper sqLite = new DatabaseSQLiteHelper(getActivity()); long takenDate = sqLite.getFirstTime(); if (time.compareTo("firstRunTime") == 0) { if (takenDate != 0) { Log.d(TAGADF, "First Run Time at ADF->" + takenDate); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(takenDate); cal.add(Calendar.MONTH, 1); Date start = cal.getTime(); int weekDay = cal.get(Calendar.DAY_OF_WEEK); if (SharedPreferenceStore.mPrefsStore.getBoolean("com.peacecorps.malaria.isWeekly", false)) interval = sqLite.getIntervalWeekly(start, tdy, weekDay); else interval = sqLite.getIntervalDaily(start, tdy); SharedPreferenceStore.mEditor.putLong("com.peacecorps.malaria." + time, takenDate).apply(); return interval; } else return 1; } else { takenDate = SharedPreferenceStore.mPrefsStore.getLong("com.peacecorps.malaria." + time, takenDate); long oneDay = 1000 * 60 * 60 * 24; interval = (today - takenDate) / oneDay; return interval; } }
public double computeAdherenceRate() { /** calculating Adherence Rate* */ long interval = checkDrugTakenTimeInterval("firstRunTime"); DatabaseSQLiteHelper sqLite = new DatabaseSQLiteHelper(getActivity()); long takenCount = sqLite.getCountTaken(); double adherenceRate = ((double) takenCount / (double) interval) * 100; Log.d(TAGADF, "adherence:" + adherenceRate); return adherenceRate; }
public void getSettings() { /** Setting the reminder according to setting* */ mDrugAcceptedCount = mSharedPreferenceStore.mPrefsStore.getInt("com.peacecorps.malaria.drugAcceptedCount", 0); mDrugRejectedCount = mSharedPreferenceStore.mPrefsStore.getInt("com.peacecorps.malaria.drugRejectedCount", 0); Calendar c = Calendar.getInstance(); int d = c.get(Calendar.DATE); int m = c.get(Calendar.MONTH); int y = c.get(Calendar.YEAR); DatabaseSQLiteHelper sqLite = new DatabaseSQLiteHelper(getActivity()); if (sqLite.getStatus(d, m, y).equalsIgnoreCase("yes") == true) { flag = 1; } else if (sqLite.getStatus(d, m, y).equalsIgnoreCase("no") == true) { flag = 2; } else flag = 0; }