Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.saholic.profittill;

import android.content.Context;
import android.content.SharedPreferences;
import android.telephony.TelephonyManager;
import android.util.Log;

import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;
import com.saholic.profittill.Constants.ProfitTillConstants;
import com.saholic.profittill.Utils.UtilityFunctions;

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.io.IOException;
import java.util.ArrayList;

/**
 * Created by rajender on 5/4/17.
 */
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService{
        private static final String TAG = "MyFirebaseIIDService";
    SharedPreferences apiData;
    SharedPreferences userData;
    SharedPreferences.Editor userDataEditor;
    SharedPreferences.Editor apiSettingsEditor;
    ArrayList<NameValuePair> nameValuePairsGcm;

        @Override
        public void onTokenRefresh() {
            apiData = getApplicationContext().getSharedPreferences("API_Data", MODE_PRIVATE);
            userData = getApplicationContext().getSharedPreferences("User_Data", MODE_PRIVATE);
            userDataEditor = userData.edit();
            apiSettingsEditor = apiData.edit();
            //Getting registration token

            String refreshedToken = FirebaseInstanceId.getInstance().getToken();
            userDataEditor.putString("fcm_token_sent", "false");
            userDataEditor.commit();

            //Displaying token on logcat
            Log.d(TAG, "Refreshed token: " + refreshedToken);
            try {
             if(userData.getString("id", "").equals("")){
                 Log.d(TAG, "Refreshed token: " + refreshedToken);
             }
             else {
                 sendRegistrationToServer(refreshedToken);
             }
            }
            catch (IOException e) {
                e.printStackTrace();
            }

        }

        private void sendRegistrationToServer(String token) throws IOException {
            try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(apiData.getString("gcm.push.url",null));
            nameValuePairsGcm = new ArrayList<>();
                TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
                nameValuePairsGcm.add(new BasicNameValuePair("gcm_regid",token));
                nameValuePairsGcm.add(new BasicNameValuePair("imeinumber",telephonyManager.getDeviceId()));
                nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id", null)));
                nameValuePairsGcm.add(new BasicNameValuePair("device_message","Device registered"));
                nameValuePairsGcm.add(new BasicNameValuePair("notification_type","fcm"));
                nameValuePairsGcm.add(new BasicNameValuePair("androidid", UtilityFunctions.androidId(MyFirebaseInstanceIDService.this)));
            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){
                userDataEditor.putString("fcm_token_sent", "true");
                userDataEditor.commit();
                Log.d("ResponseCode GCM ",status+"");
            } else {
                Log.d("ResponseCode GCM ",status+"");
            }

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

    }
}

}