--- /dev/null
+/*******************************************************************************
+ * Copyright © Igor Barma, Alexandre Desoubeaux, Christian Martel, Eric Brun, Mathieu Amblard, Gwenael Gevet, Pierre Guillot, 2012
+ *
+ * This file is part of the work and learning management system Pentila Nero.
+ *
+ * Pentila Nero is free software. You can redistribute it and/or modify since
+ * you respect the terms of either (at least one of the both license) :
+ * - under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ * - the CeCILL-C as published by CeCILL-C; either version 1 of the
+ * License, or any later version
+ * - the GNU Lesser General Public License as published by the
+ * Free Software Foundation, either version 3 of the license,
+ * or (at your option) any later version.
+ *
+ * There are special exceptions to the terms and conditions of the
+ * licenses as they are applied to this software. View the full text of
+ * the exception in file LICENSE-PROJECT.txt in the directory of this software
+ * distribution.
+ *
+ * Pentila Nero 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
+ * Licenses for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * and the CeCILL-C and the GNU Lesser General Public License along with
+ * Pentila Nero. If not, see :
+ * <http://www.gnu.org/licenses/> and
+ * <http://www.cecill.info/licences.fr.html>.
+ ******************************************************************************/
+package com.pentila.entSavoie.mobileNotification.androidUtils;
+
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+
+
+
+public class AndroidPushDispatcher implements PushDispatcher {
+
+
+ public void sendNotification(AndroidMessage message) {
+
+ System.out.println("In AndroidPushDispatcher:sendMessage with message "+ message.getMessage());
+
+ DefaultHttpClient client = new DefaultHttpClient();
+ HttpPost httppost = new HttpPost("https://android.apis.google.com/c2dm/send");
+ List<NameValuePair> formparams = new ArrayList<NameValuePair>();
+ formparams.add(new BasicNameValuePair("registration_id",
+ message.getRegistrationKey()));
+ System.out.println("message registration_ID :: "+ message.getRegistrationKey());
+ formparams.add(new BasicNameValuePair("data.payload", message.getMessage()));
+ formparams.add(new BasicNameValuePair("collapse_key", "0"));
+
+ if (null != message.getRegistrationKey()) {
+ formparams.add(new BasicNameValuePair("id", message
+ .getRegistrationKey()));
+ } else {
+ System.out.println("Registration Key is null ");
+ }
+ UrlEncodedFormEntity entity = null;
+ try {
+ entity = new UrlEncodedFormEntity(formparams, "UTF-8");
+ } catch (UnsupportedEncodingException e1) {
+ System.out.println("Exception occured in AndroidPushDispatcher:sendMessage "+e1);
+ }
+ httppost.setEntity(entity);
+ Header header = new BasicHeader("Authorization",
+ "GoogleLogin auth=" + message.getAuthKey());
+ System.out.println("message.getAuthKey : "+ message.getAuthKey());
+ Header header2 = new BasicHeader("Content-length=", ""
+ + message.getMessage().length());
+ httppost.addHeader(header);
+ httppost.addHeader(header2);
+ httppost.getParams().setParameter("Content-length:",
+ "" + message.getMessage().length());
+ HttpContext localContext = new BasicHttpContext();
+ HttpResponse response = null;
+ try {
+ response = client.execute(httppost, localContext);
+
+ HttpEntity entity2 = response.getEntity();
+ System.out.println("Response from post call is "+ entity2.getContent().toString());
+
+ } catch (Exception e) {
+ System.out.println("Error occured while posting the message "+ e);
+ }
+ }
+
+}