48 lines
2.0 KiB
Java
48 lines
2.0 KiB
Java
package za.org.treehouse.hypoalarm;
|
|
|
|
import android.app.AlarmManager;
|
|
import android.app.PendingIntent;
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
import android.os.Build;
|
|
import android.preference.PreferenceManager;
|
|
import android.util.Log;
|
|
import android.widget.Toast;
|
|
|
|
import java.util.Calendar;
|
|
|
|
public class CancelAlarmReceiver extends BroadcastReceiver {
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
|
|
String alarmTimeStr = sharedPref.getString(context.getString(R.string.AlarmTimePref), null);
|
|
|
|
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
|
Intent alarmIntent = new Intent(context, AlarmReceiver.class);
|
|
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(context, MainActivity.ALARM_REQUEST, alarmIntent, 0);
|
|
alarmManager.cancel(alarmPendingIntent);
|
|
Log.d("CancelAlarmReceiver", "Cancelled grace alarm");
|
|
|
|
// Reset alarm for tomorrow
|
|
|
|
// Reset for tomorrow; as of API 19, setRepeating() is inexact, so we use setExact()
|
|
Calendar cal = MainActivity.TimeStringToCalendar(alarmTimeStr);
|
|
// Set for tomorrow
|
|
cal.add(Calendar.DAY_OF_MONTH, 1);
|
|
if (Build.VERSION.SDK_INT >= 19) {
|
|
alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), alarmPendingIntent);
|
|
} else {
|
|
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), alarmPendingIntent);
|
|
}
|
|
Log.d("CancelAlarmReceiver", "Resetting alarm for " + MainActivity.debugDate(cal));
|
|
|
|
// Display toast
|
|
Toast.makeText(context, context.getString(R.string.alarmCancelToast), Toast.LENGTH_LONG).show();
|
|
|
|
// Remove notification
|
|
context.stopService(new Intent(context, PreAlarmNotify.class));
|
|
|
|
}
|
|
} |