ActionSendSMS improvement

This commit is contained in:
Milos Kozak 2019-10-04 19:34:12 +02:00
parent e12217ae69
commit 532a7e3741
4 changed files with 27 additions and 14 deletions

View file

@ -31,14 +31,14 @@ public class ActionSendSMS extends Action {
@Override
public String shortDescription() {
return MainApp.gs(R.string.sendsmsactionlabel);
return MainApp.gs(R.string.sendsmsactionlabel, text.getValue());
}
@Override
public void doAction(Callback callback) {
SmsCommunicatorPlugin.getPlugin().sendNotificationToAllNumbers(text.getValue());
boolean result = SmsCommunicatorPlugin.getPlugin().sendNotificationToAllNumbers(text.getValue());
if (callback != null)
callback.result(new PumpEnactResult().success(true).comment(R.string.ok)).run();
callback.result(new PumpEnactResult().success(result).comment(result ? R.string.ok : R.string.danar_error)).run();
}

View file

@ -33,11 +33,12 @@ public class Notification {
public static final int OLD_NSCLIENT = 8;
public static final int OLD_NS = 9;
public static final int INVALID_PHONE_NUMBER = 10;
public static final int APPROACHING_DAILY_LIMIT = 11;
public static final int NSCLIENT_NO_WRITE_PERMISSION = 12;
public static final int MISSING_SMS_PERMISSION = 13;
public static final int PUMPERROR = 14;
public static final int WRONGSERIALNUMBER = 15;
public static final int INVALID_MESSAGE_BODY = 11;
public static final int APPROACHING_DAILY_LIMIT = 12;
public static final int NSCLIENT_NO_WRITE_PERMISSION = 13;
public static final int MISSING_SMS_PERMISSION = 14;
public static final int PUMPERROR = 15;
public static final int WRONGSERIALNUMBER = 16;
public static final int NSANNOUNCEMENT = 18;
public static final int NSALARM = 19;

View file

@ -737,11 +737,13 @@ public class SmsCommunicatorPlugin extends PluginBase {
sendSMS(new Sms(receivedSms.phoneNumber, R.string.wrongformat));
}
public void sendNotificationToAllNumbers(String text) {
public boolean sendNotificationToAllNumbers(String text) {
boolean result = true;
for (int i = 0; i < allowedNumbers.size(); i++) {
Sms sms = new Sms(allowedNumbers.get(i), text);
sendSMS(sms);
result = result && sendSMS(sms);
}
return result;
}
private void sendSMSToAllNumbers(Sms sms) {
@ -751,7 +753,7 @@ public class SmsCommunicatorPlugin extends PluginBase {
}
}
void sendSMS(Sms sms) {
boolean sendSMS(Sms sms) {
SmsManager smsManager = SmsManager.getDefault();
sms.text = stripAccents(sms.text);
@ -768,13 +770,22 @@ public class SmsCommunicatorPlugin extends PluginBase {
messages.add(sms);
} catch (IllegalArgumentException e) {
if (e.getMessage().equals("Invalid message body")) {
Notification notification = new Notification(Notification.INVALID_MESSAGE_BODY, MainApp.gs(R.string.smscommunicator_messagebody), Notification.NORMAL);
RxBus.INSTANCE.send(new EventNewNotification(notification));
return false;
} else {
Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.gs(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL);
RxBus.INSTANCE.send(new EventNewNotification(notification));
return false;
}
} catch (java.lang.SecurityException e) {
Notification notification = new Notification(Notification.MISSING_SMS_PERMISSION, MainApp.gs(R.string.smscommunicator_missingsmspermission), Notification.NORMAL);
RxBus.INSTANCE.send(new EventNewNotification(notification));
return false;
}
MainApp.bus().post(new EventSmsCommunicatorUpdateGui());
return true;
}
private String generatePasscode() {

View file

@ -1574,7 +1574,7 @@
<string name="medtronic_cmd_desc_set_bolus">Set Bolus</string>
<string name="profilename">Change profile to</string>
<string name="changengetoprofilename">Change profile to %1$s</string>
<string name="sendsmsactionlabel">Send SMS</string>
<string name="sendsmsactionlabel">Send SMS: %1$s</string>
<string name="sendsmsactiondescription">Send SMS to all numbers in preferences</string>
<string name="sendsmsactiontext">Send SMS with text</string>
@ -1594,5 +1594,6 @@
<string name="close">Close</string>
<string name="increasingmaxbasal">Increasing max basal value because setting is lower than your max basal in profile</string>
<string name="smscommunicator_messagebody">Invalid message body</string>
</resources>