Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.32 KB | None | 0 0
  1. package com.fitivity.virtualtraining_trainer.UI;
  2.  
  3. import android.content.Intent;
  4. import android.os.AsyncTask;
  5. import android.os.Bundle;
  6. import android.util.Log;
  7. import android.view.View;
  8. import android.widget.Button;
  9. import android.widget.EditText;
  10. import android.widget.ProgressBar;
  11. import android.widget.RelativeLayout;
  12. import android.widget.Toast;
  13.  
  14. import com.fitivity.virtualtraining_trainer.Domain.ClientManager;
  15. import com.fitivity.virtualtraining_trainer.R;
  16. import com.google.android.gms.auth.api.Auth;
  17. import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
  18. import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
  19. import com.google.android.gms.auth.api.signin.GoogleSignInResult;
  20. import com.google.android.gms.common.ConnectionResult;
  21. import com.google.android.gms.common.Scopes;
  22. import com.google.android.gms.common.api.GoogleApiClient;
  23. import com.google.android.gms.common.api.ResultCallback;
  24. import com.google.android.gms.common.api.Scope;
  25. import com.google.android.gms.common.api.Status;
  26. import com.jakewharton.rxbinding.view.RxView;
  27.  
  28. import butterknife.Bind;
  29. import butterknife.ButterKnife;
  30. import rx.Observer;
  31. import rx.functions.Action1;
  32.  
  33. public class SignInActivity extends BaseActivity implements GoogleApiClient.OnConnectionFailedListener {
  34.  
  35.     @Bind(R.id.facebookButton) View facebookButton;
  36.     @Bind(R.id.googleButton) View googleButton;
  37.     @Bind(R.id.cancelButton) View cancelButton;
  38.     @Bind(R.id.terms) View termsButton;
  39.     @Bind(R.id.signInLayout) RelativeLayout signInLayout;
  40.     @Bind(R.id.okSignInButton) Button okSignInButton;
  41.     @Bind(R.id.cancelSignInButton) Button cancelSignInButton;
  42.     @Bind(R.id.emailBox) EditText emailBox;
  43.     @Bind(R.id.progressBar) ProgressBar progressBar;
  44.  
  45.     private NavigationPresenter navigationPresenter;
  46.  
  47.     private static final String TAG = "SignInActivity";
  48.     private GoogleApiClient mGoogleApiClient;
  49.     private static final int RC_SIGN_IN = 9001;
  50.  
  51.     @Override
  52.     protected void onCreate(Bundle savedInstanceState) {
  53.         super.onCreate(savedInstanceState);
  54.         setContentView(R.layout.activity_sign_in);
  55.         ButterKnife.bind(this);
  56.         progressBar.setVisibility(ProgressBar.INVISIBLE);
  57.  
  58.         // Configure sign-in to request the user's ID, email address, and basic info
  59.         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
  60.                 .requestEmail()
  61.                 .build();
  62.  
  63.         // Build a GoogleApiClient with access to the Google Sign-In API and the
  64.         // options specified by gso
  65.         mGoogleApiClient = new GoogleApiClient.Builder(this)
  66.                 .enableAutoManage(this, this)
  67.                 .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
  68.                 .build();
  69.  
  70.         addPresenter(navigationPresenter = new NavigationPresenter());
  71.     }
  72.  
  73.     @Override
  74.     public void onResume() {
  75.         super.onResume();
  76.         progressBar.setVisibility(ProgressBar.INVISIBLE);
  77.     }
  78.  
  79.     @Override
  80.     public void onConnectionFailed(ConnectionResult connectionResult) {
  81.         // An unresolvable error has occurred and Google APIs (including Sign-In) will not
  82.         // be available.
  83.         Log.d(TAG, "onConnectionFailed:" + connectionResult);
  84.     }
  85.  
  86.     @Override
  87.     public void onActivityResult(int requestCode, int resultCode, Intent data) {
  88.         super.onActivityResult(requestCode, resultCode, data);
  89.  
  90.         // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
  91.         if (requestCode == RC_SIGN_IN) {
  92.             GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
  93.             handleSignInResult(result);
  94.         }
  95.     }
  96.  
  97.     private void handleSignInResult(GoogleSignInResult result) {
  98.         Log.d(TAG, "handleSignInResult:" + result.isSuccess());
  99.         if (result.isSuccess()) {
  100.             // Signed in successfully, show authenticated UI.
  101.             GoogleSignInAccount acct = result.getSignInAccount();
  102. //            mStatusTextView.setText(getString(R.string.signed_in_fmt, acct.getDisplayName()));
  103.             Toast.makeText(getApplicationContext(), "Success! <3", Toast.LENGTH_SHORT).show();
  104.             updateUI(true);
  105.         } else {
  106.             // Signed out, show unauthenticated UI.
  107.             Toast.makeText(getApplicationContext(), "Failed D:", Toast.LENGTH_SHORT).show();
  108.             updateUI(false);
  109.         }
  110.     }
  111.  
  112.     private void updateUI(boolean signedIn) {
  113.         if (signedIn) {
  114. //            findViewById(R.id.sign_in_button).setVisibility(View.GONE);
  115. //            findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
  116.         } else {
  117. //            mStatusTextView.setText(R.string.signed_out);
  118.  
  119. //            findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
  120. //            findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
  121.         }
  122.     }
  123.  
  124.     private class NavigationPresenter extends Presenter {
  125.         @Override
  126.         public void start() {
  127.             super.start();
  128.  
  129.             RxView.clicks(facebookButton).subscribe(new Action1<Object>() {
  130.                 @Override
  131.                 public void call(Object o) {
  132.                     signInLayout.setVisibility(RelativeLayout.VISIBLE);
  133.                 }
  134.             });
  135.  
  136.             RxView.clicks(okSignInButton).subscribe(new Action1<Void>() {
  137.                 @Override
  138.                 public void call(Void aVoid) {
  139.                     progressBar.setVisibility(ProgressBar.VISIBLE);
  140.  
  141.                     ClientManager.getInstance(emailBox.getText().toString())
  142.                     .subscribe(new Observer<ClientManager>() {
  143.                         @Override
  144.                         public void onCompleted() {
  145.                             startActivity(new Intent(getApplicationContext(), MainMenuActivity.class));
  146.                         }
  147.  
  148.                         @Override
  149.                         public void onError(Throwable e) {
  150.                             e.printStackTrace();
  151.                         }
  152.  
  153.                         @Override
  154.                         public void onNext(ClientManager clientManager) {
  155.                             progressBar.setVisibility(ProgressBar.INVISIBLE);
  156.                         }
  157.                     });
  158.                     signInLayout.setVisibility(RelativeLayout.INVISIBLE);
  159.                 }
  160.             });
  161.  
  162.             RxView.clicks(cancelSignInButton).subscribe(new Action1<Void>() {
  163.                 @Override
  164.                 public void call(Void aVoid) {
  165.                     signInLayout.setVisibility(RelativeLayout.INVISIBLE);
  166.                     Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
  167.                             new ResultCallback<Status>() {
  168.                                 @Override
  169.                                 public void onResult(Status status) {
  170.                                     // [START_EXCLUDE]
  171.                                     updateUI(false);
  172.                                     // [END_EXCLUDE]
  173.                                 }
  174.                             });
  175.                 }
  176.             });
  177.  
  178.             RxView.clicks(googleButton).subscribe(new Action1<Object>() {
  179.                 @Override
  180.                 public void call(Object o) {
  181. //                    signInLayout.setVisibility(RelativeLayout.VISIBLE);
  182.                     Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
  183.                     startActivityForResult(signInIntent, RC_SIGN_IN);
  184.                 }
  185.             });
  186.  
  187.             RxView.clicks(cancelButton).subscribe(new Action1<Object>() {
  188.                 @Override
  189.                 public void call(Object o) {
  190.                     startActivity(new Intent(getApplicationContext(), WelcomeActivity.class));
  191.                 }
  192.             });
  193.  
  194.             RxView.clicks(termsButton).subscribe(new Action1<Object>() {
  195.                 @Override
  196.                 public void call(Object o) {
  197.                     Toast.makeText(getApplicationContext(), "Terms button clicked", Toast.LENGTH_SHORT).show();
  198.                 }
  199.             });
  200.  
  201.          }
  202.  
  203.     }
  204.  
  205.     class RetrieveUserDataTask extends AsyncTask<String, Void, Void> {
  206.  
  207.         @Override
  208.         protected Void doInBackground(String... params) {
  209.             return null;
  210.         }
  211.     }
  212.  
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement