Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 64 additions & 39 deletions app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
import android.text.format.DateFormat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
Expand All @@ -39,6 +40,7 @@
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;

import java.util.Calendar;
import java.util.Date;


public class ReminderAddActivity extends AppCompatActivity implements
Expand Down Expand Up @@ -200,7 +202,7 @@ public void setTime(View v){
this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE),
false
DateFormat.is24HourFormat(getApplicationContext())
);
tpd.setThemeDark(false);
tpd.show(getFragmentManager(), "Timepickerdialog");
Expand All @@ -214,6 +216,7 @@ public void setDate(View v){
now.get(Calendar.YEAR),
now.get(Calendar.MONTH),
now.get(Calendar.DAY_OF_MONTH)

);
dpd.show(getFragmentManager(), "Datepickerdialog");
}
Expand Down Expand Up @@ -315,8 +318,7 @@ public void onClick(DialogInterface dialog, int whichButton) {
mRepeatNo = Integer.toString(1);
mRepeatNoText.setText(mRepeatNo);
mRepeatText.setText("Every " + mRepeatNo + " " + mRepeatType + "(s)");
}
else {
} else {
mRepeatNo = input.getText().toString().trim();
mRepeatNoText.setText(mRepeatNo);
mRepeatText.setText("Every " + mRepeatNo + " " + mRepeatType + "(s)");
Expand All @@ -331,48 +333,71 @@ public void onClick(DialogInterface dialog, int whichButton) {
alert.show();
}

// Check that date is after current date
public boolean afterCurrentTimeDate(){
Date now = new Date();
Calendar me = Calendar.getInstance();
me.set(Calendar.MONTH, mMonth-1);
me.set(Calendar.YEAR, mYear);
me.set(Calendar.DAY_OF_MONTH, mDay);
me.set(Calendar.HOUR_OF_DAY, mHour);
me.set(Calendar.MINUTE, mMinute);
me.set(Calendar.SECOND, 0);
if(now.compareTo(me.getTime())<0){
return true;
} else {
return false;
}
}

// On clicking the save button
public void saveReminder(){
ReminderDatabase rb = new ReminderDatabase(this);

// Creating Reminder
int ID = rb.addReminder(new Reminder(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive));

// Set up calender for creating the notification
mCalendar.set(Calendar.MONTH, --mMonth);
mCalendar.set(Calendar.YEAR, mYear);
mCalendar.set(Calendar.DAY_OF_MONTH, mDay);
mCalendar.set(Calendar.HOUR_OF_DAY, mHour);
mCalendar.set(Calendar.MINUTE, mMinute);
mCalendar.set(Calendar.SECOND, 0);

// Check repeat type
if (mRepeatType.equals("Minute")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMinute;
} else if (mRepeatType.equals("Hour")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milHour;
} else if (mRepeatType.equals("Day")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milDay;
} else if (mRepeatType.equals("Week")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milWeek;
} else if (mRepeatType.equals("Month")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMonth;
}
if(afterCurrentTimeDate()) {
ReminderDatabase rb = new ReminderDatabase(this);

// Creating Reminder
int ID = rb.addReminder(new Reminder(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive));

// Set up calender for creating the notification
mCalendar.set(Calendar.MONTH, --mMonth);
mCalendar.set(Calendar.YEAR, mYear);
mCalendar.set(Calendar.DAY_OF_MONTH, mDay);
mCalendar.set(Calendar.HOUR_OF_DAY, mHour);
mCalendar.set(Calendar.MINUTE, mMinute);
mCalendar.set(Calendar.SECOND, 0);

// Check repeat type
if (mRepeatType.equals("Minute")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMinute;
} else if (mRepeatType.equals("Hour")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milHour;
} else if (mRepeatType.equals("Day")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milDay;
} else if (mRepeatType.equals("Week")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milWeek;
} else if (mRepeatType.equals("Month")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMonth;
}

// Create a new notification
if (mActive.equals("true")) {
if (mRepeat.equals("true")) {
new AlarmReceiver().setRepeatAlarm(getApplicationContext(), mCalendar, ID, mRepeatTime);
} else if (mRepeat.equals("false")) {
new AlarmReceiver().setAlarm(getApplicationContext(), mCalendar, ID);
// Create a new notification
if (mActive.equals("true")) {
if (mRepeat.equals("true")) {
new AlarmReceiver().setRepeatAlarm(getApplicationContext(), mCalendar, ID, mRepeatTime);
} else if (mRepeat.equals("false")) {
new AlarmReceiver().setAlarm(getApplicationContext(), mCalendar, ID);
}
}
}

// Create toast to confirm new reminder
Toast.makeText(getApplicationContext(), "Saved",
Toast.LENGTH_SHORT).show();
// Create toast to confirm new reminder
Toast.makeText(getApplicationContext(), "Saved",
Toast.LENGTH_SHORT).show();

onBackPressed();
onBackPressed();
} else {
// Create toast to notify that Alarm is not a valid future date
Toast.makeText(getApplicationContext(), "Alarm Time and Date Must Be After Current Time and Date",
Toast.LENGTH_LONG).show();
}
}

// On pressing the back button
Expand Down
13 changes: 13 additions & 0 deletions app/src/main/java/com/blanyal/remindme/ReminderDatabase.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,19 @@ public int addReminder(Reminder reminder){
return (int) ID;
}

// Determines if the id exists in the reminder database
public boolean checkForID(int id) {
SQLiteDatabase db = this.getReadableDatabase();
String Query = "Select * from " + TABLE_REMINDERS + " where " + KEY_ID + " = " + id;
Cursor cursor = db.rawQuery(Query, null);
if(cursor.getCount() <= 0){
cursor.close();
return false;
}
cursor.close();
return true;
}

// Getting single Reminder
public Reminder getReminder(int id){
SQLiteDatabase db = this.getReadableDatabase();
Expand Down
124 changes: 77 additions & 47 deletions app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
Expand All @@ -40,6 +41,7 @@
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;

import java.util.Calendar;
import java.util.Date;


public class ReminderEditActivity extends AppCompatActivity implements
Expand Down Expand Up @@ -132,6 +134,12 @@ public void afterTextChanged(Editable s) {}

// Get reminder using reminder id
rb = new ReminderDatabase(this);
if (!rb.checkForID(mReceivedID)){
Toast.makeText(getApplicationContext(), "Alarm Does Not Exist Anymore",
Toast.LENGTH_SHORT).show();
finish();
return;
}
mReceivedReminder = rb.getReminder(mReceivedID);

// Get values from reminder
Expand Down Expand Up @@ -354,8 +362,7 @@ public void onClick(DialogInterface dialog, int whichButton) {
mRepeatNo = Integer.toString(1);
mRepeatNoText.setText(mRepeatNo);
mRepeatText.setText("Every " + mRepeatNo + " " + mRepeatType + "(s)");
}
else {
} else {
mRepeatNo = input.getText().toString().trim();
mRepeatNoText.setText(mRepeatNo);
mRepeatText.setText("Every " + mRepeatNo + " " + mRepeatType + "(s)");
Expand All @@ -370,57 +377,80 @@ public void onClick(DialogInterface dialog, int whichButton) {
alert.show();
}

// Check that date is after current date
public boolean afterCurrentTimeDate(){
Date now = new Date();
Calendar me = Calendar.getInstance();
me.set(Calendar.MONTH, mMonth-1);
me.set(Calendar.YEAR, mYear);
me.set(Calendar.DAY_OF_MONTH, mDay);
me.set(Calendar.HOUR_OF_DAY, mHour);
me.set(Calendar.MINUTE, mMinute);
me.set(Calendar.SECOND, 0);
if(now.compareTo(me.getTime())<0){
return true;
} else {
return false;
}
}

// On clicking the update button
public void updateReminder(){
// Set new values in the reminder
mReceivedReminder.setTitle(mTitle);
mReceivedReminder.setDate(mDate);
mReceivedReminder.setTime(mTime);
mReceivedReminder.setRepeat(mRepeat);
mReceivedReminder.setRepeatNo(mRepeatNo);
mReceivedReminder.setRepeatType(mRepeatType);
mReceivedReminder.setActive(mActive);

// Update reminder
rb.updateReminder(mReceivedReminder);

// Set up calender for creating the notification
mCalendar.set(Calendar.MONTH, --mMonth);
mCalendar.set(Calendar.YEAR, mYear);
mCalendar.set(Calendar.DAY_OF_MONTH, mDay);
mCalendar.set(Calendar.HOUR_OF_DAY, mHour);
mCalendar.set(Calendar.MINUTE, mMinute);
mCalendar.set(Calendar.SECOND, 0);

// Cancel existing notification of the reminder by using its ID
mAlarmReceiver.cancelAlarm(getApplicationContext(), mReceivedID);

// Check repeat type
if (mRepeatType.equals("Minute")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMinute;
} else if (mRepeatType.equals("Hour")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milHour;
} else if (mRepeatType.equals("Day")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milDay;
} else if (mRepeatType.equals("Week")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milWeek;
} else if (mRepeatType.equals("Month")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMonth;
}
if (afterCurrentTimeDate()) {
mReceivedReminder.setTitle(mTitle);
mReceivedReminder.setDate(mDate);
mReceivedReminder.setTime(mTime);
mReceivedReminder.setRepeat(mRepeat);
mReceivedReminder.setRepeatNo(mRepeatNo);
mReceivedReminder.setRepeatType(mRepeatType);
mReceivedReminder.setActive(mActive);

// Create a new notification
if (mActive.equals("true")) {
if (mRepeat.equals("true")) {
mAlarmReceiver.setRepeatAlarm(getApplicationContext(), mCalendar, mReceivedID, mRepeatTime);
} else if (mRepeat.equals("false")) {
mAlarmReceiver.setAlarm(getApplicationContext(), mCalendar, mReceivedID);
// Update reminder
rb.updateReminder(mReceivedReminder);

// Set up calender for creating the notification
mCalendar.set(Calendar.MONTH, --mMonth);
mCalendar.set(Calendar.YEAR, mYear);
mCalendar.set(Calendar.DAY_OF_MONTH, mDay);
mCalendar.set(Calendar.HOUR_OF_DAY, mHour);
mCalendar.set(Calendar.MINUTE, mMinute);
mCalendar.set(Calendar.SECOND, 0);

// Cancel existing notification of the reminder by using its ID
mAlarmReceiver.cancelAlarm(getApplicationContext(), mReceivedID);

// Check repeat type
if (mRepeatType.equals("Minute")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMinute;
} else if (mRepeatType.equals("Hour")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milHour;
} else if (mRepeatType.equals("Day")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milDay;
} else if (mRepeatType.equals("Week")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milWeek;
} else if (mRepeatType.equals("Month")) {
mRepeatTime = Integer.parseInt(mRepeatNo) * milMonth;
}
}

// Create toast to confirm update
Toast.makeText(getApplicationContext(), "Edited",
Toast.LENGTH_SHORT).show();
onBackPressed();
// Create a new notification
if (mActive.equals("true")) {
if (mRepeat.equals("true")) {
mAlarmReceiver.setRepeatAlarm(getApplicationContext(), mCalendar, mReceivedID, mRepeatTime);
} else if (mRepeat.equals("false")) {
mAlarmReceiver.setAlarm(getApplicationContext(), mCalendar, mReceivedID);
}
}

// Create toast to confirm update
Toast.makeText(getApplicationContext(), "Edited",
Toast.LENGTH_SHORT).show();
onBackPressed();
} else {
// Create toast to notify that Alarm is not a valid future date
Toast.makeText(getApplicationContext(), "Alarm Time and Date Must Be After Current Time and Date",
Toast.LENGTH_LONG).show();
}
}

// On pressing the back button
Expand Down