Android Open Source - visiting-card-android Sign Up Form Activity






From Project

Back to project page visiting-card-android.

License

The source code is released under:

GNU General Public License

If you think the Android project visiting-card-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.matrix.visitingcard;
/*from   w  ww.j  a  va 2s  .c o m*/
import java.io.IOException;

import org.apache.http.Header;

import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

import com.flurry.android.FlurryAgent;
import com.google.android.gms.auth.GoogleAuthException;
import com.google.android.gms.auth.GoogleAuthUtil;
import com.google.android.gms.auth.UserRecoverableAuthException;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.matrix.asynchttplibrary.AsyncH;
import com.matrix.asynchttplibrary.model.CallProperties;
import com.matrix.asynchttplibrary.util.AsyncUtil;
import com.matrix.visitingcard.constant.Constants;
import com.matrix.visitingcard.http.AsyncHttp;
import com.matrix.visitingcard.http.parser.Parser;
import com.matrix.visitingcard.http.request.SocialLoginRequest;
import com.matrix.visitingcard.logger.VLogger;
import com.matrix.visitingcard.util.SharedPrefs;

public class SignUpFormActivity extends Activity {

  private AccountManager mAccountManager;
  private Spinner mSpinner;
  protected String mAccountName;
  public ProgressDialog progressDialog;
  private AsyncH mAsyncHttp;
  private static final int REQ_SIGN_IN_REQUIRED = 1;
  private SharedPrefs sp;

  @Override
  public void onStart() {
    super.onStart();
    FlurryAgent.onStartSession(this, "C8ZJZ5PWCFZ9WFQ5QKHM");
  }

  @Override
  public void onStop() {
    super.onStop();
    FlurryAgent.onEndSession(this);
  }

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up_form);
    mAccountManager = AccountManager.get(this);
    initialize();
    initializeViews();
    setAccountSpinner();
  }

  @Override
  protected void onDestroy() {
    mAsyncHttp.cancelAllRequests(true);
    super.onDestroy();
  }

  private void initialize() {
    mAsyncHttp = AsyncHttp.getNewInstance();
    sp = SharedPrefs.getInstance(this);
  }

  private void initializeViews() {
    findViewById(R.id.buttonLogin).setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            mAccountName = (String) mSpinner.getSelectedItem();
            new RetrieveTokenTask().execute(mAccountName);
          }
        });
    mSpinner = (Spinner) findViewById(R.id.spinnerAccount);

  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
      new RetrieveTokenTask().execute(mAccountName);
    }
  }

  private class RetrieveTokenTask extends AsyncTask<String, Void, String> {

    @Override
    protected void onPreExecute() {
      progressDialog = new ProgressDialog(SignUpFormActivity.this);
      progressDialog.setMessage("Google Login");
      progressDialog.setCancelable(false);
      progressDialog.show();
      super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
      String accountName = params[0];
      String scopes = "oauth2:profile email";
      String token = null;
      try {
        // VLogger.e("Before ");
        token = GoogleAuthUtil.getToken(getApplicationContext(),
            accountName, scopes);
        // VLogger.e("After ");

        VLogger.d("Token:" + token);
      } catch (IOException e) {
        VLogger.e(e.getMessage());
      } catch (UserRecoverableAuthException e) {
        startActivityForResult(e.getIntent(), REQ_SIGN_IN_REQUIRED);
      } catch (GoogleAuthException e) {
        VLogger.e(e.getMessage());
      }
      return token;
    }

    @Override
    protected void onPostExecute(String token) {
      super.onPostExecute(token);
      VLogger.d("token recieved " + token);
      if (token == null) {
        VLogger.e(" Post exec Unable to login please retry");
        // Toast.makeText(SignUpFormActivity.this,
        // "Unable to login please retry", Toast.LENGTH_LONG)
        // .show();
        return;
      }
      loginToVisitingCardServer(token);

    }
  }

  private void setAccountSpinner() {
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, getAccountNames());
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    mSpinner.setAdapter(adapter);
  }

  private String[] getAccountNames() {

    mAccountManager = AccountManager.get(this);
    Account[] accounts = mAccountManager
        .getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
    String[] names = new String[accounts.length];
    for (int i = 0; i < names.length; i++) {
      names[i] = accounts[i].name;
    }
    return names;
  }

  public void loginToVisitingCardServer(String token) {
    CallProperties connectionProperties = AsyncUtil.getCallProperites(this,
        "social_login", "url.properties");

    SocialLoginRequest param = new SocialLoginRequest("google_oauth2",
        token, sp.getSharedPrefsValueString(Constants.SP.GCM_ID, null));

    VLogger.e("GCM id is "
        + sp.getSharedPrefsValueString(Constants.SP.GCM_ID, null));
    ARHandlerSocialLogin handler = new ARHandlerSocialLogin();

    mAsyncHttp.communicate(connectionProperties, null, param, handler);
  }

  class ARHandlerSocialLogin extends AsyncHttpResponseHandler {

    @Override
    public void onSuccess(int statusCode, Header[] headers, byte[] content) {

      VLogger.d("ConnectionSuccessful, status code " + statusCode
          + "content "
          + (content == null ? "null" : new String(content)));
      progressDialog.dismiss();

      Parser.parseSocialLogin(content);// Saves data to user singelton

      for (Header header : headers) {
        if (header.getName().equalsIgnoreCase("Set-Cookie")) {
          sp.savePreferences(Constants.SP.SESSION_ID,
              header.getValue());
        }
      }
      if (progressDialog != null && progressDialog.isShowing()) {
        progressDialog.dismiss();
      }
      launchHomeScreen();
      // VLogger.e(User.getInstance().getEmail());
      finish();

    }

    @Override
    public void onFailure(int statusCode, Header[] arg1, byte[] response,
        Throwable arg3) {
      VLogger.e("Connection Failed, status code " + statusCode
          + " response "
          + (response == null ? "null" : new String(response)));

      Toast.makeText(SignUpFormActivity.this,
          "Unable to login please retry : " + arg3.getMessage(),
          Toast.LENGTH_LONG).show();
      if (progressDialog != null && progressDialog.isShowing()) {
        progressDialog.dismiss();
      }

    }

  }

  public void launchHomeScreen() {
    startActivity(new Intent(SignUpFormActivity.this, ResideActivity.class));

  }

}




