From 918926e6cf686d310072d4eab1caa5d17f3bea38 Mon Sep 17 00:00:00 2001 From: Christian S Date: Sun, 6 Sep 2015 14:29:53 +0200 Subject: version 1.6.9 beta * in app updater --- .../services/CheckAppVersionService.java | 43 ++++++++++ .../conversations/services/UpdaterWebService.java | 91 ++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 src/main/java/eu/siacs/conversations/services/CheckAppVersionService.java create mode 100644 src/main/java/eu/siacs/conversations/services/UpdaterWebService.java (limited to 'src/main/java/eu/siacs/conversations/services') diff --git a/src/main/java/eu/siacs/conversations/services/CheckAppVersionService.java b/src/main/java/eu/siacs/conversations/services/CheckAppVersionService.java new file mode 100644 index 000000000..0fffb8a78 --- /dev/null +++ b/src/main/java/eu/siacs/conversations/services/CheckAppVersionService.java @@ -0,0 +1,43 @@ +package eu.siacs.conversations.services; + +import com.google.gson.JsonObject; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class CheckAppVersionService extends HttpServlet { + private static final long serialVersionUID = 1L; + + public CheckAppVersionService() { + super(); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + doPost(request,response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + + PrintWriter out = response.getWriter(); + response.setContentType("text/html"); + + //send a JSON response with the app Version and file URI + JsonObject myObj = new JsonObject(); + myObj.addProperty("success", true); + myObj.addProperty("latestVersionCode", 2); + myObj.addProperty("latestVersion", "1.0.0"); + myObj.addProperty("appURI", ""); + out.println(myObj.toString()); + out.close(); + + + } + +} \ No newline at end of file diff --git a/src/main/java/eu/siacs/conversations/services/UpdaterWebService.java b/src/main/java/eu/siacs/conversations/services/UpdaterWebService.java new file mode 100644 index 000000000..1001562dc --- /dev/null +++ b/src/main/java/eu/siacs/conversations/services/UpdaterWebService.java @@ -0,0 +1,91 @@ +package eu.siacs.conversations.services; + +import android.app.IntentService; +import android.content.Intent; +import android.util.Log; + +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.StatusLine; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.conn.params.ConnManagerParams; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import eu.siacs.conversations.ui.UpdaterActivity.MyWebReceiver; + +public class UpdaterWebService extends IntentService{ + private static final String LOG_TAG = "MyWebService"; + public static final String REQUEST_STRING = "myRequest"; + public static final String RESPONSE_STRING = "myResponse"; + public static final String RESPONSE_MESSAGE = "myResponseMessage"; + + private String URL = null; + private static final int REGISTRATION_TIMEOUT = 3 * 1000; + private static final int WAIT_TIMEOUT = 30 * 1000; + + public UpdaterWebService() { + super("UpdaterWebService"); + } + + @Override + protected void onHandleIntent(Intent intent) { + + String requestString = intent.getStringExtra(REQUEST_STRING); + Log.v(LOG_TAG, requestString); + String responseMessage = ""; + + try { + + URL = requestString; + HttpClient httpclient = new DefaultHttpClient(); + HttpParams params = httpclient.getParams(); + + HttpConnectionParams.setConnectionTimeout(params, REGISTRATION_TIMEOUT); + HttpConnectionParams.setSoTimeout(params, WAIT_TIMEOUT); + ConnManagerParams.setTimeout(params, WAIT_TIMEOUT); + + HttpGet httpGet = new HttpGet(URL); + HttpResponse response = httpclient.execute(httpGet); + + StatusLine statusLine = response.getStatusLine(); + if(statusLine.getStatusCode() == HttpStatus.SC_OK){ + ByteArrayOutputStream out = new ByteArrayOutputStream(); + response.getEntity().writeTo(out); + out.close(); + responseMessage = out.toString(); + } + + else{ + Log.w("HTTP1:",statusLine.getReasonPhrase()); + response.getEntity().getContent().close(); + throw new IOException(statusLine.getReasonPhrase()); + } + + } catch (ClientProtocolException e) { + Log.w("HTTP2:",e ); + responseMessage = e.getMessage(); + } catch (IOException e) { + Log.w("HTTP3:",e ); + responseMessage = e.getMessage(); + }catch (Exception e) { + Log.w("HTTP4:",e ); + responseMessage = e.getMessage(); + } + + + Intent broadcastIntent = new Intent(); + broadcastIntent.setAction(MyWebReceiver.PROCESS_RESPONSE); + broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT); + broadcastIntent.putExtra(RESPONSE_MESSAGE, responseMessage); + sendBroadcast(broadcastIntent); + + } + +} \ No newline at end of file -- cgit v1.2.3