Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
- @SuppressLint("SimpleDateFormat")
- public void setAlarm(int selectedHour, int selectedMinute)
- {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- boolean isCalendar = prefs.getBoolean("isCalendar", false);
- if(!isCalendar)
- return;
- String startDate = prefs.getString("StartDate", "");
- Date mstartDate = null;
- SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
- String strStartDate = startDate + " " + String.valueOf(selectedHour) + ":" + String.valueOf(selectedMinute) + ":00";
- try
- {
- mstartDate = dateFormat.parse(strStartDate);
- }
- catch (ParseException e)
- {
- e.printStackTrace();
- }
- assert mstartDate != null;
- Date oneWeek = new Date(mstartDate.getTime() - 604800000L); // startDate - egy het
- Date oneDay = new Date(mstartDate.getTime() - 86400000L); // startDate - egy nap
- Calendar calStart = Calendar.getInstance(Locale.getDefault());
- Calendar calOneWeek = Calendar.getInstance(Locale.getDefault());
- Calendar calOneDay = Calendar.getInstance(Locale.getDefault());
- calStart.setTime(mstartDate);
- calOneWeek.setTime(oneWeek);
- calOneDay.setTime(oneDay);
- if(before(Calendar.getInstance(Locale.getDefault()),calOneWeek))
- {
- Intent weekIntent = new Intent(this, AlarmReceiver.class);
- weekIntent.putExtra("Type", "Week");
- weekIntent.putExtra("Date", startDate);
- AlarmManager alarmManager1 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- alarmManager1.set(AlarmManager.RTC_WAKEUP, calOneWeek.getTimeInMillis(), PendingIntent.getBroadcast(this, 98, weekIntent, PendingIntent.FLAG_UPDATE_CURRENT));
- }
- if(before(Calendar.getInstance(Locale.getDefault()), calOneDay))
- {
- Intent dayIntent = new Intent(this, AlarmReceiver.class);
- dayIntent.putExtra("Type", "Day");
- dayIntent.putExtra("Date", startDate);
- AlarmManager alarmManager2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- alarmManager2.set(AlarmManager.RTC_WAKEUP, calOneDay.getTimeInMillis(), PendingIntent.getBroadcast(this, 99, dayIntent, PendingIntent.FLAG_UPDATE_CURRENT));
- }
- AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- ArrayList<PendingIntent> intentArray = new ArrayList<>();
- ArrayList<TrainingDay> trainingDays = loadTraining();
- for(int i = 0; i < trainingDays.size(); ++i)
- {
- Date dayDate = null;
- Intent intent = new Intent(this, AlarmReceiver.class);
- intent.putExtra("Type", "Dayly");
- Calendar cal = Calendar.getInstance(Locale.getDefault());
- String dayTime = trainingDays.get(i).getDate() + " " + String.valueOf(selectedHour) + ":" + String.valueOf(selectedMinute) + ":00";
- try
- {
- dayDate = dateFormat.parse(dayTime);
- }
- catch (ParseException e)
- {
- e.printStackTrace();
- }
- cal.setTime(dayDate);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(this, i, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- alarmManager.set(AlarmManager.RTC_WAKEUP,
- cal.getTimeInMillis(),
- pendingIntent);
- intentArray.add(pendingIntent);
- }
- isNotifActive = true;
- }
- És a Receiver:
- @Override
- public void onReceive(Context context, Intent intent)
- {
- String type = intent.getStringExtra("Type");
- String date = intent.getStringExtra("Date");
- switch (type)
- {
- case "Week":
- createNotification(context, "Women's Run", "Ihr Training startet am " + date + "!", "Alert");
- break;
- case "Day":
- createNotification(context, "Women's Run", "Morgen startet Ihr Trainingsplan!", "Alert");
- break;
- case "Dayly":
- createNotification(context, "Women's Run", "Heute steht ein Training an!", "Alert");
- break;
- }
- }
- public void createNotification(Context context, String msg, String msgText, String msgAlert)
- {
- PendingIntent notificIntent = PendingIntent.getActivity(context,0, new Intent(context, SplashActivity.class),0);
- NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
- .setSmallIcon(R.mipmap.ic_launcher)
- .setContentTitle(msg)
- .setTicker(msgAlert)
- .setContentText(msgText);
- builder.setContentIntent(notificIntent);
- builder.setDefaults(NotificationCompat.DEFAULT_SOUND);
- builder.setAutoCancel(true);
- NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
- notificationManager.notify(1, builder.build());
- }
Advertisement
Add Comment
Please, Sign In to add comment