У меня есть приложение для молитв. Которая рассылает уведомления в разное время суток 5 раз. Я хочу, чтобы пользователь мог отключить или отключить одно или несколько уведомлений (тревог), которые он хочет получать. Как я могу этого добиться?
Это код для моего текущего AlarmManager:
public void alarmWork() {
for (int j = 0; j < 10; j++) {
//Database to get the times
zz = notiHandler.loadHandler1(getDate1(j)).get(0);
x.clear();
//x is the arrayList
x.add(zz.getBayani()); //different time of day etc. (03:15)
x.add(zz.getNiwaro());
x.add(zz.getAsr());
x.add(zz.getShewan());
x.add(zz.getXewtnan());
for (int i = 0; i < 5; i++) {
if (i <= 1) {
//To differentiate the hour and minute
Bh = Integer.parseInt(x.get(i).substring(0, 2));
Bm = Integer.parseInt(x.get(i).substring(3));
} else {
Bh = Integer.parseInt(x.get(i).substring(0, 2)) + 12;
Bm = Integer.parseInt(x.get(i).substring(3));
}
Log.d("hev", "hev" + x.get(i));
Calendar wakeupcall = Calendar.getInstance();
wakeupcall.setTimeInMillis(System.currentTimeMillis());
SimpleDateFormat datte = new SimpleDateFormat("yyyy", Locale.US);
d = new Date();
int xy = Integer.parseInt(datte.format(d));
String cv = getDate1(j);
BM = Integer.parseInt(cv.substring(0, 2));
BD = Integer.parseInt(cv.substring(3));
int day = wakeupcall.get(Calendar.DAY_OF_YEAR)+j;
wakeupcall.set(Calendar.YEAR, xy);
wakeupcall.set(Calendar.MONTH, BM);
wakeupcall.set(Calendar.DAY_OF_MONTH, BD);
wakeupcall.set(Calendar.HOUR_OF_DAY, Bh);
wakeupcall.set(Calendar.DAY_OF_YEAR, day);
wakeupcall.set(Calendar.MINUTE, Bm);
wakeupcall.set(Calendar.SECOND, 0);
wakeupcall.set(Calendar.MILLISECOND, 0);
Intent intenter = new Intent(getContext(), AlarmReceiver.class);
intenter.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext(), min, intenter, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) Objects.requireNonNull(Objects.requireNonNull(getActivity()).getSystemService(Context.ALARM_SERVICE));
if (Calendar.getInstance().before(wakeupcall)) {
am.setExact(AlarmManager.RTC_WAKEUP, wakeupcall.getTimeInMillis(), pendingIntent);
} else {
am.cancel(pendingIntent);
}
min = min + 1;
}
}
}
Заранее спасибо.