Guest User

Untitled

a guest
Mar 22nd, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.35 KB | None | 0 0
  1. @SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
  2. @SuppressLint("SimpleDateFormat")
  3. public void setAlarm(int selectedHour, int selectedMinute)
  4. {
  5.     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
  6.     boolean isCalendar = prefs.getBoolean("isCalendar", false);
  7.     if(!isCalendar)
  8.         return;
  9.    
  10.     String startDate = prefs.getString("StartDate", "");
  11.  
  12.     Date mstartDate = null;
  13.     SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
  14.     String strStartDate = startDate + " " + String.valueOf(selectedHour) + ":" + String.valueOf(selectedMinute) + ":00";
  15.  
  16.     try
  17.     {
  18.         mstartDate = dateFormat.parse(strStartDate);
  19.     }
  20.     catch (ParseException e)
  21.     {
  22.         e.printStackTrace();
  23.     }
  24.  
  25.     assert mstartDate != null;
  26.  
  27.     Date oneWeek = new Date(mstartDate.getTime() - 604800000L); // startDate - egy het
  28.     Date oneDay = new Date(mstartDate.getTime() - 86400000L); // startDate - egy nap
  29.  
  30.     Calendar calStart = Calendar.getInstance(Locale.getDefault());
  31.     Calendar calOneWeek = Calendar.getInstance(Locale.getDefault());
  32.     Calendar calOneDay = Calendar.getInstance(Locale.getDefault());
  33.  
  34.     calStart.setTime(mstartDate);
  35.     calOneWeek.setTime(oneWeek);
  36.     calOneDay.setTime(oneDay);
  37.  
  38.     if(before(Calendar.getInstance(Locale.getDefault()),calOneWeek))
  39.     {
  40.         Intent weekIntent = new Intent(this, AlarmReceiver.class);
  41.         weekIntent.putExtra("Type", "Week");
  42.         weekIntent.putExtra("Date", startDate);
  43.         AlarmManager alarmManager1 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  44.         alarmManager1.set(AlarmManager.RTC_WAKEUP, calOneWeek.getTimeInMillis(), PendingIntent.getBroadcast(this, 98, weekIntent, PendingIntent.FLAG_UPDATE_CURRENT));
  45.     }
  46.     if(before(Calendar.getInstance(Locale.getDefault()), calOneDay))
  47.     {
  48.         Intent dayIntent = new Intent(this, AlarmReceiver.class);
  49.         dayIntent.putExtra("Type", "Day");
  50.         dayIntent.putExtra("Date", startDate);
  51.         AlarmManager alarmManager2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  52.         alarmManager2.set(AlarmManager.RTC_WAKEUP, calOneDay.getTimeInMillis(), PendingIntent.getBroadcast(this, 99, dayIntent, PendingIntent.FLAG_UPDATE_CURRENT));
  53.     }
  54.  
  55.     AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
  56.     ArrayList<PendingIntent> intentArray = new ArrayList<>();
  57.  
  58.     ArrayList<TrainingDay> trainingDays = loadTraining();
  59.  
  60.     for(int i = 0; i < trainingDays.size(); ++i)
  61.     {
  62.         Date dayDate = null;
  63.         Intent intent = new Intent(this, AlarmReceiver.class);
  64.         intent.putExtra("Type", "Dayly");
  65.  
  66.         Calendar cal = Calendar.getInstance(Locale.getDefault());
  67.         String dayTime = trainingDays.get(i).getDate() + " " + String.valueOf(selectedHour) + ":" + String.valueOf(selectedMinute) + ":00";
  68.         try
  69.         {
  70.             dayDate = dateFormat.parse(dayTime);
  71.         }
  72.         catch (ParseException e)
  73.         {
  74.             e.printStackTrace();
  75.         }
  76.  
  77.         cal.setTime(dayDate);
  78.  
  79.         PendingIntent pendingIntent = PendingIntent.getBroadcast(this, i, intent, PendingIntent.FLAG_UPDATE_CURRENT);
  80.  
  81.         alarmManager.set(AlarmManager.RTC_WAKEUP,
  82.             cal.getTimeInMillis(),
  83.             pendingIntent);
  84.  
  85.         intentArray.add(pendingIntent);
  86.     }
  87.  
  88.     isNotifActive = true;
  89. }
  90.  
  91. És a Receiver:
  92.  
  93. @Override
  94. public void onReceive(Context context, Intent intent)
  95. {
  96.     String type = intent.getStringExtra("Type");
  97.     String date = intent.getStringExtra("Date");
  98.     switch (type)
  99.     {
  100.     case "Week":
  101.         createNotification(context, "Women's Run", "Ihr Training startet am " + date + "!", "Alert");
  102.         break;
  103.     case "Day":
  104.         createNotification(context, "Women's Run", "Morgen startet Ihr Trainingsplan!", "Alert");
  105.         break;
  106.     case "Dayly":
  107.         createNotification(context, "Women's Run", "Heute steht ein Training an!", "Alert");
  108.         break;
  109.     }
  110. }
  111.  
  112. public void createNotification(Context context, String msg, String msgText, String msgAlert)
  113. {
  114.     PendingIntent notificIntent = PendingIntent.getActivity(context,0, new Intent(context, SplashActivity.class),0);
  115.     NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
  116.         .setSmallIcon(R.mipmap.ic_launcher)
  117.         .setContentTitle(msg)
  118.         .setTicker(msgAlert)
  119.         .setContentText(msgText);
  120.  
  121.  
  122.     builder.setContentIntent(notificIntent);
  123.     builder.setDefaults(NotificationCompat.DEFAULT_SOUND);
  124.     builder.setAutoCancel(true);
  125.  
  126.     NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
  127.     notificationManager.notify(1, builder.build());
  128. }
Advertisement
Add Comment
Please, Sign In to add comment