11package it .ezzie .smartalarm .Alarm_Receiver ;
22
3- import android .media .MediaPlayer ;
4- import android .os .Bundle ;
5- import android .os .Vibrator ;
3+ import android .app .NotificationChannel ;
4+ import android .app .NotificationManager ;
5+ import android .content .BroadcastReceiver ;
6+ import android .content .Context ;
7+ import android .content .Intent ;
8+ import android .net .Uri ;
69
7- import androidx .activity .EdgeToEdge ;
8- import androidx .appcompat .app .AppCompatActivity ;
9- import androidx .core .graphics .Insets ;
10- import androidx .core .view .ViewCompat ;
11- import androidx .core .view .WindowInsetsCompat ;
10+ import androidx .core .app .NotificationCompat ;
1211
1312import it .ezzie .smartalarm .R ;
14- import it .ezzie .smartalarm .databinding .ActivityAlarmReceiverBinding ;
1513
16- public class AlarmReceiver extends AppCompatActivity {
17- private ActivityAlarmReceiverBinding binding ;
18- private MediaPlayer mediaPlayer ;
19- private Vibrator vibrator ;
14+ public class AlarmReceiver extends BroadcastReceiver {
2015 @ Override
21- protected void onCreate (Bundle savedInstanceState ) {
22- super .onCreate (savedInstanceState );
23- EdgeToEdge .enable (this );
24- binding = ActivityAlarmReceiverBinding .inflate (getLayoutInflater ());
25- setContentView (binding .getRoot ());
26- initMedia ();
16+ public void onReceive (Context context , Intent intent ) {
17+ String alarmLabel ;
18+ if (intent .getStringExtra ("alarmLabel" ) == null ){
19+ alarmLabel = "Alarm is ringing" ;
20+ }else {
21+ alarmLabel = intent .getStringExtra ("alarmLabel" );
22+ }
23+ createChannel (context , alarmLabel );
2724 }
28-
29- private void initMedia () {
30- mediaPlayer = MediaPlayer .create (this , R .raw .playing_god );
31- mediaPlayer .start ();
32-
33- Thread thread = new Thread (new Runnable () {
34- @ Override
35- public void run () {
36- try {
37- Thread .sleep (5000 );
38- } catch (InterruptedException e ) {
39- throw new RuntimeException (e );
40- }
41- finally {
42- mediaPlayer .stop ();
43- }
44- }
45- });
25+ private void createChannel (Context context , String alarmLabel ){
26+ String channelId = "alarm_channel" ;
27+ if (android .os .Build .VERSION .SDK_INT >= android .os .Build .VERSION_CODES .O ) {
28+ //Create Ringtone
29+ Uri ringtoneUri = Uri .parse ("android.resource://" + context .getPackageName () + "/" + R .raw .playing_god );
30+ //Creating Notification Channel
31+ NotificationChannel notificationChannel = new NotificationChannel (channelId ,"Alarm Notification" , NotificationManager .IMPORTANCE_HIGH );
32+ notificationChannel .setSound (ringtoneUri ,null );
33+ //Creating Notification Manager
34+ NotificationManager notificationManager = context .getSystemService (NotificationManager .class );
35+ notificationManager .createNotificationChannel (notificationChannel );
36+ //Creating Notification Builder
37+ NotificationCompat .Builder builder = new NotificationCompat .Builder (context ,channelId )
38+ .
39+ }
4640 }
47- }
41+ }
0 commit comments