Rev 21170 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.saholic.profittill.main;import android.Manifest;import android.annotation.TargetApi;import android.app.Activity;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.IntentSender;import android.content.SharedPreferences;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.res.Configuration;import android.net.ConnectivityManager;import android.net.Uri;import android.os.AsyncTask;import android.os.Build;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.v4.app.ActivityCompat;import android.support.v4.content.ContextCompat;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.AppCompatActivity;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.EditText;import android.widget.ImageButton;import android.widget.Toast;import com.facebook.Request;import com.facebook.RequestAsyncTask;import com.facebook.Response;import com.facebook.Session;import com.facebook.SessionState;import com.facebook.Settings;import com.facebook.UiLifecycleHelper;import com.facebook.model.GraphUser;import com.facebook.widget.LoginButton;import com.google.android.gms.analytics.HitBuilders;import com.google.android.gms.analytics.Tracker;import com.google.android.gms.auth.GoogleAuthException;import com.google.android.gms.auth.GoogleAuthUtil;import com.google.android.gms.auth.UserRecoverableAuthException;import com.google.android.gms.common.ConnectionResult;import com.google.android.gms.common.GooglePlayServicesUtil;import com.google.android.gms.common.Scopes;import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.common.api.ResultCallback;import com.google.android.gms.common.api.Status;import com.google.android.gms.plus.Plus;import com.google.android.gms.plus.model.people.Person;import com.google.firebase.iid.FirebaseInstanceId;import com.mixpanel.android.mpmetrics.MixpanelAPI;import com.saholic.profittill.Constants.ProfitTillConstants;import com.saholic.profittill.R;import com.saholic.profittill.Utils.UtilityFunctions;import com.testin.agent.TestinAgent;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 org.apache.http.util.EntityUtils;import org.json.JSONException;import org.json.JSONObject;import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.regex.Matcher;import java.util.regex.Pattern;public class LoginActivity extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{public GoogleApiClient mGoogleApiClient;String scope = "oauth2:" + Scopes.PLUS_LOGIN;private UiLifecycleHelper uiHelper;private boolean mIntentInProgress;private boolean mSignInClicked;private ConnectionResult mConnectionResult;private static final int RC_SIGN_IN = 0;public static final int REQUEST_CODE_TOKEN_AUTH =1;ArrayList<NameValuePair> nameValuePairs;ArrayList<NameValuePair> nameValuePairsGcm;SharedPreferences userData;SharedPreferences apiData;SharedPreferences.Editor inviteDataEditor;SharedPreferences inviteData;boolean FLAG=false;SharedPreferences.Editor userDataEditor;SharedPreferences.Editor apiSettingsEditor;SharedPreferences inviteD;SharedPreferences.Editor inviteDEditor;LoginButton fb_button;ImageButton facebookLogin,googlelogin;String mobile;MixpanelAPI mixpanel;FirebaseInstanceId fcm;Context context;String regId;String msg = "";public static final int READ_Token_PERMISSION=101;public static final String REG_ID = "regId";private static final String APP_VERSION = "appVersion";static final String TAG = "Register Activity";private boolean PermissionIngranted=false;@Overrideprotected void onCreate(Bundle savedInstanceState) {context = getApplicationContext();mixpanel= MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);super.onCreate(savedInstanceState);uiHelper = new UiLifecycleHelper(this, statusCallback);uiHelper.onCreate(savedInstanceState);setContentView(R.layout.activity_login);TestinAgent.init(this);getSupportActionBar().hide();Settings.sdkInitialize(getApplicationContext());requestToken();userData = getApplicationContext().getSharedPreferences("User_Data", MODE_PRIVATE);apiData = getApplicationContext().getSharedPreferences("API_Data", MODE_PRIVATE);userDataEditor = userData.edit();apiSettingsEditor = apiData.edit();inviteData = context.getSharedPreferences("Invite_Data", Context.MODE_PRIVATE);inviteDataEditor = inviteData.edit();inviteD = getApplicationContext().getSharedPreferences("Invite", MODE_PRIVATE);inviteDEditor = inviteD.edit();facebookLogin =(ImageButton)findViewById(R.id.facebook_login_button);googlelogin =(ImageButton)findViewById(R.id.google_login_button);if(getIntent().getAction()=="Login"){nameValuePairsGcm = new ArrayList<>();nameValuePairsGcm.add(new BasicNameValuePair("cid",getIntent().getExtras().getString("cid")));nameValuePairsGcm.add(new BasicNameValuePair("result","login"));nameValuePairsGcm.add(new BasicNameValuePair("timestamp",UtilityFunctions.notificationDate()));getIntent().getExtras().remove("cid");new NotificationOpenedData().execute(nameValuePairsGcm);}else if(getIntent().getAction()=="31"){String emailURL = String.valueOf(getIntent().getData());Uri url = Uri.parse(emailURL);String campaignId = url.getQueryParameter("campaign");if(url.getQueryParameter("intent_type").equalsIgnoreCase("url")) {Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.send(new HitBuilders.EventBuilder().setCategory("Message/Email").setAction("Message/Email Opened For User Id " + UtilityFunctions.campaignUserId(url)).setLabel("Campaign Id " + campaignId).build());nameValuePairsGcm = new ArrayList<>();nameValuePairsGcm.add(new BasicNameValuePair("user_id", UtilityFunctions.campaignUserId(url)));nameValuePairsGcm.add(new BasicNameValuePair("cid", campaignId));nameValuePairsGcm.add(new BasicNameValuePair("timestamp", UtilityFunctions.notificationDate()));nameValuePairsGcm.add(new BasicNameValuePair("result", "message_opened_login"));new NotificationOpenedData().execute(nameValuePairsGcm);}else{nameValuePairsGcm = new ArrayList<>();nameValuePairsGcm.add(new BasicNameValuePair("user_id", userData.getString("id","")));nameValuePairsGcm.add(new BasicNameValuePair("cid", campaignId));nameValuePairsGcm.add(new BasicNameValuePair("timestamp", UtilityFunctions.notificationDate()));nameValuePairsGcm.add(new BasicNameValuePair("result", "message_opened_login"));new NotificationOpenedData().execute(nameValuePairsGcm);}}Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.setScreenName("Login Screen");t.send(new HitBuilders.ScreenViewBuilder().build());MixpanelAPI mixpanel = MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);JSONObject props = new JSONObject();try {props.put("Screen", "Login Screen");mixpanel.track("Login Page", props);} catch (JSONException e) {e.printStackTrace();}if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);fb_button=(LoginButton)findViewById(R.id.facebook_class_login_button);fb_button.setReadPermissions(Arrays.asList("email"));facebookLogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(isInternetOn()) {if (TextUtils.isEmpty(regId)) {regId = registerGCM();} else {}fb_button.performClick();/*if(!(inviteData.getBoolean("inviteCodeRequired",true))) {fb_button.performClick();}else {if (apiData.getString("profitmandi.invitation", "false").equalsIgnoreCase("true")) {if (inviteD.getString("invite_added", "").equalsIgnoreCase("added")) {fb_button.performClick();} else {String referalCode1 = referralCode.getText().toString();if (referalCode1.isEmpty()) {if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);inviteError.setVisibility(View.VISIBLE);inviteError.setText(apiData.getString("invite.message", ""));} else {for (String s : invitationCodeList) {if (referalCode1.equalsIgnoreCase(s)) {FLAG = true;break;}}if (FLAG) {if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);fb_button.performClick();} else {if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);inviteError.setVisibility(View.VISIBLE);inviteError.setText(apiData.getString("invite.error.message", ""));}}}} else if (apiData.getString("profitmandi.invitation", "").equalsIgnoreCase("false")) {fb_button.performClick();} else {}}*/}else{Toast.makeText(getApplicationContext(),"Sorry your internet is not working. Please check again",Toast.LENGTH_SHORT).show();}}});googlelogin.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(isInternetOn()) {if (TextUtils.isEmpty(regId)) {regId = registerGCM();Log.d("RegisterActivity", "GCM RegId: " + regId);} else {}signInWithGplus();/*if(!(inviteData.getBoolean("inviteCodeRequired",true))) {signInWithGplus();}else {if (apiData.getString("profitmandi.invitation", "false").equalsIgnoreCase("true")) {if (inviteD.getString("invite_added", "").equalsIgnoreCase("added")) {signInWithGplus();} else {String referalCode1 = referralCode.getText().toString();if (referalCode1.isEmpty()) {inviteError.setVisibility(View.VISIBLE);inviteError.setText(apiData.getString("invite.error.message", ""));} else {for (String s : invitationCodeList) {if (referalCode1.equalsIgnoreCase(s)) {FLAG = true;break;}}if (FLAG) {signInWithGplus();} else {inviteError.setVisibility(View.VISIBLE);inviteError.setText(apiData.getString("invite.error.message", ""));}}}} else if (apiData.getString("profitmandi.invitation", "").equalsIgnoreCase("false")) {signInWithGplus();}}*/}else{Toast.makeText(getApplicationContext(),"Sorry your internet is not working. Please check again",Toast.LENGTH_SHORT).show();}}});mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN).build();}public void requestToken(){try{if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {if (ContextCompat.checkSelfPermission(this,Manifest.permission.GET_ACCOUNTS)!= PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(LoginActivity.this,new String[]{Manifest.permission.GET_ACCOUNTS},READ_Token_PERMISSION);} else {PermissionIngranted = true;}} else {PermissionIngranted = true;}}catch (Exception e){e.printStackTrace();}}private void signInWithGplus() {if (!mGoogleApiClient.isConnecting()) {mSignInClicked = true;resolveSignInError();}}private Session.StatusCallback statusCallback = new Session.StatusCallback() {@Overridepublic void call(final Session session, SessionState state,Exception exception) {if (state.isOpened()) {nameValuePairs = new ArrayList<NameValuePair>();nameValuePairs.add(new BasicNameValuePair("type","facebook"));nameValuePairs.add(new BasicNameValuePair("token",session.getAccessToken()+""));Request mRequest = Request.newMeRequest(session,new Request.GraphUserCallback() {@Overridepublic void onCompleted(GraphUser graphUser, Response response) {if(response.getError()==null){nameValuePairs.add(new BasicNameValuePair("id",graphUser.getId()));nameValuePairs.add(new BasicNameValuePair("name",graphUser.getName()));//nameValuePairs.add(new BasicNameValuePair("mobile_number",mobile));// nameValuePairs.add(new BasicNameValuePair("referrer",referalCode.getText().toString()));Log.d("Invite Code Boolean","Boolean" +inviteData.getBoolean("inviteCodeRequired",true));if(!(inviteData.getBoolean("inviteCodeRequired",true))) {nameValuePairs.add(new BasicNameValuePair("utm_source",inviteData.getString("utm_source","")));nameValuePairs.add(new BasicNameValuePair("utm_medium",inviteData.getString("utm_medium","")));nameValuePairs.add(new BasicNameValuePair("utm_content",inviteData.getString("utm_content","")));nameValuePairs.add(new BasicNameValuePair("utm_term",inviteData.getString("utm_term","")));nameValuePairs.add(new BasicNameValuePair("utm_campaign",inviteData.getString("utm_campaign","")));}/*else{if (inviteD.getString("invite_added", "").equalsIgnoreCase("added")) {nameValuePairs.add(new BasicNameValuePair("referrer",inviteD.getString("ref","")));}else {nameValuePairs.add(new BasicNameValuePair("referrer", referralCode.getText().toString()));inviteDEditor.putString("ref", referralCode.getText().toString());inviteDEditor.commit();}}*/nameValuePairs.add(new BasicNameValuePair("profile_pic","http://graph.facebook.com/"+graphUser.getId()+"/picture"));try{if(graphUser.getProperty("email").toString()==null){//Toast.makeText(getApplicationContext(),"In if",Toast.LENGTH_SHORT).show();//Toast.makeText(getApplicationContext(),"User Name " + graphUser.toString(),Toast.LENGTH_SHORT).show();}else{nameValuePairs.add(new BasicNameValuePair("email",graphUser.getProperty("email").toString()));nameValuePairs.add(new BasicNameValuePair("gender",graphUser.getProperty("gender").toString()));userDataEditor.putString("email",graphUser.getProperty("email").toString());userDataEditor.commit();// Toast.makeText(getApplicationContext(),"User Name " + graphUser.getName(),Toast.LENGTH_SHORT).show();// Toast.makeText(getApplicationContext(),"Email " + graphUser.getProperty("email").toString(),Toast.LENGTH_SHORT).show();new loadData().execute();}}catch (Exception e){AlertDialog.Builder alert = new AlertDialog.Builder(LoginActivity.this);alert.setMessage("Enter Email Id to complete registration: ");final EditText input = new EditText(LoginActivity.this);alert.setView(input);alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton) {String value = input.getText().toString();Pattern pattern;Matcher matcher;pattern = Pattern.compile(ProfitTillConstants.EMAIL_PATTERN);matcher = pattern.matcher(value);if( matcher.matches()){nameValuePairs.add(new BasicNameValuePair("email",value.toString()));userDataEditor.putString("email",value.toString());userDataEditor.commit();new loadData().execute();}else{Toast.makeText(getApplicationContext(),"Please enter a valid Email id",Toast.LENGTH_SHORT ).show();if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);}}});alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton) {// Canceled.if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);}});alert.show();}}else{Log.e("Login Activity Facebook",response.getError()+"");}}});RequestAsyncTask asyncTask=mRequest.executeAsync();} else if (state.isClosed()) {}}};@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.menu_login, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();//noinspection SimplifiableIfStatementif (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}/*** Method to resolve any signin errors* */private void resolveSignInError() {if (mConnectionResult.hasResolution()) {try {mIntentInProgress = true;mConnectionResult.startResolutionForResult(this, RC_SIGN_IN);} catch (IntentSender.SendIntentException e) {e.printStackTrace();TestinAgent.uploadException(this,"Exception in Resolve sign in error", new Exception());mIntentInProgress = false;//mGoogleApiClient.connect();revokeGplusAccess();}}}/*** Revoking access from google* */private void revokeGplusAccess() {if (mGoogleApiClient.isConnected()) {Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);Plus.AccountApi.revokeAccessAndDisconnect(mGoogleApiClient).setResultCallback(new ResultCallback<Status>() {@Overridepublic void onResult(Status arg0) {Log.e(TAG, "User access revoked!");mGoogleApiClient.connect();//updateUI(false);}});}}@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);}protected void onStart() {super.onStart();mGoogleApiClient.connect();}protected void onStop() {super.onStop();if (mGoogleApiClient.isConnected()) {mGoogleApiClient.disconnect();}}@Overridepublic void onConnectionFailed(ConnectionResult result) {if (!result.hasResolution()) {GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(), this,0).show();return;}if (!mIntentInProgress) {mConnectionResult = result;if (mSignInClicked) {resolveSignInError();}}}@Overrideprotected void onActivityResult(int requestCode, int responseCode,Intent intent) {if (requestCode == RC_SIGN_IN) {if (responseCode != RESULT_OK) {mSignInClicked = false;}mIntentInProgress = false;if (!mGoogleApiClient.isConnecting()) {mGoogleApiClient.connect();}}else if (requestCode==REQUEST_CODE_TOKEN_AUTH &&responseCode==RESULT_OK){getAccessToken();}uiHelper.onActivityResult(requestCode, responseCode, intent);}private void getAccessToken() {new getToken().execute();}@Overridepublic void onConnectionSuspended(int arg0) {mGoogleApiClient.connect();}@Overridepublic void onConnected(Bundle arg0) {mSignInClicked=false;getAccessToken();}private void showProgressDialog(){pDlg = new ProgressDialog(LoginActivity.this);pDlg.setMessage("Logging In");pDlg.setProgressStyle(ProgressDialog.STYLE_SPINNER);pDlg.setCancelable(false);pDlg.show();}private ProgressDialog pDlg = null;class getToken extends AsyncTask<String,Integer,String> {@Overrideprotected void onPreExecute() {showProgressDialog();}@Overrideprotected String doInBackground(String... params) {String id=null;String token = null;Bundle appActivities = new Bundle();appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES,"MainActivity");try {token = GoogleAuthUtil.getToken(LoginActivity.this,Plus.AccountApi.getAccountName(mGoogleApiClient),scope,appActivities);if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);String imageUrl = currentPerson.getImage().getUrl();int i = currentPerson.getGender();String gender;if(i==0){gender="male";}else if (i==1){gender="female";}else if(i==2) {gender = "otherwise";}else {gender = "not available";}nameValuePairs = new ArrayList<NameValuePair>();nameValuePairs.add(new BasicNameValuePair("type","google"));nameValuePairs.add(new BasicNameValuePair("id",currentPerson.getId()));nameValuePairs.add(new BasicNameValuePair("name",currentPerson.getDisplayName()));nameValuePairs.add(new BasicNameValuePair("email",Plus.AccountApi.getAccountName(mGoogleApiClient)));userDataEditor.putString("email",Plus.AccountApi.getAccountName(mGoogleApiClient));userDataEditor.commit();nameValuePairs.add(new BasicNameValuePair("gender",gender));nameValuePairs.add(new BasicNameValuePair("token",token));Log.d("Invite Code Boolean","Boolean" +inviteData.getBoolean("inviteCodeRequired",true));if(!(inviteData.getBoolean("inviteCodeRequired",true))) {nameValuePairs.add(new BasicNameValuePair("utm_source",inviteData.getString("utm_source","")));nameValuePairs.add(new BasicNameValuePair("utm_medium",inviteData.getString("utm_medium","")));nameValuePairs.add(new BasicNameValuePair("utm_content",inviteData.getString("utm_content","")));nameValuePairs.add(new BasicNameValuePair("utm_term",inviteData.getString("utm_term","")));nameValuePairs.add(new BasicNameValuePair("utm_campaign",inviteData.getString("utm_campaign","")));}nameValuePairs.add(new BasicNameValuePair("profile_pic",currentPerson.getImage().getUrl()));HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("user.registration.api",null));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));System.out.println("JSON object in Login " + jObjGmail.toString());String success = jObjGmail.getString("success");if(success.equalsIgnoreCase("true")){userDataEditor.putString("token",token);userDataEditor.putString("referralCodeRequired",jObjGmail.getString("referrerRequired"));userDataEditor.putString("docsSubmitted",jObjGmail.getString("docsSubmitted"));userDataEditor.putString("message",jObjGmail.getString("mobileRequired"));userDataEditor.putString("type","google");id= jObjGmail.getString("id");userDataEditor.putString("id",id);}else{}}else{return "failure";}} catch (IOException transientEx) {Log.e("InputOutput", transientEx.toString());} catch (UserRecoverableAuthException e) {Log.d("Here","Here " + e.getMessage());Intent recover = e.getIntent();startActivityForResult(recover, REQUEST_CODE_TOKEN_AUTH);} catch (GoogleAuthException authEx) {//resolveSignInError();//revokeGplusAccess();Log.e("AuthEX", authEx.toString());}catch (Exception e) {Log.e("Exception main", e.toString());}return id;}@Overrideprotected void onPostExecute(String result){super.onPostExecute(result);userDataEditor.commit();try {if (userData.getString("id", null) == null) {if(mGoogleApiClient.isConnected()) {Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);mGoogleApiClient.disconnect();userDataEditor.clear().commit();}else{userDataEditor.clear().commit();}if(pDlg!=null){pDlg.dismiss();}} else {UtilityFunctions utf = new UtilityFunctions();new pushApkData().execute(utf.getDeviceInformation(getApplicationContext()));//new gcmPushData().execute();}}catch (Exception e){e.printStackTrace();}}}@Overridepublic void onResume() {super.onResume();uiHelper.onResume();}@Overridepublic void onPause() {super.onPause();uiHelper.onPause();}@Overridepublic void onDestroy() {super.onDestroy();uiHelper.onDestroy();mixpanel.flush();}@Overridepublic void onSaveInstanceState(Bundle savedState) {super.onSaveInstanceState(savedState);uiHelper.onSaveInstanceState(savedState);}class loadData extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();showProgressDialog();}@Overrideprotected String doInBackground(String... arg0) {String id=null;try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("user.registration.api",null));httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));String success = jObjGmail.getString("success");if(success.equalsIgnoreCase("true")){id = jObjGmail.getString("id");userDataEditor.putString("type","facebook");userDataEditor.putString("id",id);userDataEditor.putString("token",Session.getActiveSession().getAccessToken());userDataEditor.putString("docsSubmitted",jObjGmail.getString("docsSubmitted"));userDataEditor.putString("referralCodeRequired",jObjGmail.getString("referrerRequired"));userDataEditor.putString("message",jObjGmail.getString("mobileRequired"));}else{}nameValuePairs.clear();} catch (Exception e) {Log.e("Fail 1", e.toString());}return id;}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);JSONObject props = new JSONObject();try {props.put("ID ", result);} catch (JSONException e) {e.printStackTrace();}mixpanel.track("Facebook",props);userDataEditor.commit();if(userData.getString("id",null)==null){Session.getActiveSession().closeAndClearTokenInformation();Session.setActiveSession(null);userDataEditor.clear().commit();if(pDlg!=null){pDlg.dismiss();}}else {new pushApkData().execute(new UtilityFunctions().getDeviceInformation(getApplicationContext()));/* new gcmPushData().execute();*/}}}@Overridepublic void onBackPressed() {new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit!").setMessage("Are you sure you want to close?").setPositiveButton("Yes", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {Intent startMain = new Intent(Intent.ACTION_MAIN);startMain.addCategory(Intent.CATEGORY_HOME);startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(startMain);}}).setNegativeButton("No", null).show();}private static int getAppVersion(Context context) {try {PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);return packageInfo.versionCode;} catch (PackageManager.NameNotFoundException e) {throw new RuntimeException(e);}}private void registerInBackground() {new AsyncTask<Void, Void, String>() {@Overrideprotected String doInBackground(Void... params) {if (fcm == null) {regId =FirebaseInstanceId.getInstance().getToken();Log.d("RegisterActivity", "registerInBackground - regId: "+ regId);msg = "Device registered";}Log.d("RegisterActivity", "AsyncTask completed: " + msg);return msg;}@Overrideprotected void onPostExecute(String msg) {/*Toast.makeText(getApplicationContext(),"Registered with GCM Server." + msg, Toast.LENGTH_LONG).show();*/}}.execute(null, null, null);}/*private void storeRegistrationId(Context context, String regId) {final SharedPreferences prefs = getSharedPreferences(MainActivity.class.getSimpleName(), Context.MODE_PRIVATE);int appVersion = getAppVersion(context);Log.i(TAG, "Saving regId on app version " + appVersion);SharedPreferences.Editor editor = prefs.edit();editor.putString(REG_ID, regId);editor.putInt(APP_VERSION, appVersion);editor.commit();}*/public String registerGCM() {// gcm = GoogleCloudMessaging.getInstance(this);regId = getRegistrationId(context);registerInBackground();return regId;}private String getRegistrationId(Context context) {String registrationId = userData.getString("gcm_regid", "");if (registrationId.isEmpty()) {Log.i(TAG, "Registration not found.");return "";}return registrationId;}class gcmPushData extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();MixpanelAPI mixpanel = MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);MixpanelAPI.People people = mixpanel.getPeople();JSONObject props = new JSONObject();try {mixpanel.identify(userData.getString("id",null));people.identify(userData.getString("id",null));props.put("Screen", "Logged In");people.set("$last_login",new Date());people.set("user_id" , userData.getString("id",null));mixpanel.track("Successfully Logged In", props);} catch (JSONException e) {e.printStackTrace();}Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.set("&uid",userData.getString("id",null));t.send(new HitBuilders.EventBuilder().setCategory("Login ").setAction("Login Successful").setLabel("Successful for User" +userData.getString("id",null)).build());}@Overrideprotected String doInBackground(String... arg0) {String id=null;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",regId));nameValuePairsGcm.add(new BasicNameValuePair("imeinumber",telephonyManager.getDeviceId()));nameValuePairsGcm.add(new BasicNameValuePair("user_id",userData.getString("id", null)));nameValuePairsGcm.add(new BasicNameValuePair("notification_type","fcm"));nameValuePairsGcm.add(new BasicNameValuePair("device_message",arg0[0]));nameValuePairsGcm.add(new BasicNameValuePair("androidid",UtilityFunctions.androidId(LoginActivity.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){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) {Log.e("Fail 1", e.toString());}return id;}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);if(pDlg!=null){pDlg.dismiss();}userDataEditor.putString("gcm_regid", regId);userDataEditor.commit();String check = userData.getString("message","");if(userData.getString("docsSubmitted","").equalsIgnoreCase("true")){Intent i = new Intent(LoginActivity.this, PendingActivity.class);startActivity(i);}else if(userData.getString("referralCodeRequired","").equalsIgnoreCase("true")){Log.d("In if","in if" +inviteD.getString("referrerCode","").equalsIgnoreCase("") + inviteD .getString("referrerCode","") );Intent i = new Intent(LoginActivity.this, BasicInformation.class);startActivity(i);}else if(check.equalsIgnoreCase("true")){Log.d("In if","in else");Intent i = new Intent(LoginActivity.this, MobileNumber.class);i.putExtra("displayView", "7");startActivity(i);}else{Intent i = new Intent(LoginActivity.this,MainActivity.class);i.putExtra("displayView","0");startActivity(i);}}}public final boolean isInternetOn() {ConnectivityManager connection =(ConnectivityManager)getSystemService(this.getBaseContext().CONNECTIVITY_SERVICE);if ( connection.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||connection.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||connection.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||connection.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {return true;} else if (connection.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||connection.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED ) {return false;}return false;}class NotificationOpenedData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.send(new HitBuilders.EventBuilder().setCategory("Notification").setAction("Notification Opened Login").setLabel("For User Id " + userData.getString("id","0")).build());}@Overrideprotected String doInBackground(ArrayList<NameValuePair>... arg0) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost(apiData.getString("notication.data.url","http://api.profittill.com/pushnotifications/add"));httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if(status == 200){Log.d("Notification Opened","Notication opened and sent to server");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());}return "success";}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);Log.d("Notification Opened","Notication opened and login page");}}class pushApkData extends AsyncTask<ArrayList<NameValuePair>, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();}@Overrideprotected String doInBackground(ArrayList<NameValuePair>... arg0) {try {HttpClient httpclient = new DefaultHttpClient();HttpPost httppost = new HttpPost("http://api.profittill.com/devices/add");httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(arg0[0]));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();if(status == 200){return "success";} else {return "failure";}} catch (Exception e) {return null;}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);if(userData.getString("fcm_token_sent","false").equalsIgnoreCase("false")){new gcmPushData().execute(msg);}}}}