Пользователь может редактировать, какой будильник принимать android студия - PullRequest
0 голосов
/ 06 мая 2020

У меня есть приложение для молитв. Которая рассылает уведомления в разное время суток 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;


            }
        }

    }

Заранее спасибо.

...