From f01a9c8dadb7d62cdea6f04f8f6ce8d1cc78ef3a Mon Sep 17 00:00:00 2001 From: ayenter Date: Thu, 19 Nov 2015 00:30:58 -0800 Subject: [PATCH 1/7] new tests: AlarmReceiverTest(testOnReceive, testSetAlarm, testSetRepeatAlarm), ReminderEditActivityTest('test notification after cancelling alarm'); supporting files: NotificationTestManager('to support AlarmReceiverTest:testOnReceive()'); methods altered for testing: AlarmReceiver:onReceive(); TODO: testCancelAlarm(); --- app/src/main/java/com/blanyal/remindme/AlarmReceiver.java | 7 ++++++- app/src/main/java/com/blanyal/remindme/MainActivity.java | 4 +--- .../java/com/blanyal/remindme/ReminderAddActivity.java | 8 ++++++++ .../java/com/blanyal/remindme/ReminderEditActivity.java | 1 + 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java b/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java index b804986..6b3bca2 100644 --- a/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java +++ b/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java @@ -41,6 +41,7 @@ public class AlarmReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int mReceivedID = Integer.parseInt(intent.getStringExtra(ReminderEditActivity.EXTRA_REMINDER_ID)); + String testBool = intent.getStringExtra(ReminderEditActivity.EXTRA_TEST_BOOL); // Get notification title from Reminder Database ReminderDatabase rb = new ReminderDatabase(context); @@ -63,9 +64,13 @@ public void onReceive(Context context, Intent intent) { .setContentIntent(mClick) .setAutoCancel(true) .setOnlyAlertOnce(true); - + if (testBool == "true"){ + NotificationTestManager ntest = new NotificationTestManager(); + ntest.testNotify(mBuilder.build(), context); + } NotificationManager nManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); nManager.notify(mReceivedID, mBuilder.build()); + } public void setAlarm(Context context, Calendar calendar, int ID) { diff --git a/app/src/main/java/com/blanyal/remindme/MainActivity.java b/app/src/main/java/com/blanyal/remindme/MainActivity.java index 169ceb5..2d47ee8 100644 --- a/app/src/main/java/com/blanyal/remindme/MainActivity.java +++ b/app/src/main/java/com/blanyal/remindme/MainActivity.java @@ -192,9 +192,7 @@ private void selectReminder(int mClickID) { // Create intent to edit the reminder // Put reminder id as extra - Intent i = new Intent(this, ReminderEditActivity.class); - i.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, mStringClickID); - startActivityForResult(i, 1); + } @Override diff --git a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java index f09ee87..e33eaf3 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java @@ -25,6 +25,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; @@ -337,6 +338,13 @@ public void saveReminder(){ // Creating Reminder int ID = rb.addReminder(new Reminder(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive)); + Log.d("Title:" , mTitle); + Log.d("Title:" , mDate); + Log.d("Title:" , mTime); + Log.d("Title:" , mRepeat); + Log.d("Title:" , mRepeatNo); + Log.d("Title:" , mRepeatType); + Log.d("Title:" , mActive); // Set up calender for creating the notification mCalendar.set(Calendar.MONTH, --mMonth); diff --git a/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java index 09ab557..f965d20 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java @@ -71,6 +71,7 @@ public class ReminderEditActivity extends AppCompatActivity implements // Constant Intent String public static final String EXTRA_REMINDER_ID = "Reminder_ID"; + public static final String EXTRA_TEST_BOOL = "false"; // Values for orientation change private static final String KEY_TITLE = "title_key"; From 7a7feceb67c266b9c1e66b59b608054099602c90 Mon Sep 17 00:00:00 2001 From: ayenter Date: Thu, 19 Nov 2015 00:39:41 -0800 Subject: [PATCH 2/7] new tests: AlarmReceiverTest(testOnReceive, testSetAlarm, testSetRepeatAlarm), ReminderEditActivityTest('test notification after cancelling alarm'); supporting files: NotificationTestManager('to support AlarmReceiverTest:testOnReceive()'); methods altered for testing: AlarmReceiver:onReceive(); TODO: testCancelAlarm(); --- .../blanyal/remindme/AlarmReceiverTest.java | 101 ++++++++++++++++++ .../remindme/ReminderEditActivityTest.java | 29 +++++ .../com/blanyal/remindme/MainActivity.java | 4 +- 3 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java create mode 100644 app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java diff --git a/app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java b/app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java new file mode 100644 index 0000000..630f517 --- /dev/null +++ b/app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java @@ -0,0 +1,101 @@ +package com.blanyal.remindme; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.service.notification.NotificationListenerService; +import android.service.notification.StatusBarNotification; +import android.test.AndroidTestCase; +import android.util.Log; + +import junit.framework.TestCase; + +import java.util.Calendar; + + + +/** + * Created by theDarkKnight on 11/10/15. + */ +public class AlarmReceiverTest extends AndroidTestCase { + + public static final String EXTRA_TEST_INFO = "Reminder_ID"; + + public void setUp() throws Exception { + super.setUp(); + + } + + public void test() throws Exception { + final int expected = 1; + final int reality = 5; + assertEquals(reality, reality); + } + + public void tearDown() throws Exception { + + } + + public void testOnReceive() throws Exception { + ReminderDatabase rb = new ReminderDatabase(getContext()); + int ID = rb.addReminder(new Reminder("Title", "12/11/2016", "3:59", "true", "1", "Hour", "true")); + Intent intent = new Intent(getContext(), AlarmReceiver.class); + intent.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, Integer.toString(ID)); + intent.putExtra(ReminderEditActivity.EXTRA_TEST_BOOL, "true"); + new AlarmReceiver().onReceive(getContext(), intent); + Intent i = new Intent(getContext(), ReminderEditActivity.class); + i.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, ID); + } + + public void testSetAlarm() throws Exception { + Calendar mCalendar = Calendar.getInstance(); + mCalendar.set(Calendar.MONTH, 1); + mCalendar.set(Calendar.YEAR, 2015); + mCalendar.set(Calendar.DAY_OF_MONTH, 20); + mCalendar.set(Calendar.HOUR_OF_DAY, 3); + mCalendar.set(Calendar.MINUTE, 55); + mCalendar.set(Calendar.SECOND, 0); + int ID = 1; + + boolean alarmUp = (PendingIntent.getBroadcast(getContext(), ID, + new Intent(getContext(), AlarmReceiver.class), + PendingIntent.FLAG_NO_CREATE) != null); + assertFalse(alarmUp); + + new AlarmReceiver().setAlarm(getContext(), mCalendar, ID); + + alarmUp = (PendingIntent.getBroadcast(getContext(), ID, + new Intent(getContext(), AlarmReceiver.class), + PendingIntent.FLAG_NO_CREATE) != null); + assertTrue(alarmUp); + } + + public void testSetRepeatAlarm() throws Exception { + Calendar mCalendar = Calendar.getInstance(); + mCalendar.set(Calendar.MONTH, 1); + mCalendar.set(Calendar.YEAR, 2015); + mCalendar.set(Calendar.DAY_OF_MONTH, 20); + mCalendar.set(Calendar.HOUR_OF_DAY, 3); + mCalendar.set(Calendar.MINUTE, 55); + mCalendar.set(Calendar.SECOND, 0); + int ID = 2; + + boolean alarmUp = (PendingIntent.getBroadcast(getContext(), ID, + new Intent(getContext(), AlarmReceiver.class), + PendingIntent.FLAG_NO_CREATE) != null); + assertFalse(alarmUp); + + new AlarmReceiver().setAlarm(getContext(), mCalendar, ID); + + alarmUp = (PendingIntent.getBroadcast(getContext(), ID, + new Intent(getContext(), AlarmReceiver.class), + PendingIntent.FLAG_NO_CREATE) != null); + assertTrue(alarmUp); + } + + public void testCancelAlarm() throws Exception { + //impossible to test + } +} + diff --git a/app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java b/app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java new file mode 100644 index 0000000..b9291aa --- /dev/null +++ b/app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java @@ -0,0 +1,29 @@ +package com.blanyal.remindme; + +import android.content.Context; +import android.content.Intent; +import android.test.ActivityInstrumentationTestCase2; + +/** + * Created by theDarkKnight on 11/18/15. + */ +public class ReminderEditActivityTest extends ActivityInstrumentationTestCase2 { + public ReminderEditActivityTest(){ + super(ReminderEditActivity.class); + } + + @Override + protected void setUp() throws Exception { + super.setUp(); + Context context = this.getInstrumentation().getTargetContext().getApplicationContext(); + Intent i = new Intent(context, ReminderEditActivity.class); + String mStringClickID = Integer.toString(-1); + i.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, mStringClickID); + setActivityIntent(i); + } + + public void testActivityExists() { + ReminderEditActivity activity = getActivity(); + assertNotNull(activity); + } +} diff --git a/app/src/main/java/com/blanyal/remindme/MainActivity.java b/app/src/main/java/com/blanyal/remindme/MainActivity.java index 2d47ee8..169ceb5 100644 --- a/app/src/main/java/com/blanyal/remindme/MainActivity.java +++ b/app/src/main/java/com/blanyal/remindme/MainActivity.java @@ -192,7 +192,9 @@ private void selectReminder(int mClickID) { // Create intent to edit the reminder // Put reminder id as extra - + Intent i = new Intent(this, ReminderEditActivity.class); + i.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, mStringClickID); + startActivityForResult(i, 1); } @Override From fe4ab231a8f2e966dd1e3798fa16afb88e5bc60f Mon Sep 17 00:00:00 2001 From: ayenter Date: Thu, 19 Nov 2015 00:41:39 -0800 Subject: [PATCH 3/7] new tests: AlarmReceiverTest(testOnReceive, testSetAlarm, testSetRepeatAlarm), ReminderEditActivityTest('test notification after cancelling alarm'); supporting files: NotificationTestManager('to support AlarmReceiverTest:testOnReceive()'); methods altered for testing: AlarmReceiver:onReceive(); TODO: testCancelAlarm(); --- .../java/com/blanyal/remindme/ReminderAddActivity.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java index e33eaf3..f09ee87 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java @@ -25,7 +25,6 @@ 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; @@ -338,13 +337,6 @@ public void saveReminder(){ // Creating Reminder int ID = rb.addReminder(new Reminder(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive)); - Log.d("Title:" , mTitle); - Log.d("Title:" , mDate); - Log.d("Title:" , mTime); - Log.d("Title:" , mRepeat); - Log.d("Title:" , mRepeatNo); - Log.d("Title:" , mRepeatType); - Log.d("Title:" , mActive); // Set up calender for creating the notification mCalendar.set(Calendar.MONTH, --mMonth); From 02f9f5417f0432c314cd8c97db371fa019ea5f46 Mon Sep 17 00:00:00 2001 From: ayenter Date: Thu, 19 Nov 2015 00:43:11 -0800 Subject: [PATCH 4/7] new tests: AlarmReceiverTest(testOnReceive, testSetAlarm, testSetRepeatAlarm), ReminderEditActivityTest('test notification after cancelling alarm'); supporting files: NotificationTestManager('to support AlarmReceiverTest:testOnReceive()'); methods altered for testing: AlarmReceiver:onReceive(); TODO: testCancelAlarm(); --- app/src/main/java/com/blanyal/remindme/AlarmReceiver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java b/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java index 6b3bca2..dd793e0 100644 --- a/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java +++ b/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java @@ -64,7 +64,7 @@ public void onReceive(Context context, Intent intent) { .setContentIntent(mClick) .setAutoCancel(true) .setOnlyAlertOnce(true); - if (testBool == "true"){ + if (testBool.equals("true")){ NotificationTestManager ntest = new NotificationTestManager(); ntest.testNotify(mBuilder.build(), context); } From 5868f2847185618b91bfb6913801b50d451531cf Mon Sep 17 00:00:00 2001 From: ayenter Date: Wed, 2 Dec 2015 19:16:16 -0800 Subject: [PATCH 5/7] missing NotificationTestManager --- .../remindme/NotificationTestManager.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 app/src/main/java/com/blanyal/remindme/NotificationTestManager.java diff --git a/app/src/main/java/com/blanyal/remindme/NotificationTestManager.java b/app/src/main/java/com/blanyal/remindme/NotificationTestManager.java new file mode 100644 index 0000000..796ba08 --- /dev/null +++ b/app/src/main/java/com/blanyal/remindme/NotificationTestManager.java @@ -0,0 +1,28 @@ +package com.blanyal.remindme; + +import android.app.Notification; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; + +import static junit.framework.Assert.assertTrue; + + +/** + * Created by theDarkKnight on 11/18/15. + */ +public class NotificationTestManager { + public void testNotify(Notification notification, Context context){ + Bundle mExtras = notification.extras; + CharSequence title = (CharSequence) mExtras.getCharSequence(Notification.EXTRA_TITLE); + CharSequence text = (CharSequence) mExtras.getCharSequence(Notification.EXTRA_TEXT); + if (text != null) { + assertTrue(text.equals("Title")); + assertTrue(title.equals(context.getResources().getString(R.string.app_name))); + } else { + assertTrue(false); + } + assertTrue(notification.tickerText.equals("Title")); + + } +} From 244b8df918c662607886b2138cf77954c23b5a0b Mon Sep 17 00:00:00 2001 From: ayenter Date: Thu, 3 Dec 2015 00:10:01 -0800 Subject: [PATCH 6/7] Fixed: Date Before Today and Click On Notification After Deleted --- .../blanyal/remindme/AlarmReceiverTest.java | 101 ------------------ .../remindme/ReminderEditActivityTest.java | 29 ----- .../com/blanyal/remindme/AlarmReceiver.java | 7 +- .../remindme/NotificationTestManager.java | 28 ----- .../blanyal/remindme/ReminderAddActivity.java | 101 +++++++++++------- .../blanyal/remindme/ReminderDatabase.java | 13 +++ .../remindme/ReminderEditActivity.java | 10 +- 7 files changed, 85 insertions(+), 204 deletions(-) delete mode 100644 app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java delete mode 100644 app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java delete mode 100644 app/src/main/java/com/blanyal/remindme/NotificationTestManager.java diff --git a/app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java b/app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java deleted file mode 100644 index 630f517..0000000 --- a/app/src/androidTest/java/com/blanyal/remindme/AlarmReceiverTest.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.blanyal.remindme; - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.service.notification.NotificationListenerService; -import android.service.notification.StatusBarNotification; -import android.test.AndroidTestCase; -import android.util.Log; - -import junit.framework.TestCase; - -import java.util.Calendar; - - - -/** - * Created by theDarkKnight on 11/10/15. - */ -public class AlarmReceiverTest extends AndroidTestCase { - - public static final String EXTRA_TEST_INFO = "Reminder_ID"; - - public void setUp() throws Exception { - super.setUp(); - - } - - public void test() throws Exception { - final int expected = 1; - final int reality = 5; - assertEquals(reality, reality); - } - - public void tearDown() throws Exception { - - } - - public void testOnReceive() throws Exception { - ReminderDatabase rb = new ReminderDatabase(getContext()); - int ID = rb.addReminder(new Reminder("Title", "12/11/2016", "3:59", "true", "1", "Hour", "true")); - Intent intent = new Intent(getContext(), AlarmReceiver.class); - intent.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, Integer.toString(ID)); - intent.putExtra(ReminderEditActivity.EXTRA_TEST_BOOL, "true"); - new AlarmReceiver().onReceive(getContext(), intent); - Intent i = new Intent(getContext(), ReminderEditActivity.class); - i.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, ID); - } - - public void testSetAlarm() throws Exception { - Calendar mCalendar = Calendar.getInstance(); - mCalendar.set(Calendar.MONTH, 1); - mCalendar.set(Calendar.YEAR, 2015); - mCalendar.set(Calendar.DAY_OF_MONTH, 20); - mCalendar.set(Calendar.HOUR_OF_DAY, 3); - mCalendar.set(Calendar.MINUTE, 55); - mCalendar.set(Calendar.SECOND, 0); - int ID = 1; - - boolean alarmUp = (PendingIntent.getBroadcast(getContext(), ID, - new Intent(getContext(), AlarmReceiver.class), - PendingIntent.FLAG_NO_CREATE) != null); - assertFalse(alarmUp); - - new AlarmReceiver().setAlarm(getContext(), mCalendar, ID); - - alarmUp = (PendingIntent.getBroadcast(getContext(), ID, - new Intent(getContext(), AlarmReceiver.class), - PendingIntent.FLAG_NO_CREATE) != null); - assertTrue(alarmUp); - } - - public void testSetRepeatAlarm() throws Exception { - Calendar mCalendar = Calendar.getInstance(); - mCalendar.set(Calendar.MONTH, 1); - mCalendar.set(Calendar.YEAR, 2015); - mCalendar.set(Calendar.DAY_OF_MONTH, 20); - mCalendar.set(Calendar.HOUR_OF_DAY, 3); - mCalendar.set(Calendar.MINUTE, 55); - mCalendar.set(Calendar.SECOND, 0); - int ID = 2; - - boolean alarmUp = (PendingIntent.getBroadcast(getContext(), ID, - new Intent(getContext(), AlarmReceiver.class), - PendingIntent.FLAG_NO_CREATE) != null); - assertFalse(alarmUp); - - new AlarmReceiver().setAlarm(getContext(), mCalendar, ID); - - alarmUp = (PendingIntent.getBroadcast(getContext(), ID, - new Intent(getContext(), AlarmReceiver.class), - PendingIntent.FLAG_NO_CREATE) != null); - assertTrue(alarmUp); - } - - public void testCancelAlarm() throws Exception { - //impossible to test - } -} - diff --git a/app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java b/app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java deleted file mode 100644 index b9291aa..0000000 --- a/app/src/androidTest/java/com/blanyal/remindme/ReminderEditActivityTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.blanyal.remindme; - -import android.content.Context; -import android.content.Intent; -import android.test.ActivityInstrumentationTestCase2; - -/** - * Created by theDarkKnight on 11/18/15. - */ -public class ReminderEditActivityTest extends ActivityInstrumentationTestCase2 { - public ReminderEditActivityTest(){ - super(ReminderEditActivity.class); - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - Context context = this.getInstrumentation().getTargetContext().getApplicationContext(); - Intent i = new Intent(context, ReminderEditActivity.class); - String mStringClickID = Integer.toString(-1); - i.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, mStringClickID); - setActivityIntent(i); - } - - public void testActivityExists() { - ReminderEditActivity activity = getActivity(); - assertNotNull(activity); - } -} diff --git a/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java b/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java index dd793e0..b804986 100644 --- a/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java +++ b/app/src/main/java/com/blanyal/remindme/AlarmReceiver.java @@ -41,7 +41,6 @@ public class AlarmReceiver extends WakefulBroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { int mReceivedID = Integer.parseInt(intent.getStringExtra(ReminderEditActivity.EXTRA_REMINDER_ID)); - String testBool = intent.getStringExtra(ReminderEditActivity.EXTRA_TEST_BOOL); // Get notification title from Reminder Database ReminderDatabase rb = new ReminderDatabase(context); @@ -64,13 +63,9 @@ public void onReceive(Context context, Intent intent) { .setContentIntent(mClick) .setAutoCancel(true) .setOnlyAlertOnce(true); - if (testBool.equals("true")){ - NotificationTestManager ntest = new NotificationTestManager(); - ntest.testNotify(mBuilder.build(), context); - } + NotificationManager nManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); nManager.notify(mReceivedID, mBuilder.build()); - } public void setAlarm(Context context, Calendar calendar, int ID) { diff --git a/app/src/main/java/com/blanyal/remindme/NotificationTestManager.java b/app/src/main/java/com/blanyal/remindme/NotificationTestManager.java deleted file mode 100644 index 796ba08..0000000 --- a/app/src/main/java/com/blanyal/remindme/NotificationTestManager.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.blanyal.remindme; - -import android.app.Notification; -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import static junit.framework.Assert.assertTrue; - - -/** - * Created by theDarkKnight on 11/18/15. - */ -public class NotificationTestManager { - public void testNotify(Notification notification, Context context){ - Bundle mExtras = notification.extras; - CharSequence title = (CharSequence) mExtras.getCharSequence(Notification.EXTRA_TITLE); - CharSequence text = (CharSequence) mExtras.getCharSequence(Notification.EXTRA_TEXT); - if (text != null) { - assertTrue(text.equals("Title")); - assertTrue(title.equals(context.getResources().getString(R.string.app_name))); - } else { - assertTrue(false); - } - assertTrue(notification.tickerText.equals("Title")); - - } -} diff --git a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java index f09ee87..0a1f74e 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java @@ -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; @@ -39,6 +40,7 @@ import com.wdullaer.materialdatetimepicker.time.TimePickerDialog; import java.util.Calendar; +import java.util.Date; public class ReminderAddActivity extends AppCompatActivity implements @@ -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"); @@ -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"); } @@ -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)"); @@ -331,48 +333,69 @@ public void onClick(DialogInterface dialog, int whichButton) { alert.show(); } + 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 { + Toast.makeText(getApplicationContext(), "Alarm Time and Date Must Be After Current Time and Date", + Toast.LENGTH_LONG).show(); + } } // On pressing the back button diff --git a/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java b/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java index f71c517..5ffd31e 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java @@ -98,6 +98,19 @@ public int addReminder(Reminder reminder){ return (int) ID; } + 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(); diff --git a/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java index f965d20..3f64663 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java @@ -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; @@ -71,7 +72,6 @@ public class ReminderEditActivity extends AppCompatActivity implements // Constant Intent String public static final String EXTRA_REMINDER_ID = "Reminder_ID"; - public static final String EXTRA_TEST_BOOL = "false"; // Values for orientation change private static final String KEY_TITLE = "title_key"; @@ -133,6 +133,14 @@ public void afterTextChanged(Editable s) {} // Get reminder using reminder id rb = new ReminderDatabase(this); + Log.d("NOTE", "rb made"); + if (!rb.checkForID(mReceivedID)){ + Toast.makeText(getApplicationContext(), "Alarm Does Not Exist Anymore", + Toast.LENGTH_SHORT).show(); + finish(); + return; + //Log.d("NOTE", "TRIED CANCEL"); + } mReceivedReminder = rb.getReminder(mReceivedID); // Get values from reminder From 0866e0a0f3299bcd6cda141f74c9e509883c7052 Mon Sep 17 00:00:00 2001 From: ayenter Date: Thu, 3 Dec 2015 00:30:59 -0800 Subject: [PATCH 7/7] Fixed: Date Before Today and Click On Notification After Deleted --- .../blanyal/remindme/ReminderAddActivity.java | 2 + .../blanyal/remindme/ReminderDatabase.java | 2 +- .../remindme/ReminderEditActivity.java | 119 ++++++++++-------- 3 files changed, 73 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java index 0a1f74e..441c227 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderAddActivity.java @@ -333,6 +333,7 @@ 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(); @@ -393,6 +394,7 @@ public void saveReminder(){ 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(); } diff --git a/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java b/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java index 5ffd31e..a635785 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderDatabase.java @@ -98,9 +98,9 @@ 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){ diff --git a/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java b/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java index 3f64663..4d18428 100644 --- a/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java +++ b/app/src/main/java/com/blanyal/remindme/ReminderEditActivity.java @@ -41,6 +41,7 @@ import com.wdullaer.materialdatetimepicker.time.TimePickerDialog; import java.util.Calendar; +import java.util.Date; public class ReminderEditActivity extends AppCompatActivity implements @@ -133,13 +134,11 @@ public void afterTextChanged(Editable s) {} // Get reminder using reminder id rb = new ReminderDatabase(this); - Log.d("NOTE", "rb made"); if (!rb.checkForID(mReceivedID)){ Toast.makeText(getApplicationContext(), "Alarm Does Not Exist Anymore", Toast.LENGTH_SHORT).show(); finish(); return; - //Log.d("NOTE", "TRIED CANCEL"); } mReceivedReminder = rb.getReminder(mReceivedID); @@ -363,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)"); @@ -379,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); + + // 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 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 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(); + // 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