4
0
mirror of https://github.com/cwinfo/envayasms.git synced 2025-07-13 01:36:27 +00:00

automatic failover between wifi/mobile if server cannot be reached; send timestamp of incoming message to server

This commit is contained in:
Jesse Young
2011-09-29 16:02:37 -07:00
parent 31085128eb
commit 1081f57580
16 changed files with 350 additions and 39 deletions

View File

@ -8,18 +8,20 @@ import org.envaya.sms.OutgoingMessage;
public class ForwarderTask extends HttpTask {
private IncomingMessage originalSms;
private IncomingMessage message;
public ForwarderTask(IncomingMessage originalSms, BasicNameValuePair... paramsArr) {
super(originalSms.app, paramsArr);
this.originalSms = originalSms;
public ForwarderTask(IncomingMessage message, BasicNameValuePair... paramsArr) {
super(message.app, paramsArr);
this.message = message;
params.add(new BasicNameValuePair("action", App.ACTION_INCOMING));
params.add(new BasicNameValuePair("from", message.getFrom()));
params.add(new BasicNameValuePair("timestamp", "" + message.getTimestamp()));
}
@Override
protected String getDefaultToAddress() {
return originalSms.getFrom();
return message.getFrom();
}
@Override
@ -29,11 +31,11 @@ public class ForwarderTask extends HttpTask {
app.sendOutgoingMessage(reply);
}
app.setIncomingMessageStatus(originalSms, true);
app.setIncomingMessageStatus(message, true);
}
@Override
protected void handleFailure() {
app.setIncomingMessageStatus(originalSms, false);
app.setIncomingMessageStatus(message, false);
}
}

View File

@ -8,6 +8,8 @@ import android.os.AsyncTask;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@ -32,7 +34,6 @@ import org.envaya.sms.Base64Coder;
import org.envaya.sms.OutgoingMessage;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
@ -159,6 +160,11 @@ public class HttpTask extends AsyncTask<String, Void, HttpResponse> {
{
post.abort();
app.logError("Error while contacting server", ex);
if (ex instanceof UnknownHostException || ex instanceof SocketTimeoutException)
{
app.asyncCheckConnectivity();
}
return null;
}
catch (Throwable ex)