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 @Override
public String shortDescription() { public String shortDescription() {
return MainApp.gs(R.string.sendsmsactionlabel); return MainApp.gs(R.string.sendsmsactionlabel, text.getValue());
} }
@Override @Override
public void doAction(Callback callback) { public void doAction(Callback callback) {
SmsCommunicatorPlugin.getPlugin().sendNotificationToAllNumbers(text.getValue()); boolean result = SmsCommunicatorPlugin.getPlugin().sendNotificationToAllNumbers(text.getValue());
if (callback != null) 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_NSCLIENT = 8;
public static final int OLD_NS = 9; public static final int OLD_NS = 9;
public static final int INVALID_PHONE_NUMBER = 10; public static final int INVALID_PHONE_NUMBER = 10;
public static final int APPROACHING_DAILY_LIMIT = 11; public static final int INVALID_MESSAGE_BODY = 11;
public static final int NSCLIENT_NO_WRITE_PERMISSION = 12; public static final int APPROACHING_DAILY_LIMIT = 12;
public static final int MISSING_SMS_PERMISSION = 13; public static final int NSCLIENT_NO_WRITE_PERMISSION = 13;
public static final int PUMPERROR = 14; public static final int MISSING_SMS_PERMISSION = 14;
public static final int WRONGSERIALNUMBER = 15; public static final int PUMPERROR = 15;
public static final int WRONGSERIALNUMBER = 16;
public static final int NSANNOUNCEMENT = 18; public static final int NSANNOUNCEMENT = 18;
public static final int NSALARM = 19; 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)); 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++) { for (int i = 0; i < allowedNumbers.size(); i++) {
Sms sms = new Sms(allowedNumbers.get(i), text); Sms sms = new Sms(allowedNumbers.get(i), text);
sendSMS(sms); result = result && sendSMS(sms);
} }
return result;
} }
private void sendSMSToAllNumbers(Sms sms) { 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(); SmsManager smsManager = SmsManager.getDefault();
sms.text = stripAccents(sms.text); sms.text = stripAccents(sms.text);
@ -768,13 +770,22 @@ public class SmsCommunicatorPlugin extends PluginBase {
messages.add(sms); messages.add(sms);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.gs(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL); if (e.getMessage().equals("Invalid message body")) {
RxBus.INSTANCE.send(new EventNewNotification(notification)); 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) { } catch (java.lang.SecurityException e) {
Notification notification = new Notification(Notification.MISSING_SMS_PERMISSION, MainApp.gs(R.string.smscommunicator_missingsmspermission), Notification.NORMAL); Notification notification = new Notification(Notification.MISSING_SMS_PERMISSION, MainApp.gs(R.string.smscommunicator_missingsmspermission), Notification.NORMAL);
RxBus.INSTANCE.send(new EventNewNotification(notification)); RxBus.INSTANCE.send(new EventNewNotification(notification));
return false;
} }
MainApp.bus().post(new EventSmsCommunicatorUpdateGui()); MainApp.bus().post(new EventSmsCommunicatorUpdateGui());
return true;
} }
private String generatePasscode() { private String generatePasscode() {

View file

@ -1574,7 +1574,7 @@
<string name="medtronic_cmd_desc_set_bolus">Set Bolus</string> <string name="medtronic_cmd_desc_set_bolus">Set Bolus</string>
<string name="profilename">Change profile to</string> <string name="profilename">Change profile to</string>
<string name="changengetoprofilename">Change profile to %1$s</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="sendsmsactiondescription">Send SMS to all numbers in preferences</string>
<string name="sendsmsactiontext">Send SMS with text</string> <string name="sendsmsactiontext">Send SMS with text</string>
@ -1594,5 +1594,6 @@
<string name="close">Close</string> <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="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> </resources>