Rev 14792 | Rev 16278 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.saholic.profittill.main;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.content.SharedPreferences;import android.net.ConnectivityManager;import android.os.AsyncTask;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.text.SpannableString;import android.text.style.UnderlineSpan;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.facebook.Session;import com.google.android.gms.analytics.HitBuilders;import com.google.android.gms.analytics.Tracker;import com.google.android.gms.common.ConnectionResult;import com.google.android.gms.common.api.GoogleApiClient;import com.google.android.gms.plus.Plus;import com.mixpanel.android.mpmetrics.MixpanelAPI;import com.saholic.profittill.Constants.ProfitTillConstants;import com.saholic.profittill.R;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.ClientProtocolException;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.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;public class MobileNumber extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {SharedPreferences userData;SharedPreferences apiData;SharedPreferences.Editor userDataEditor;SharedPreferences.Editor apiSettingsEditor;EditText phoneNumberFirstTime;TextView skipMobileNumber;Button phoneNumberFirstTimeButton;boolean glogout;MixpanelAPI mixpanel;String type1;public GoogleApiClient mGoogleApiClient;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_mobile_number);TestinAgent.init(this);getSupportActionBar().hide();mixpanel= MixpanelAPI.getInstance(getApplicationContext(), ProfitTillConstants.MIX_PANEL_TOKEN);userData = getApplicationContext().getSharedPreferences("User_Data", Context.MODE_PRIVATE);apiData = getApplicationContext().getSharedPreferences("API_Data", Context.MODE_PRIVATE);userDataEditor = userData.edit();apiSettingsEditor = apiData.edit();TestinAgent.setUserInfo(userData.getString("id", ""));Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.setScreenName("First Time Mobile Entered Screen");t.send(new HitBuilders.ScreenViewBuilder().build());type1 = userData.getString("type",null);if(type1!=null && type1.equalsIgnoreCase("google")) {mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN).build();mGoogleApiClient.connect();}phoneNumberFirstTime=(EditText)findViewById(R.id.phoneNumberFirstTime);skipMobileNumber = (TextView)findViewById(R.id.skipMobileNumber);phoneNumberFirstTimeButton=(Button)findViewById(R.id.phoneNumberFirstTimeButton);SpannableString content = new SpannableString(skipMobileNumber.getText().toString());content.setSpan(new UnderlineSpan(), 0, content.length(), 0);skipMobileNumber.setText(content);skipMobileNumber.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {JSONObject props = new JSONObject();try {mixpanel.identify(userData.getString("id",null));props.put("Screen", "Mobile Verification");mixpanel.track("First Time Mobile Number Skipped",props);} catch (JSONException e) {e.printStackTrace();}Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.send(new HitBuilders.EventBuilder().setCategory("First Time Mobile Entered ").setAction("Number not entered").setLabel("First Time Mobile Not entered").build());Intent i = new Intent(MobileNumber.this,MainActivity.class);i.putExtra("displayView","7");startActivity(i);}});phoneNumberFirstTimeButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if(phoneNumberFirstTime.getText().toString().length()==10){if(isInternetOn()) {JSONObject props = new JSONObject();try {mixpanel.identify(userData.getString("id",null));props.put("Screen", "Mobile Verification");mixpanel.track("First Time Mobile Number Entered",props);} catch (JSONException e) {e.printStackTrace();}new pushVerification().execute();}else{Toast.makeText(getApplicationContext(), "No internet connection. Please try again.", Toast.LENGTH_SHORT).show();}}else{Toast.makeText(getApplicationContext(), "Mobile Number not valid.", Toast.LENGTH_SHORT).show();}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.menu_mobile_number, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}@Overridepublic void onConnected(Bundle bundle) {}@Overridepublic void onConnectionSuspended(int i) {}@Overridepublic void onConnectionFailed(ConnectionResult connectionResult) {}class pushVerification extends AsyncTask<String, Integer, String> {@Overrideprotected void onPreExecute() {super.onPreExecute();Log.e("Push Service", "Pre execute");}@Overrideprotected String doInBackground(String... arg0) {HttpClient httpclient = new DefaultHttpClient();try {ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();SimpleDateFormat sdf = new SimpleDateFormat(ProfitTillConstants.SQL_DATE_FORMAT);String dateUpdated = sdf.format(new Date());nameValuePairs.add(new BasicNameValuePair("id",userData.getString("id","")));nameValuePairs.add(new BasicNameValuePair("mobile_number",phoneNumberFirstTime.getText().toString()));nameValuePairs.add(new BasicNameValuePair("mobile_number_last_updated",dateUpdated));String updateURL = apiData.getString("useredit.url","");String url = updateURL+userData.getString("id","");HttpPost httppost = new HttpPost(url);httppost.setHeader("Authorization", ProfitTillConstants.BASIC_AUTH);httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));HttpResponse response = httpclient.execute(httppost);HttpEntity entity = response.getEntity();int status = response.getStatusLine().getStatusCode();JSONObject jObjGmail = new JSONObject(EntityUtils.toString(entity));System.out.println("JSON Object in mobile " + jObjGmail.toString());String success = jObjGmail.getString("success");if(status == 200){Tracker t = ((GoogleAnalyticsTracker) getApplicationContext()).getTracker(GoogleAnalyticsTracker.TrackerName.APP_TRACKER);t.send(new HitBuilders.EventBuilder().setCategory("First Time Mobile Entered ").setAction("Number entered").setLabel("First Time Mobile entered").build());} else {System.out.println(" NOT Transfered");}if(success.equalsIgnoreCase("true")){userDataEditor.putString("message","false");;userDataEditor.commit();return "true";}else{userDataEditor.putString("message","true");;userDataEditor.commit();return "false";}} catch (ClientProtocolException e) {return "false";} catch (IOException e) {return "false";}catch (Exception e){return "false";}}@Overrideprotected void onPostExecute(String result) {super.onPostExecute(result);Intent i = new Intent(MobileNumber.this,MobileVerificationFirstTime.class);i.putExtra("numberVerification",phoneNumberFirstTime.getText().toString());startActivity(i);}}@Overridepublic void onBackPressed() {/* super.onBackPressed();*/new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit!").setMessage("Are you sure you want to sign out?").setPositiveButton("Yes", new DialogInterface.OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which) {if(type1.equalsIgnoreCase("facebook")) {Log.d("fblogout","logout");if (Session.getActiveSession() != null) {Session.getActiveSession().closeAndClearTokenInformation();}Session.setActiveSession(null);/*userDataEditor.remove("id");userDataEditor.remove("type");userDataEditor.remove("email");*/userDataEditor.clear().commit();/* userDataEditor.commit();*/startActivity(new Intent(MobileNumber.this, LoginActivity.class));}else{Log.d("gmailLogout","logout");signOutFromGplus();if(glogout==true){startActivity(new Intent(MobileNumber.this, LoginActivity.class));}}}}).setNegativeButton("No", null).show();}public void signOutFromGplus() {if (mGoogleApiClient.isConnected()) {Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);mGoogleApiClient.disconnect();mGoogleApiClient.connect();glogout=true;userDataEditor.clear();userDataEditor.commit();} else {glogout=false;}}public final boolean isInternetOn() {ConnectivityManager connec =(ConnectivityManager)this.getSystemService(getBaseContext().CONNECTIVITY_SERVICE);if ( connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTED ||connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.CONNECTING ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTING ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.CONNECTED ) {return true;} else if (connec.getNetworkInfo(0).getState() == android.net.NetworkInfo.State.DISCONNECTED ||connec.getNetworkInfo(1).getState() == android.net.NetworkInfo.State.DISCONNECTED ) {return false;}return false;}}