Skip to content

Commit d07984a

Browse files
Finishing Alarm
1 parent 6447cac commit d07984a

File tree

5 files changed

+27
-6
lines changed

5 files changed

+27
-6
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools">
4-
54
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
65
<application
76
android:allowBackup="true"
@@ -13,6 +12,7 @@
1312
android:supportsRtl="true"
1413
android:theme="@style/Theme.SmartAlarm"
1514
tools:targetApi="31">
15+
<receiver android:name=".Alarm_Receiver.AlarmReceiver"/>
1616
<activity
1717
android:name=".EditAlarm"
1818
android:exported="true" />

app/src/main/java/it/ezzie/smartalarm/AlarmAdapter.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package it.ezzie.smartalarm;
22

3-
import android.app.TimePickerDialog;
43
import android.content.Context;
54
import android.view.LayoutInflater;
6-
import android.view.View;
75
import android.view.ViewGroup;
8-
import android.widget.TimePicker;
96
import androidx.annotation.NonNull;
107
import androidx.recyclerview.widget.RecyclerView;
11-
import java.text.SimpleDateFormat;
128
import java.util.Calendar;
139
import java.util.List;
1410

@@ -24,6 +20,7 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.AlarmViewHol
2420
private Calendar calendar = Calendar.getInstance();
2521
private AlarmClickListener listener;
2622
private AlarmDAO alarmDAO = AppDatabase.appDatabase.alarmDAO();
23+
private final EditAlarm editAlarm = new EditAlarm();
2724
public AlarmAdapter(Context context , List<AlarmEntity> alarmList, AlarmClickListener listener){
2825
this.context = context;
2926
this.alarmList = alarmList;
@@ -81,6 +78,7 @@ else if(alarm.getAlarmUnit().equalsIgnoreCase("AM")){
8178
alarms.setAlarmOn(false);
8279
}
8380
alarmDAO.updateAlarm(alarms);
81+
editAlarm.scheduleAlarm(alarms);
8482
});
8583
holder.binding.listLinear.setOnClickListener(v -> {
8684
listener.onAlarmClicked(alarms);

app/src/main/java/it/ezzie/smartalarm/Alarm_Receiver/AlarmReceiver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ private void createChannel(Context context , String alarmLabel){
3535
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId)
3636
.setContentTitle("Alarm")
3737
.setContentText(alarmLabel)
38-
.setSmallIcon(R.drawable.alarm_Icon)
38+
.setSmallIcon(R.drawable.alarm_icon)
3939
.setPriority(NotificationCompat.PRIORITY_HIGH);
4040

4141
notificationManager.notify(1, builder.build());

app/src/main/java/it/ezzie/smartalarm/EditAlarm.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package it.ezzie.smartalarm;
22

3+
import android.app.AlarmManager;
4+
import android.app.PendingIntent;
35
import android.content.Intent;
46
import android.os.Bundle;
57
import android.util.Log;
@@ -15,6 +17,7 @@
1517
import java.text.SimpleDateFormat;
1618
import java.util.Calendar;
1719

20+
import it.ezzie.smartalarm.Alarm_Receiver.AlarmReceiver;
1821
import it.ezzie.smartalarm.Data_Access_Object.AlarmDAO;
1922
import it.ezzie.smartalarm.Database.AppDatabase;
2023
import it.ezzie.smartalarm.Entity.AlarmEntity;
@@ -100,13 +103,33 @@ private void initData(){
100103
else {
101104
alarm = new AlarmEntity(String.valueOf(hourOfDay), String.format("%02d", minute),formattedUnit,true, label);
102105
}
106+
scheduleAlarm(alarm);
103107
Intent intent = new Intent(this, MainActivity.class);
104108
intent.putExtra("alarm",alarm);
105109
setResult(RESULT_OK,intent);
106110
finish();
107111
});
108112
});
109113
}
114+
public void scheduleAlarm(AlarmEntity alarm){
115+
AlarmManager alarmManager = this.getSystemService(AlarmManager.class);
116+
Intent intent = new Intent(this, AlarmReceiver.class);
117+
intent.putExtra("alarmLabel", alarm.getAlarmLabel());
118+
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,Integer.parseInt(alarm.getAlarmHour()) * 100 + Integer.parseInt(alarm.getAlarmMinute()), intent , PendingIntent.FLAG_UPDATE_CURRENT);
119+
//Init Calendar
120+
Calendar calendar1 = Calendar.getInstance();
121+
calendar1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(alarm.getAlarmHour()));
122+
calendar1.set(Calendar.MINUTE, Integer.parseInt(alarm.getAlarmMinute()));
123+
calendar1.set(Calendar.SECOND , 0);
124+
//Set the alarm to ring
125+
if(alarm.isAlarmOn()){
126+
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(),pendingIntent);
127+
}
128+
else {
129+
alarmManager.cancel(pendingIntent);
130+
}
131+
}
132+
110133
private void initUI() {
111134
if (getIntent() != null) {
112135
alarmList = (AlarmEntity) getIntent().getSerializableExtra("alarm");

0 commit comments

Comments
 (0)