Java Source Code List

android.UnusedStub.java
com.loopj.android.http.AsyncHttpClient.java
com.loopj.android.http.AsyncHttpRequest.java
com.loopj.android.http.AsyncHttpResponseHandler.java
com.loopj.android.http.Base64DataException.java
com.loopj.android.http.Base64OutputStream.java
com.loopj.android.http.Base64.java
com.loopj.android.http.BaseJsonHttpResponseHandler.java
com.loopj.android.http.BinaryHttpResponseHandler.java
com.loopj.android.http.DataAsyncHttpResponseHandler.java
com.loopj.android.http.FileAsyncHttpResponseHandler.java
com.loopj.android.http.JsonHttpResponseHandler.java
com.loopj.android.http.JsonStreamerEntity.java
com.loopj.android.http.MyRedirectHandler.java
com.loopj.android.http.MySSLSocketFactory.java
com.loopj.android.http.PersistentCookieStore.java
com.loopj.android.http.PreemtiveAuthorizationHttpRequestInterceptor.java
com.loopj.android.http.RangeFileAsyncHttpResponseHandler.java
com.loopj.android.http.RequestHandle.java
com.loopj.android.http.RequestParams.java
com.loopj.android.http.ResponseHandlerInterface.java
com.loopj.android.http.RetryHandler.java
com.loopj.android.http.SaxAsyncHttpResponseHandler.java
com.loopj.android.http.SerializableCookie.java
com.loopj.android.http.SimpleMultipartEntity.java
com.loopj.android.http.SyncHttpClient.java
com.loopj.android.http.TextHttpResponseHandler.java
com.loopj.android.http.package-info.java
com.matrix.asynchttplibrary.AsyncH.java
com.matrix.asynchttplibrary.annotation.AsyncHAnnotation.java
com.matrix.asynchttplibrary.annotation.AsyncHIgnoreParam.java
com.matrix.asynchttplibrary.logger.ALogger.java
com.matrix.asynchttplibrary.model.CallProperties.java
com.matrix.asynchttplibrary.parser.AsyncParser.java
com.matrix.asynchttplibrary.request.AsyncRequestHeader.java
com.matrix.asynchttplibrary.request.AsyncRequestParam.java
com.matrix.asynchttplibrary.response.AsyncResponseBody.java
com.matrix.asynchttplibrary.security.CustomSSLSocketFactory.java
com.matrix.asynchttplibrary.util.AsyncUtil.java
com.matrix.visitingcard.AllVCFragment.java
com.matrix.visitingcard.CreateVCActivity.java
com.matrix.visitingcard.ListMyVCFragment.java
com.matrix.visitingcard.ListMyVCRActivity.java
com.matrix.visitingcard.ListOfVCTFragment.java
com.matrix.visitingcard.ResideActivity.java
com.matrix.visitingcard.SelectVCActivity.java
com.matrix.visitingcard.ShareVCDialogFragment.java
com.matrix.visitingcard.SignUpFormActivity.java
com.matrix.visitingcard.SplashScreenActivity.java
com.matrix.visitingcard.VCRCreateDialogFragment.java
com.matrix.visitingcard.ViewVC.java
com.matrix.visitingcard.adapter.SupportArrayAdapter.java
com.matrix.visitingcard.adapter.VCAdapter.java
com.matrix.visitingcard.adapter.VCRAdapter.java
com.matrix.visitingcard.adapter.VCTAdapter.java
com.matrix.visitingcard.constant.Constants.java
com.matrix.visitingcard.gcm.GcmBroadcastReceiver.java
com.matrix.visitingcard.gcm.GcmIntentService.java
com.matrix.visitingcard.http.AsyncHttp.java
com.matrix.visitingcard.http.ProgressJSONResponseCallBack.java
com.matrix.visitingcard.http.ProgressJsonHttpResponseHandler.java
com.matrix.visitingcard.http.UIReloadCallBack.java
com.matrix.visitingcard.http.parser.Parser.java
com.matrix.visitingcard.http.request.AcceptVCRResquest.java
com.matrix.visitingcard.http.request.ShareVCResquest.java
com.matrix.visitingcard.http.request.SocialLoginRequest.java
com.matrix.visitingcard.http.response.FriendsVC.java
com.matrix.visitingcard.http.response.MyVC.java
com.matrix.visitingcard.http.response.VCR.java
com.matrix.visitingcard.http.response.VCTResponse.java
com.matrix.visitingcard.http.response.VC.java
com.matrix.visitingcard.logger.VLogger.java
com.matrix.visitingcard.user.User.java
com.matrix.visitingcard.util.CustomImageDownaloder.java
com.matrix.visitingcard.util.FileUtil.java
com.matrix.visitingcard.util.SharedPrefs.java
com.matrix.visitingcard.util.Util.java
com.matrix.visitingcard.util.VisitingCardApp.java
com.special.ResideMenu.ResideMenuItem.java
com.special.ResideMenu.ResideMenu.java
com.special.ResideMenu.TouchDisableView.java