Skip to content

Commit 34cbfb7

Browse files
Smart Alarm
1 parent a4bdde4 commit 34cbfb7

File tree

3 files changed

+57
-9
lines changed

3 files changed

+57
-9
lines changed

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,12 @@ public class AlarmAdapter extends RecyclerView.Adapter<AlarmAdapter.AlarmViewHol
2222
private Context context;
2323
private List<AlarmEntity> alarmList;
2424
private Calendar calendar = Calendar.getInstance();
25+
private AlarmClickListener listener;
2526

26-
public AlarmAdapter(Context context , List<AlarmEntity> alarmList){
27+
public AlarmAdapter(Context context , List<AlarmEntity> alarmList, AlarmClickListener listener){
2728
this.context = context;
2829
this.alarmList = alarmList;
30+
this.listener = listener;
2931
}
3032

3133
public void setAlarm(List<AlarmEntity> alarmList) {
@@ -41,6 +43,10 @@ public AlarmViewHolder(AdapterAlarmBinding binding) {
4143
}
4244
}
4345

46+
public interface AlarmClickListener{
47+
void onAlarmClicked(AlarmEntity alarm);
48+
}
49+
4450
@NonNull
4551
@Override
4652
public AlarmViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -78,6 +84,11 @@ public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
7884
holder.binding.alarmLabel.setText(alarm.getAlarmLabel());
7985
holder.binding.alarmHour.setText(alarm.getAlarmHour());
8086
holder.binding.alarmMinute.setText(alarm.getAlarmMinute());
87+
var alarms = alarmList.get(position);
88+
holder.binding.alarmTime.setOnLongClickListener(v -> {
89+
listener.onAlarmClicked(alarms);
90+
return true;
91+
});
8192
}
8293

8394
@Override

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

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5+
import android.util.Log;
56

67
import androidx.activity.EdgeToEdge;
78
import androidx.appcompat.app.AppCompatActivity;
@@ -22,6 +23,7 @@ public class EditAlarm extends AppCompatActivity {
2223
private ActivityEditAlarmBinding binding;
2324
private AlarmDAO alarmDAO;
2425
private Calendar calendar = Calendar.getInstance();
26+
private AlarmEntity alarmList;
2527
@Override
2628
protected void onCreate(Bundle savedInstanceState) {
2729
super.onCreate(savedInstanceState);
@@ -30,10 +32,7 @@ protected void onCreate(Bundle savedInstanceState) {
3032
setContentView(binding.getRoot());
3133
initDatabase();
3234
initData();
33-
initListener();
34-
}
35-
36-
private void initListener() {
35+
initUI();
3736
}
3837

3938
private void initDatabase() {
@@ -65,14 +64,23 @@ private void initData(){
6564

6665
//Cancel Button
6766
binding.btnCancel.setOnClickListener(v -> {
67+
if(getIntent() != null){
68+
alarmDAO.deleteAlarm(alarmList);
69+
finish();
70+
}
6871
finish();
6972
});
7073

7174
//OK Button
72-
binding.btnOK.setOnClickListener(v -> {
75+
binding.btnOK.setOnClickListener(v -> {
76+
String finalHour = String.valueOf(finalResultHour);
77+
if(getIntent() != null){
78+
79+
}
80+
//Create
7381
AlarmEntity alarm;
7482
//Getting Alarm Label
75-
String label = binding.alarmEditTxt.getText().toString().trim();
83+
String label = binding.alarmEditTxt.getText().toString().trim();
7684
if(label.isEmpty()){
7785
alarm = new AlarmEntity(String.valueOf(hourOfDay),String.format("%02d",minute),formattedUnit);
7886
}
@@ -86,5 +94,22 @@ private void initData(){
8694
});
8795
});
8896
}
97+
private void initUI() {
98+
if (getIntent() != null) {
99+
alarmList = (AlarmEntity) getIntent().getSerializableExtra("alarm");
100+
if (alarmList != null) {
101+
binding.timePicker.setHour(Integer.parseInt(alarmList.getAlarmHour()));
102+
binding.timePicker.setMinute(Integer.parseInt(alarmList.getAlarmMinute()));
103+
binding.alarmEditTxt.setText(alarmList.getAlarmLabel());
104+
binding.btnCancel.setText("Delete");
105+
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.");
109+
}
110+
} else {
111+
Log.d("EditAlarm", "Intent is null.");
112+
}
113+
}
89114

90-
}
115+
}

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

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.app.TimePickerDialog;
55
import android.content.Intent;
66
import android.os.Bundle;
7+
import android.os.Parcelable;
78

89
import androidx.activity.EdgeToEdge;
910
import androidx.annotation.Nullable;
@@ -31,6 +32,7 @@ public class MainActivity extends AppCompatActivity {
3132
private int resultHour;
3233
private int resultMinute;
3334
private static final int CREATE_REQUEST_CODE = 123;
35+
private static final int UPDATE_REQUEST_CODE = 234;
3436
@Override
3537
protected void onCreate(Bundle savedInstanceState) {
3638
super.onCreate(savedInstanceState);
@@ -43,14 +45,24 @@ protected void onCreate(Bundle savedInstanceState) {
4345
initListener();
4446
}
4547

48+
@Override
49+
protected void onStart() {
50+
super.onStart();
51+
refreshView();
52+
}
53+
4654
private void initDatabase() {
4755
var db = AppDatabase.getInstance(this);
4856
alarmDAO = db.alarmDAO();
4957
//alarmDAO.createAlarm(new AlarmEntity("4:00","Wake UP"));
5058
alarmList = alarmDAO.getAllAlarms();
5159
}
5260
private void initUI(){
53-
alarmAdapter = new AlarmAdapter(this,alarmList);
61+
alarmAdapter = new AlarmAdapter(this,alarmList, alarmList1 -> {
62+
Intent intent = new Intent(this, EditAlarm.class);
63+
intent.putExtra("alarm", alarmList1) ;
64+
startActivity(intent);
65+
});
5466
binding.recyclerView.setAdapter(alarmAdapter);
5567
binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
5668
}

0 commit comments

Comments
 (0)