package com.mobispectra.android.apps.gplus;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.TextView;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.plus.PlusClient;
import com.google.android.gms.plus.model.people.Person;
import com.mobispectra.android.apps.gplus.PlusClientFragment.OnSignedInListener;
import com.samsunghack.apps.android.noq.AppPrefs;
import com.samsunghack.apps.android.noq.NavDrawerMainActivity;
import com.samsunghack.apps.android.noq.R;
public class SignInActivity extends FragmentActivity
implements View.OnClickListener, OnSignedInListener {
public static final int REQUEST_CODE_PLUS_CLIENT_FRAGMENT = 0;
private TextView mSignInStatus;
private PlusClientFragment mSignInFragment;
private SignInButton gPlusSignInButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gplus_signin);
mSignInFragment =
PlusClientFragment.getPlusClientFragment(this, MomentUtil.VISIBLE_ACTIVITIES);
gPlusSignInButton = (SignInButton) findViewById(R.id.sign_in_button);
gPlusSignInButton.setSize(SignInButton.SIZE_WIDE);
gPlusSignInButton.setOnClickListener(this);
findViewById(R.id.sign_out_button).setOnClickListener(this);
findViewById(R.id.revoke_access_button).setOnClickListener(this);
mSignInStatus = (TextView) findViewById(R.id.sign_in_status);
// Initialize Shared Preferences
AppPrefs.init(getApplicationContext());
if(AppPrefs.getUserAccountName(this)!=null) {
// Launch the Dashboard
Intent reservationsIntent = new Intent(SignInActivity.this, NavDrawerMainActivity.class);
startActivity(reservationsIntent);
finish();
}
// Setup the Action bar
// setupActionBar(getString(R.string.gplus_signin));
}
@Override
public void onClick(View view) {
switch(view.getId()) {
case R.id.sign_out_button:
resetAccountState();
mSignInFragment.signOut();
break;
case R.id.sign_in_button:
mSignInFragment.signIn(REQUEST_CODE_PLUS_CLIENT_FRAGMENT);
break;
case R.id.revoke_access_button:
resetAccountState();
mSignInFragment.revokeAccessAndDisconnect();
break;
}
}
@Override
protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
mSignInFragment.handleOnActivityResult(requestCode, responseCode, intent);
}
@Override
public void onSignedIn(PlusClient plusClient) {
mSignInStatus.setText(getString(R.string.signed_in_status));
// We can now obtain the signed-in user's profile information.
Person currentPerson = plusClient.getCurrentPerson();
if (currentPerson != null) {
String greeting = getString(R.string.greeting_status, currentPerson.getDisplayName());
mSignInStatus.setText(greeting);
// Add the user name in the Preferences
AppPrefs.setUserAccountName(SignInActivity.this, currentPerson.getDisplayName());
Intent reservationsIntent = new Intent(SignInActivity.this, NavDrawerMainActivity.class);
startActivity(reservationsIntent);
finish();
} else {
resetAccountState();
}
}
private void resetAccountState() {
mSignInStatus.setText(getString(R.string.signed_out_status));
}
}