33import android .app .TimePickerDialog ;
44import android .content .Context ;
55import android .view .LayoutInflater ;
6+ import android .view .View ;
67import android .view .ViewGroup ;
78import android .widget .TimePicker ;
8-
99import androidx .annotation .NonNull ;
1010import androidx .recyclerview .widget .RecyclerView ;
11-
1211import java .text .SimpleDateFormat ;
13- import java .util .ArrayList ;
1412import java .util .Calendar ;
1513import 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 ;
1818import it .ezzie .smartalarm .Entity .AlarmEntity ;
1919import 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
0 commit comments