AndroidAPS/app/src/main/java/info/nightscout/androidaps/receivers/NSAlarmReceiver.java

53 lines
2 KiB
Java
Raw Normal View History

2017-06-11 17:22:54 +02:00
package info.nightscout.androidaps.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
2017-06-11 17:22:54 +02:00
import info.nightscout.androidaps.MainApp;
2018-07-30 15:46:20 +02:00
import info.nightscout.androidaps.logging.L;
2019-02-28 23:16:50 +01:00
import info.nightscout.androidaps.plugins.general.nsclient.data.NSAlarm;
import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
2018-07-30 15:46:20 +02:00
import info.nightscout.androidaps.services.Intents;
2017-06-11 17:22:54 +02:00
public class NSAlarmReceiver extends BroadcastReceiver {
2018-07-30 15:46:20 +02:00
private static Logger log = LoggerFactory.getLogger(L.CORE);
2017-06-11 17:22:54 +02:00
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null)
return;
Bundle bundle = intent.getExtras();
String data = bundle.getString("data");
JSONObject json = null;
try {
json = new JSONObject(data);
} catch (JSONException e) {
log.error("Unhandled exception", e);
2017-06-11 17:22:54 +02:00
return;
}
NSAlarm nsAlarm = new NSAlarm(json);
switch (intent.getAction()) {
case Intents.ACTION_ANNOUNCEMENT:
case Intents.ACTION_ALARM:
case Intents.ACTION_URGENT_ALARM:
Notification notification = new Notification(nsAlarm);
2017-06-21 07:28:04 +02:00
if (notification.isEnabled())
MainApp.bus().post(new EventNewNotification(notification));
2017-06-11 17:22:54 +02:00
break;
case Intents.ACTION_CLEAR_ALARM:
MainApp.bus().post(new EventDismissNotification(Notification.NSALARM));
MainApp.bus().post(new EventDismissNotification(Notification.NSURGENTALARM));
break;
}
}
}