Dwitio

MovieReleaseTodayReminder.java

Sep 26th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. package tgs.app.submission4aplikasilocalstorage.notification;
  2.  
  3. import android.app.AlarmManager;
  4. import android.app.Notification;
  5. import android.app.NotificationChannel;
  6. import android.app.NotificationManager;
  7. import android.app.PendingIntent;
  8. import android.content.BroadcastReceiver;
  9. import android.content.Context;
  10. import android.content.Intent;
  11. import android.graphics.BitmapFactory;
  12. import android.os.Build;
  13. import android.util.Log;
  14.  
  15. import androidx.core.app.NotificationCompat;
  16.  
  17. import java.util.ArrayList;
  18. import java.util.Calendar;
  19. import java.util.List;
  20.  
  21. import tgs.app.submission4aplikasilocalstorage.R;
  22. import tgs.app.submission4aplikasilocalstorage.entity.Movie;
  23.  
  24. public class MovieReleaseTodayReminder extends BroadcastReceiver {
  25. private static int notifId;
  26. private static final String NOTIF_ID = "notif_Id";
  27.  
  28. // String id;
  29. // String id_movie;
  30. String title_movie;
  31. // String release_movie;
  32. // String score_movie;
  33. // String overview_movie;
  34. // String image;
  35.  
  36. private static final String CHANNEL_ID = "channel_02";
  37. private static final String CHANNEL_NAME = "release today reminder";
  38.  
  39. @Override
  40. public void onReceive(Context context, Intent intent) {
  41. String movie_title = intent.getStringExtra(title_movie);
  42. notifId = intent.getIntExtra(NOTIF_ID, 0);
  43. Log.e("JudulReleas", movie_title);
  44. String desc = movie_title + " rilis hari ini";
  45. sendNotification(context, desc, notifId);
  46. }
  47.  
  48. public void sendNotification(Context context, String desc, int notifId){
  49. NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
  50.  
  51. NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
  52. .setSmallIcon(R.drawable.ic_movie)
  53. .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_notifications))
  54. .setContentTitle("Movie Catalogue")
  55. .setContentText(desc);
  56.  
  57. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
  58. NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
  59. CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
  60. builder.setChannelId(CHANNEL_ID);
  61. if (notificationManager != null){
  62. notificationManager.createNotificationChannel(channel);
  63. }
  64. }
  65. Notification notification = builder.build();
  66. if (notificationManager != null){
  67. notificationManager.notify(notifId, notification);
  68. }
  69. }
  70.  
  71. public void setAlarm(Context context, ArrayList<Movie> movie) {
  72.  
  73. for (int i=0; i < movie.size(); i++) {
  74. AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
  75.  
  76. Intent intent = new Intent(context, MovieReleaseTodayReminder.class);
  77. intent.putExtra(title_movie, movie.get(i).getMovie_title());
  78. intent.putExtra(NOTIF_ID, i);
  79.  
  80. Log.e("TodayReleaseLoop", movie.get(i).getMovie_title());
  81.  
  82. Calendar calendar = Calendar.getInstance();
  83. calendar.set(Calendar.HOUR_OF_DAY, 8);
  84. calendar.set(Calendar.MINUTE, 0);
  85. calendar.set(Calendar.SECOND, 0);
  86.  
  87. PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 100, intent, 0);
  88. if (alarmManager != null) {
  89. alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
  90. }
  91. }
  92. }
  93. }
Add Comment
Please, Sign In to add comment