Android Open Source - Google-Sign-In-Android Main Activity






From Project

Back to project page Google-Sign-In-Android.

License

The source code is released under:

MIT License

If you think the Android project Google-Sign-In-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.androidtitlan.gdgbootcamp;
//from   w  ww.j  a va  2s  .  co  m
import android.app.ProgressDialog;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.view.View.OnClickListener;

import com.androidtitlan.gdgbootcamp.fragment.GooglePlusFragment;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
import com.google.android.gms.common.Scopes;
import com.google.android.gms.plus.PlusClient;
import com.google.android.gms.plus.model.people.Person;

public class MainActivity extends FragmentActivity implements
    OnConnectionFailedListener, ConnectionCallbacks, OnClickListener {

  private PlusClient.Builder plusClient = null;
  private static final int REQUEST_CODE = 9000;
  private PlusClient client;
  private ProgressDialog dialog;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    plusClient = new PlusClient.Builder(this, this, this);
    plusClient.setScopes(Scopes.PLUS_LOGIN);
    plusClient.setVisibleActivities(
        "http://schemas.google.com/AddActivity",
        "http://schemas.google.com/BuyActivity");
    client = plusClient.build();

    findViewById(R.id.button_sign_in).setOnClickListener(this);
    dialog = new ProgressDialog(this);

      getIntent().getAction();
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    if (client.isConnected()) {
      client.disconnect();
    }
  }

  @Override
  public void onClick(View arg0) {

    if (arg0.getId() == R.id.button_sign_in) {
      dialog.setMessage("Sign in...");
      if (!client.isConnected()) {
        client.connect();
        dialog.show();
      } else {
        if (client.isConnected() && dialog.isShowing()) {
          dialog.dismiss();
          client.clearDefaultAccount();
          client.disconnect();
        }
      }
    }

  }

  @Override
  public void onConnected(Bundle connectionHint) {

    if (client.isConnected() && dialog.isShowing()) {
      dialog.cancel();
      Person person = client.getCurrentPerson();
      addPlusFragment(person.getDisplayName(), client,plusClient);
    }
  }

  @Override
  public void onDisconnected() {

  }

  @Override
  public void onConnectionFailed(ConnectionResult result) {
    if (result.hasResolution()) {
      try {
        result.startResolutionForResult(MainActivity.this, REQUEST_CODE);
      } catch (SendIntentException e) {

        client.disconnect();
        client.connect();
      }
    }
  }

  private void addPlusFragment(String user, PlusClient client,PlusClient.Builder builder) {

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    transaction.add(R.id.fragment_container,
        GooglePlusFragment.newInstance(user, client,builder));
    transaction.commit();

  }
}




Java Source Code List

com.androidtitlan.gdgbootcamp.MainActivity.java
com.androidtitlan.gdgbootcamp.PostActivity.java
com.androidtitlan.gdgbootcamp.fragment.GooglePlusFragment.java