diff --git a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmAlertActivity.java b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmAlertActivity.java index df30cb3..30ac659 100644 --- a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmAlertActivity.java +++ b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmAlertActivity.java @@ -45,7 +45,6 @@ public class AlarmAlertActivity extends Activity { setContentView(R.layout.alarm_alert); notifyIntent = new Intent(getApplicationContext(), AlarmNotify.class); - // Disable any current notifications stopService(notifyIntent); diff --git a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmNotify.java b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmNotify.java index 1e86488..5f5c976 100644 --- a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmNotify.java +++ b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmNotify.java @@ -15,7 +15,7 @@ import android.util.Log; public class AlarmNotify extends Service { public static final int notifyID = 1; - private volatile boolean threadRunning = false; + public volatile boolean notificationRunning = false; @Override public IBinder onBind(Intent intent) { @@ -25,7 +25,8 @@ public class AlarmNotify extends Service { @Override public void onDestroy() { // If the notification is cancelled, stop updating. - threadRunning = false; + notificationRunning = false; + Log.d("AlarmNotify", "1: Setting notificationRunning to false"); // Remove the notification in the notification bar NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.cancel(notifyID); @@ -41,7 +42,6 @@ public class AlarmNotify extends Service { // convert gracePeriod to milliseconds and calculate when it'll fire final long endTime = System.currentTimeMillis() + (gracePeriod * 60 * 1000); - //Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.alarm_notification); Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_grey); final NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); final Notification.Builder notification = new Notification.Builder(this) @@ -50,13 +50,12 @@ public class AlarmNotify extends Service { .setSmallIcon(R.drawable.alarm_notification) .setLargeIcon(bm) .setOnlyAlertOnce(true) - .setAutoCancel(true) + .setAutoCancel(false) .setPriority(Notification.PRIORITY_HIGH); - //.setContentText(String.format(getString(R.string.notificationText), phoneNumber) + MainActivity.MinutesToGracePeriodStr(gracePeriod)) // Set up dismiss action Intent cancellerIntent = new Intent(getBaseContext(), CancelGraceReceiver.class); - PendingIntent cancellerPendingIntent = PendingIntent.getBroadcast(getBaseContext(), MainActivity.CANCEL_GRACE_REQUEST, cancellerIntent, 0); + PendingIntent cancellerPendingIntent = PendingIntent.getBroadcast(getBaseContext(), MainActivity.CANCEL_GRACE_REQUEST, cancellerIntent, PendingIntent.FLAG_CANCEL_CURRENT); // Cancel the grace period if the user clears the notification notification.setDeleteIntent(cancellerPendingIntent); @@ -65,11 +64,14 @@ public class AlarmNotify extends Service { // Allow the user to cancel by selecting the ContentText or ContentTitle notification.setContentIntent(cancellerPendingIntent); - // TODO load alert activity (without sound or vibration) on select? This would allow the user to test competence + /** + * TODO load alert activity (without sound or vibration) on select? + * TODO This would allow the user to test competence Intent alertActivityIntent = new Intent(this, AlarmAlertActivity.class); alertActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - //notification.setContentIntent(alertActivityIntent); + notification.setContentIntent(alertActivityIntent); + */ nm.cancel(notifyID); nm.notify(notifyID, notification.build()); @@ -77,7 +79,8 @@ public class AlarmNotify extends Service { new Thread(new Runnable() { @Override public void run() { - threadRunning = true; + notificationRunning = true; + Log.d("AlarmNotify", "2: Setting notificationRunning to true"); int max = 1000; // Convert endTime from milliseconds to seconds, and translate to time remaining int secondsLeft = (int) ((endTime - System.currentTimeMillis())) / (1000); @@ -87,7 +90,8 @@ public class AlarmNotify extends Service { while (progress < max) { // Stop the thread if cancelled elsewhere - if (!threadRunning) { + Log.d("AlarmNotify", "notificationRunning is "+notificationRunning); + if (!notificationRunning) { return; } int minutesLeft = secondsLeft / 60; diff --git a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmReceiver.java b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmReceiver.java index 85a092a..9718223 100644 --- a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmReceiver.java +++ b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/AlarmReceiver.java @@ -24,11 +24,6 @@ public class AlarmReceiver extends BroadcastReceiver { Boolean alarmActive = sharedPref.getBoolean(context.getString(R.string.AlarmActivePref), true); if (alarmActive) { - - // Cancel notification if it's not already cancelled. - NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - nm.cancel(AlarmNotify.notifyID); - // Set a grace period alarm to send SMS int gracePeriod = sharedPref.getInt(context.getString(R.string.GracePeriodPref), 60); diff --git a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/CancelGraceReceiver.java b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/CancelGraceReceiver.java index bd486b2..5f23424 100644 --- a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/CancelGraceReceiver.java +++ b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/CancelGraceReceiver.java @@ -12,10 +12,6 @@ import android.widget.Toast; public class CancelGraceReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - // Cancel notification if it's not already cancelled. - NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - nm.cancel(AlarmNotify.notifyID); - AlarmManager graceManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent graceIntent = new Intent(context, GraceReceiver.class); PendingIntent gracePendingIntent = PendingIntent.getBroadcast(context, MainActivity.GRACE_REQUEST, graceIntent, 0); diff --git a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/MainActivity.java b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/MainActivity.java index 8789a5c..cefa5b1 100644 --- a/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/MainActivity.java +++ b/HypoAlarm/src/main/java/za/org/treehouse/hypoalarm/MainActivity.java @@ -3,7 +3,6 @@ package za.org.treehouse.hypoalarm; import android.app.AlarmManager; import android.app.AlertDialog; import android.app.Dialog; -import android.app.NotificationManager; import android.app.PendingIntent; import android.app.TimePickerDialog; import android.content.ComponentName; @@ -115,10 +114,6 @@ public class MainActivity extends ActionBarActivity { editor.commit(); if (!b) { - // Cancel notification if it's not already cancelled. - NotificationManager nm = (NotificationManager) getActivity().getSystemService(NOTIFICATION_SERVICE); - nm.cancel(AlarmNotify.notifyID); - // Cancel any current alarm alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); Intent alarmIntent = new Intent(getActivity(), AlarmReceiver.class); @@ -275,8 +270,6 @@ public class MainActivity extends ActionBarActivity { public Dialog onCreateDialog(Bundle savedInstanceState) { sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity()); // Use the current set time as the default value for the picker - //String defaultTimeStr = alarmTimeButton.getText().toString(); - //String alarmTimeStr = sharedPref.getString(getString(R.string.AlarmTimePref), defaultTimeStr); String alarmTimeStr = alarmTimeButton.getText().toString(); Calendar cal = TimeStringToCalendar(alarmTimeStr); int hour = cal.get(Calendar.HOUR_OF_DAY); diff --git a/HypoAlarm/src/main/res/drawable-hdpi/ic_grayscale.png b/HypoAlarm/src/main/res/drawable-hdpi/ic_launcher_grey.png similarity index 100% rename from HypoAlarm/src/main/res/drawable-hdpi/ic_grayscale.png rename to HypoAlarm/src/main/res/drawable-hdpi/ic_launcher_grey.png diff --git a/HypoAlarm/src/main/res/drawable-mdpi/ic_grayscale.png b/HypoAlarm/src/main/res/drawable-mdpi/ic_launcher_grey.png similarity index 100% rename from HypoAlarm/src/main/res/drawable-mdpi/ic_grayscale.png rename to HypoAlarm/src/main/res/drawable-mdpi/ic_launcher_grey.png diff --git a/HypoAlarm/src/main/res/drawable-xhdpi/ic_grayscale.png b/HypoAlarm/src/main/res/drawable-xhdpi/ic_launcher_grey.png similarity index 100% rename from HypoAlarm/src/main/res/drawable-xhdpi/ic_grayscale.png rename to HypoAlarm/src/main/res/drawable-xhdpi/ic_launcher_grey.png diff --git a/HypoAlarm/src/main/res/drawable-xxhdpi/ic_grayscale.png b/HypoAlarm/src/main/res/drawable-xxhdpi/ic_grayscale.png deleted file mode 100644 index 12a2c1b..0000000 Binary files a/HypoAlarm/src/main/res/drawable-xxhdpi/ic_grayscale.png and /dev/null differ