Skip to content

Commit 3ae0949

Browse files
Smart Alarm
1 parent 34cbfb7 commit 3ae0949

File tree

7 files changed

+78
-38
lines changed

7 files changed

+78
-38
lines changed

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

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
import android.app.TimePickerDialog;
44
import android.content.Context;
55
import android.view.LayoutInflater;
6+
import android.view.View;
67
import android.view.ViewGroup;
78
import android.widget.TimePicker;
8-
99
import androidx.annotation.NonNull;
1010
import androidx.recyclerview.widget.RecyclerView;
11-
1211
import java.text.SimpleDateFormat;
13-
import java.util.ArrayList;
1412
import java.util.Calendar;
1513
import java.util.List;
16-
import java.util.Locale;
1714

15+
16+
import it.ezzie.smartalarm.Data_Access_Object.AlarmDAO;
17+
import it.ezzie.smartalarm.Database.AppDatabase;
1818
import it.ezzie.smartalarm.Entity.AlarmEntity;
1919
import it.ezzie.smartalarm.databinding.AdapterAlarmBinding;
2020

@@ -23,7 +23,7 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.AlarmViewHol
2323
private List<AlarmEntity> alarmList;
2424
private Calendar calendar = Calendar.getInstance();
2525
private AlarmClickListener listener;
26-
26+
private AlarmDAO alarmDAO = AppDatabase.appDatabase.alarmDAO();
2727
public AlarmAdapter(Context context , List<AlarmEntity> alarmList, AlarmClickListener listener){
2828
this.context = context;
2929
this.alarmList = alarmList;
@@ -71,9 +71,10 @@ public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
7171
holder.binding.alarmUnit.setText(formattedUnit.toUpperCase());
7272
holder.binding.alarmHour.setText(formattedHour);
7373
holder.binding.alarmMinute.setText(formattedMinute);
74+
holder.binding.alarmSwitch.setChecked(true);
7475
if(formattedUnit.equals("PM")){
7576
holder.binding.imageView.setImageResource(R.drawable.ic_moon);
76-
}else if(formattedUnit.equals("am")){
77+
}else if(formattedUnit.equals("AM")){
7778
holder.binding.imageView.setImageResource(R.drawable.ic_sun);
7879
}
7980
}
@@ -84,10 +85,29 @@ public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
8485
holder.binding.alarmLabel.setText(alarm.getAlarmLabel());
8586
holder.binding.alarmHour.setText(alarm.getAlarmHour());
8687
holder.binding.alarmMinute.setText(alarm.getAlarmMinute());
88+
holder.binding.alarmSwitch.setChecked(alarm.isAlarmOn());
89+
holder.binding.alarmUnit.setText(alarm.getAlarmUnit().toUpperCase());
90+
if(alarm.getAlarmUnit().equals("PM")){
91+
holder.binding.imageView.setImageResource(R.drawable.ic_moon);
92+
}
93+
else if(alarm.getAlarmUnit().equals("AM")){
94+
holder.binding.imageView.setImageResource(R.drawable.ic_sun);
95+
}
8796
var alarms = alarmList.get(position);
88-
holder.binding.alarmTime.setOnLongClickListener(v -> {
97+
holder.binding.alarmSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
98+
if(isChecked){
99+
holder.binding.alarmSwitch.setChecked(true);
100+
alarms.setAlarmOn(true);
101+
102+
}
103+
else{
104+
holder.binding.alarmSwitch.setChecked(false);
105+
alarms.setAlarmOn(false);
106+
}
107+
alarmDAO.updateAlarm(alarms);
108+
});
109+
holder.binding.listLinear.setOnClickListener(v -> {
89110
listener.onAlarmClicked(alarms);
90-
return true;
91111
});
92112
}
93113

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

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,33 @@ private void initData(){
7373

7474
//OK Button
7575
binding.btnOK.setOnClickListener(v -> {
76-
String finalHour = String.valueOf(finalResultHour);
77-
if(getIntent() != null){
78-
76+
//Update
77+
String finalHour = String.valueOf(calendar.get(Calendar.HOUR_OF_DAY));
78+
String finalMinute = String.valueOf(calendar.get(Calendar.MINUTE));
79+
AlarmEntity alarm;
80+
String label = binding.alarmEditTxt.getText().toString().trim();
81+
if(getIntent() != null) {
82+
if (alarmList != null) {
83+
if (!finalHour.equals(alarmList.getAlarmHour()) || !finalMinute.equals(alarmList.getAlarmMinute()) || !label.equals(alarmList.getAlarmLabel())) {
84+
alarmList.setAlarmHour(finalHour);
85+
alarmList.setAlarmMinute(finalMinute);
86+
alarmList.setAlarmUnit(formattedUnit);
87+
alarmList.setAlarmLabel(label);
88+
alarmList.setAlarmOn(true);
89+
alarmDAO.updateAlarm(alarmList);
90+
finish();
91+
} else {
92+
finish();
93+
}
94+
}
7995
}
8096
//Create
81-
AlarmEntity alarm;
8297
//Getting Alarm Label
83-
String label = binding.alarmEditTxt.getText().toString().trim();
8498
if(label.isEmpty()){
85-
alarm = new AlarmEntity(String.valueOf(hourOfDay),String.format("%02d",minute),formattedUnit);
99+
alarm = new AlarmEntity(String.valueOf(hourOfDay),String.format("%02d",minute),formattedUnit,true);
86100
}
87101
else {
88-
alarm = new AlarmEntity(String.valueOf(hourOfDay), String.format("%02d", minute),formattedUnit, label);
102+
alarm = new AlarmEntity(String.valueOf(hourOfDay), String.format("%02d", minute),formattedUnit,true, label);
89103
}
90104
Intent intent = new Intent(this, MainActivity.class);
91105
intent.putExtra("alarm",alarm);
@@ -103,12 +117,7 @@ private void initUI() {
103117
binding.alarmEditTxt.setText(alarmList.getAlarmLabel());
104118
binding.btnCancel.setText("Delete");
105119
binding.btnOK.setText("Update");
106-
Log.d("EditAlarm", "Alarm loaded: " + alarmList.getAlarmHour() + ":" + alarmList.getAlarmMinute());
107-
} else {
108-
Log.d("EditAlarm", "No alarm data found in Intent.");
109120
}
110-
} else {
111-
Log.d("EditAlarm", "Intent is null.");
112121
}
113122
}
114123

app/src/main/java/it/ezzie/smartalarm/Entity/AlarmEntity.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,25 @@ public class AlarmEntity implements Serializable {
1919
private String alarmUnit;
2020
@ColumnInfo(name = "Label")
2121
private String alarmLabel;
22+
@ColumnInfo(name="On")
23+
private boolean alarmOn;
2224

2325
public AlarmEntity(){
2426

2527
}
2628
@Ignore
27-
public AlarmEntity( String alarmHour, String alarmMinute, String alarmUnit){
29+
public AlarmEntity( String alarmHour, String alarmMinute, String alarmUnit, boolean alarmOn){
2830
this.alarmHour = alarmHour;
2931
this.alarmMinute = alarmMinute;
3032
this.alarmUnit = alarmUnit;
33+
this.alarmOn = alarmOn;
3134
}
3235
@Ignore
33-
public AlarmEntity( String alarmHour, String alarmMinute,String alarmUnit, String alarmLabel){
36+
public AlarmEntity( String alarmHour, String alarmMinute,String alarmUnit, boolean alarmOn, String alarmLabel){
3437
this.alarmHour = alarmHour;
3538
this.alarmMinute = alarmMinute;
3639
this.alarmUnit = alarmUnit;
40+
this.alarmOn = alarmOn;
3741
this.alarmLabel = alarmLabel;
3842
}
3943

@@ -69,6 +73,14 @@ public void setAlarmUnit(String alarmUnit) {
6973
this.alarmUnit = alarmUnit;
7074
}
7175

76+
public boolean isAlarmOn() {
77+
return alarmOn;
78+
}
79+
80+
public void setAlarmOn(boolean alarmOn) {
81+
this.alarmOn = alarmOn;
82+
}
83+
7284
public String getAlarmLabel() {
7385
return alarmLabel;
7486
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten
124124
}
125125
}
126126

127+
127128
private void refreshView() {
128129
alarmList = alarmDAO.getAllAlarms();
129130
alarmAdapter.setAlarm(alarmList);
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3-
<item android:state_checked="true">
4-
<shape android:shape="oval">
5-
<solid android:color="@color/white"/>
6-
</shape>
7-
</item>
3+
<item android:state_checked="true">
4+
<shape android:shape="oval">
5+
<solid android:color="@color/greenDark" /> <!-- Color when checked -->
6+
</shape>
7+
</item>
88
<item android:state_checked="false">
99
<shape android:shape="oval">
10-
<solid android:color="@color/white"/>
10+
<solid android:color="@color/grey1" /> <!-- Color when unchecked -->
1111
</shape>
1212
</item>
13-
</selector>
13+
</selector>
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<selector xmlns:android="http://schemas.android.com/apk/res/android">
3-
<item android:state_checked="false">
3+
<item android:state_checked="true">
44
<shape android:shape="rectangle">
5-
<solid android:color="@color/grey"/>
6-
<corners android:radius="50dp"/>
5+
<solid android:color="@color/greenDark" /> <!-- Color when checked -->
76
</shape>
87
</item>
9-
<item android:state_checked="true">
8+
<item android:state_checked="false">
109
<shape android:shape="rectangle">
11-
<solid android:color="@color/greenDark"/>
12-
<corners android:radius="50dp"/>
10+
<solid android:color="@color/grey1" /> <!-- Color when unchecked -->
1311
</shape>
1412
</item>
15-
</selector>
13+
</selector>

app/src/main/res/layout/adapter_alarm.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_width="match_parent"
44
android:layout_height="115dp"
5+
android:id="@+id/listLinear"
56
xmlns:app="http://schemas.android.com/apk/res-auto"
67
android:layout_margin="10dp"
78
android:background="@drawable/bg_list">
@@ -86,13 +87,12 @@
8687
app:layout_constraintStart_toEndOf="@id/alarmTime" />
8788

8889
<com.google.android.material.materialswitch.MaterialSwitch
90+
android:id="@+id/alarmSwitch"
8991
android:layout_width="wrap_content"
9092
android:layout_height="wrap_content"
9193
app:layout_constraintEnd_toEndOf="parent"
9294
app:layout_constraintStart_toEndOf="@+id/imageView"
9395
app:layout_constraintTop_toTopOf="@id/imageView"
94-
app:track="@drawable/track_toggle"
95-
android:thumb="@drawable/thumb_toggle"
9696
android:layout_marginStart="50dp"/>
9797

9898

0 commit comments

Comments
 (0)