wear: show bolusprogress again and make it cancellable

This commit is contained in:
AdrianLxM 2021-01-09 00:39:33 +01:00
parent 819a3b7d43
commit c7ed508392
2 changed files with 23 additions and 12 deletions

View file

@ -80,11 +80,12 @@ public class ListenerService extends WearableListenerService implements GoogleAp
private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA"; private static final String ACTION_RESEND_BULK = "com.dexdrip.stephenblack.nightwatch.RESEND_BULK_DATA";
private static final String AAPS_NOTIFY_CHANNEL_ID = "AndroidAPS-Openloop"; private static final String AAPS_NOTIFY_CHANNEL_ID_OPENLOOP = "AndroidAPS-Openloop";
private static final String AAPS_NOTIFY_CHANNEL_ID_BOLUSPROGRESS = "AndroidAPS-bolus-progress";
GoogleApiClient googleApiClient; GoogleApiClient googleApiClient;
private long lastRequest = 0; private long lastRequest = 0;
private DismissThread confirmThread;
private DismissThread bolusprogressThread; private DismissThread bolusprogressThread;
private static final String TAG = "ListenerService"; private static final String TAG = "ListenerService";
@ -559,7 +560,7 @@ public class ListenerService extends WearableListenerService implements GoogleAp
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "AAPS Open Loop"; CharSequence name = "AAPS Open Loop";
String description = "Open Loop request notiffication";//getString(R.string.channel_description); String description = "Open Loop request notiffication";//getString(R.string.channel_description);
NotificationChannel channel = new NotificationChannel(AAPS_NOTIFY_CHANNEL_ID, name, NotificationManager.IMPORTANCE_HIGH); NotificationChannel channel = new NotificationChannel(AAPS_NOTIFY_CHANNEL_ID_OPENLOOP, name, NotificationManager.IMPORTANCE_HIGH);
channel.setDescription(description); channel.setDescription(description);
channel.enableVibration(true); channel.enableVibration(true);
@ -570,7 +571,7 @@ public class ListenerService extends WearableListenerService implements GoogleAp
} }
NotificationCompat.Builder builder = NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, AAPS_NOTIFY_CHANNEL_ID); new NotificationCompat.Builder(this, AAPS_NOTIFY_CHANNEL_ID_OPENLOOP);
builder = builder.setSmallIcon(R.drawable.notif_icon) builder = builder.setSmallIcon(R.drawable.notif_icon)
.setContentTitle(title) .setContentTitle(title)
@ -605,6 +606,20 @@ public class ListenerService extends WearableListenerService implements GoogleAp
} }
private void showBolusProgress(int progresspercent, String progresstatus) { private void showBolusProgress(int progresspercent, String progresstatus) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "AAPS Bolus Progress";
String description = "Bolus progress and cancel";
NotificationChannel channel = new NotificationChannel(AAPS_NOTIFY_CHANNEL_ID_BOLUSPROGRESS, name, NotificationManager.IMPORTANCE_HIGH);
channel.setDescription(description);
channel.enableVibration(true);
// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
Intent cancelIntent = new Intent(this, ListenerService.class); Intent cancelIntent = new Intent(this, ListenerService.class);
cancelIntent.setAction(ACTION_CANCELBOLUS); cancelIntent.setAction(ACTION_CANCELBOLUS);
PendingIntent cancelPendingIntent = PendingIntent.getService(this, 0, cancelIntent, 0); PendingIntent cancelPendingIntent = PendingIntent.getService(this, 0, cancelIntent, 0);
@ -618,11 +633,13 @@ public class ListenerService extends WearableListenerService implements GoogleAp
vibratePattern = new long[]{0, 1, 1000}; vibratePattern = new long[]{0, 1, 1000};
} }
// TODO: proper channel. Does cancel work?
NotificationCompat.Builder notificationBuilder = NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this) new NotificationCompat.Builder(this, AAPS_NOTIFY_CHANNEL_ID_OPENLOOP)
.setSmallIcon(R.drawable.ic_icon) .setSmallIcon(R.drawable.ic_icon)
.setContentTitle("Bolus Progress") .setContentTitle("Bolus Progress")
.setContentText(progresspercent + "% - " + progresstatus) .setContentText(progresspercent + "% - " + progresstatus)
.setSubText("press to cancel")
.setContentIntent(cancelPendingIntent) .setContentIntent(cancelPendingIntent)
.setPriority(NotificationCompat.PRIORITY_MAX) .setPriority(NotificationCompat.PRIORITY_MAX)
.setVibrate(vibratePattern) .setVibrate(vibratePattern)
@ -631,9 +648,6 @@ public class ListenerService extends WearableListenerService implements GoogleAp
NotificationManagerCompat notificationManager = NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(this); NotificationManagerCompat.from(this);
if(confirmThread != null){
confirmThread.invalidate();
}
notificationManager.notify(BOLUS_PROGRESS_NOTIF_ID, notificationBuilder.build()); notificationManager.notify(BOLUS_PROGRESS_NOTIF_ID, notificationBuilder.build());
notificationManager.cancel(CONFIRM_NOTIF_ID); // multiple watch setup notificationManager.cancel(CONFIRM_NOTIF_ID); // multiple watch setup
@ -656,9 +670,6 @@ public class ListenerService extends WearableListenerService implements GoogleAp
} }
private void scheduleDismissBolusprogress(final int seconds) { private void scheduleDismissBolusprogress(final int seconds) {
if(confirmThread != null){
confirmThread.invalidate();
}
bolusprogressThread = new DismissThread(BOLUS_PROGRESS_NOTIF_ID, seconds); bolusprogressThread = new DismissThread(BOLUS_PROGRESS_NOTIF_ID, seconds);
bolusprogressThread.start(); bolusprogressThread.start();
} }

View file

@ -93,7 +93,7 @@ public class CPPActivity extends ViewSelectorActivity {
if (editPercentage != null){ if (editPercentage != null){
def = SafeParse.stringToDouble(editPercentage.editText.getText().toString()); def = SafeParse.stringToDouble(editPercentage.editText.getText().toString());
} }
editPercentage = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 50d, 150d, 1d, new DecimalFormat("0"), false); editPercentage = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 30d, 250d, 1d, new DecimalFormat("0"), false);
setLabelToPlusMinusView(view, aaps.gs(R.string.action_percentage)); setLabelToPlusMinusView(view, aaps.gs(R.string.action_percentage));
container.addView(view); container.addView(view);
return view; return view;