Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.saholic.profittill.BroadcastReceivers;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.telephony.TelephonyManager;
import android.util.Log;

import com.google.firebase.iid.FirebaseInstanceId;
import com.saholic.profittill.Constants.ProfitTillConstants;
import com.saholic.profittill.Utils.AnalyticsUtility;
import com.saholic.profittill.Utils.UtilityFunctions;
import com.saholic.profittill.Volley.Analytics;
import com.saholic.profittill.Volley.AnalyticsErrorResponse;
import com.saholic.profittill.Volley.AnalyticsJsonResponse;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
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.BasicNameValuePair;

import java.util.ArrayList;

public class UpdateReceiver extends BroadcastReceiver {
    String regId;
    FirebaseInstanceId fcm;
    Context c;
    SharedPreferences.Editor apiDataEditor,userDataEditor;
    SharedPreferences apiData,userData;
    ArrayList<NameValuePair> nameValuePairsGcm;
    public UpdateReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        c=context;
        apiData = context.getSharedPreferences("API_Data", Context.MODE_PRIVATE);
        userData = context.getSharedPreferences("User_Data", Context.MODE_PRIVATE);
        userDataEditor = userData.edit();
        apiDataEditor = apiData.edit();
        registerGCM();
    }

    public void registerGCM() {

       // gcm = GoogleCloudMessaging.getInstance(c);
        registerInBackground();

    }

    private void registerInBackground() {
        new AsyncTask<Void, Void, String>() {
            @Override
            protected String doInBackground(Void... params) {
                String msg = "";
                if (fcm == null) {
                regId = FirebaseInstanceId.getInstance().getToken();
                    msg = "Device registered";
            if (userData.getString("fcm_token_sent", "false").equals("false") && (!userData.getString("id", "").equals(""))) {
                regId = FirebaseInstanceId.getInstance().getToken();
                Log.d("RegisterActivity", "registerInBackground - regId: "
                        + regId);
                msg = "Device registered";
                new gcmPushData().execute(msg);
            }

            }
                return msg;
            }
            @Override
            protected void onPostExecute(String msg) {
                new gcmPushData().execute(msg);
            }
             }.execute(null, null, null);
             }


    class gcmPushData extends AsyncTask<String, Integer, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... arg0) {
            String id = null;
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(apiData.getString("gcm.push.url", "http://api.profittill.com/gcm_users/add"));
                nameValuePairsGcm = new ArrayList<>();
                TelephonyManager telephonyManager = (TelephonyManager) c.getSystemService(Context.TELEPHONY_SERVICE);
                nameValuePairsGcm.add(new BasicNameValuePair("gcm_regid", regId));
                nameValuePairsGcm.add(new BasicNameValuePair("imeinumber", telephonyManager.getDeviceId()));
                nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id", null)));
                nameValuePairsGcm.add(new BasicNameValuePair("device_message", arg0[0]));
                nameValuePairsGcm.add(new BasicNameValuePair("notification_type", "fcm"));
                nameValuePairsGcm.add(new BasicNameValuePair("androidid", UtilityFunctions.androidId(c)));
                httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairsGcm));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                int status = response.getStatusLine().getStatusCode();
                if (status == 200) {
                    Log.d("ResponseCode GCM ", status + "");
                    userDataEditor.putString("fcm_token_sent", "true");
                    userDataEditor.commit();
                } else {
                    Log.d("ResponseCode GCM ", status + "");
                }

                nameValuePairsGcm.clear();
                Log.e("pass 1", "connection success ");
            } catch (Exception e) {
            }
            return id;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            if(!(userData.getString("id", "").isEmpty())) {
                new Analytics(ProfitTillConstants.ANALYTICS_URL,
                        AnalyticsUtility.getAnalyticsRequest(c, userData.getString("id", ""), "Reciever", "Update Reciever", "Update Receiver called"),
                        AnalyticsJsonResponse.getAnalyticsRequestInstance(),
                        AnalyticsErrorResponse.getAnalyitcsResponseInstance()).anlyticsRequest(c);
            }
        }
    }
}