Dismiss notification service
This commit is contained in:
parent
87ea412516
commit
d990d59ddf
|
@ -0,0 +1,33 @@
|
||||||
|
package info.nightscout.androidaps.plugins.Overview;
|
||||||
|
|
||||||
|
import android.app.IntentService;
|
||||||
|
import android.app.PendingIntent;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
|
import info.nightscout.androidaps.MainApp;
|
||||||
|
import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification;
|
||||||
|
import info.nightscout.utils.SafeParse;
|
||||||
|
|
||||||
|
public class DismissNotificationService extends IntentService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an IntentService. Invoked by your subclass's constructor.
|
||||||
|
*
|
||||||
|
* @param name Used to name the worker thread, important only for debugging.
|
||||||
|
*/
|
||||||
|
public DismissNotificationService(String name) {
|
||||||
|
super(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onHandleIntent(@Nullable Intent intent) {
|
||||||
|
MainApp.bus().post(new EventDismissNotification(intent.getIntExtra("alertID", -1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PendingIntent deleteIntent(int id){
|
||||||
|
Intent intent = new Intent(MainApp.instance(), DismissNotificationService.class);
|
||||||
|
intent.putExtra("alertID", id);
|
||||||
|
return PendingIntent.getService(MainApp.instance(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package info.nightscout.androidaps.plugins.Overview;
|
package info.nightscout.androidaps.plugins.Overview;
|
||||||
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
|
import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
@ -22,7 +23,6 @@ import info.nightscout.androidaps.MainApp;
|
||||||
import info.nightscout.androidaps.R;
|
import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.Services.AlarmSoundService;
|
import info.nightscout.androidaps.Services.AlarmSoundService;
|
||||||
import info.nightscout.androidaps.plugins.Wear.WearPlugin;
|
import info.nightscout.androidaps.plugins.Wear.WearPlugin;
|
||||||
//Added by Rumen for snooze time
|
|
||||||
import info.nightscout.utils.SP;
|
import info.nightscout.utils.SP;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,22 +57,26 @@ public class NotificationStore {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
store.add(n);
|
||||||
|
|
||||||
if (SP.getBoolean(MainApp.sResources.getString(R.string.key_raise_urgent_alarms_as_android_notification), false)
|
if (SP.getBoolean(MainApp.sResources.getString(R.string.key_raise_urgent_alarms_as_android_notification), false)
|
||||||
&& n.level == Notification.URGENT) {
|
&& n.level == Notification.URGENT) {
|
||||||
raiseSystemNotification(n);
|
raiseSystemNotification(n);
|
||||||
} else if (n.soundId != null) {
|
} else {
|
||||||
|
if (n.soundId != null) {
|
||||||
Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class);
|
Intent alarm = new Intent(MainApp.instance().getApplicationContext(), AlarmSoundService.class);
|
||||||
alarm.putExtra("soundid", n.soundId);
|
alarm.putExtra("soundid", n.soundId);
|
||||||
MainApp.instance().startService(alarm);
|
MainApp.instance().startService(alarm);
|
||||||
}
|
}
|
||||||
|
|
||||||
store.add(n);
|
//Only pipe through to wear if no system notification is raised (should show on wear anyways)
|
||||||
|
|
||||||
WearPlugin wearPlugin = MainApp.getSpecificPlugin(WearPlugin.class);
|
WearPlugin wearPlugin = MainApp.getSpecificPlugin(WearPlugin.class);
|
||||||
if(wearPlugin!= null && wearPlugin.isEnabled()) {
|
if(wearPlugin!= null && wearPlugin.isEnabled()) {
|
||||||
wearPlugin.overviewNotification(n.id, "OverviewNotification:\n" + n.text);
|
wearPlugin.overviewNotification(n.id, "OverviewNotification:\n" + n.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Collections.sort(store, new NotificationComparator());
|
Collections.sort(store, new NotificationComparator());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,10 +93,12 @@ public class NotificationStore {
|
||||||
.setContentText(n.text)
|
.setContentText(n.text)
|
||||||
.setPriority(NotificationCompat.PRIORITY_HIGH)
|
.setPriority(NotificationCompat.PRIORITY_HIGH)
|
||||||
.setVibrate(new long[] { 1000, 1000, 1000, 1000})
|
.setVibrate(new long[] { 1000, 1000, 1000, 1000})
|
||||||
.setSound(sound, AudioAttributes.USAGE_ALARM);
|
.setSound(sound, AudioAttributes.USAGE_ALARM)
|
||||||
|
.setDeleteIntent(DismissNotificationService.deleteIntent(n.id));
|
||||||
mgr.notify(n.id, notificationBuilder.build());
|
mgr.notify(n.id, notificationBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean remove(int id) {
|
public boolean remove(int id) {
|
||||||
for (int i = 0; i < store.size(); i++) {
|
for (int i = 0; i < store.size(); i++) {
|
||||||
if (get(i).id == id) {
|
if (get(i).id == id) {
|
||||||
|
@ -131,3 +137,4 @@ public class NotificationStore {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue