Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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, AlarmClickListenerlistener){
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)

AltStyle によって変換されたページ (->オリジナル) /