/*
This file is part of Project MAXS.
MAXS and its modules is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
MAXS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with MAXS. If not, see <http://www.gnu.org/licenses/>.
*/
package org.projectmaxs.module.smssend.commands;
import org.projectmaxs.module.smssend.ModuleService;
import org.projectmaxs.shared.global.Message;
import org.projectmaxs.shared.global.messagecontent.CommandHelp.ArgType;
import org.projectmaxs.shared.global.messagecontent.Contact;
import org.projectmaxs.shared.global.messagecontent.ContactNumber;
import org.projectmaxs.shared.mainmodule.Command;
import org.projectmaxs.shared.mainmodule.RecentContact;
import org.projectmaxs.shared.module.ContactUtil;
import org.projectmaxs.shared.module.MAXSModuleIntentService;
import org.projectmaxs.shared.module.RecentContactUtil;
public class ReplyTo extends AbstractSmsSendCommand {
public ReplyTo() {
super(ModuleService.sREPLY, "to", false, true);
setHelp(ArgType.NONE, "Send a SMS message to the recent contact");
}
@Override
public Message execute(String arguments, Command command, MAXSModuleIntentService service)
throws Throwable {
super.execute(arguments, command, service);
Contact contact = null;
RecentContact recentContact = RecentContactUtil.getRecentContact(mService);
if (recentContact == null) return new Message("No recent contact");
if (recentContact.mContact != null) {
contact = recentContact.mContact;
} else {
contact = new Contact();
}
if (ContactNumber.isNumber(recentContact.mContactInfo)) {
contact.addNumber(recentContact.mContactInfo);
} else {
// If the contact info is not a number, e.g. because we received
// an SMS with a company name as sender, then try to fill in the
// missing information
ContactUtil.getInstance(mService).lookupContactNumbersFor(contact);
if (contact.hasNumbers()) {
return new Message("No number for contact");
}
}
String text = command.getArgs();
String receiver = contact.getBestNumber(ContactNumber.NumberType.MOBILE).getNumber();
return sendSms(receiver, text, command.getId(), contact);
}
}