AndroidAPS/app/src/main/java/info/nightscout/androidaps/receivers/NSAlarmReceiver.java
2019-02-28 23:16:50 +01:00

53 lines
2 KiB
Java

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;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.logging.L;
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;
import info.nightscout.androidaps.services.Intents;
public class NSAlarmReceiver extends BroadcastReceiver {
private static Logger log = LoggerFactory.getLogger(L.CORE);
@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);
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);
if (notification.isEnabled())
MainApp.bus().post(new EventNewNotification(notification));
break;
case Intents.ACTION_CLEAR_ALARM:
MainApp.bus().post(new EventDismissNotification(Notification.NSALARM));
MainApp.bus().post(new EventDismissNotification(Notification.NSURGENTALARM));
break;
}
}
}