Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package vn.softdreams.easyon.ui.acc;
- import android.content.Intent;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager;
- import android.content.pm.Signature;
- import android.os.Bundle;
- import android.support.design.widget.TextInputLayout;
- import android.util.Base64;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.inputmethod.EditorInfo;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.facebook.CallbackManager;
- import com.facebook.FacebookCallback;
- import com.facebook.FacebookException;
- import com.facebook.FacebookSdk;
- import com.facebook.GraphRequest;
- import com.facebook.GraphResponse;
- import com.facebook.login.LoginManager;
- import com.facebook.login.LoginResult;
- import com.google.android.gms.auth.api.Auth;
- import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
- import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
- import com.google.android.gms.auth.api.signin.GoogleSignInResult;
- import com.google.android.gms.common.ConnectionResult;
- import com.google.android.gms.common.api.GoogleApiClient;
- import com.google.android.gms.common.api.ResultCallback;
- import com.google.android.gms.common.api.Status;
- import org.json.JSONObject;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- import java.util.Arrays;
- import java.util.List;
- import butterknife.Bind;
- import butterknife.ButterKnife;
- import butterknife.OnClick;
- import retrofit.RetrofitError;
- import retrofit.client.Response;
- import vn.softdreams.easyon.R;
- import vn.softdreams.easyon.common.Constants;
- import vn.softdreams.easyon.common.Constants.LOGIN_TYPE;
- import vn.softdreams.easyon.common.Storage;
- import vn.softdreams.easyon.common.Utils;
- import vn.softdreams.easyon.models.Area;
- import vn.softdreams.easyon.models.CustomerSignUpRequest;
- import vn.softdreams.easyon.models.CustomerSignUpRequestSocial;
- import vn.softdreams.easyon.models.LoginRequest;
- import vn.softdreams.easyon.models.LoginResponse;
- import vn.softdreams.easyon.services.CancelableCallback;
- import vn.softdreams.easyon.services.RestClient;
- import vn.softdreams.easyon.ui.AreaActivity;
- import vn.softdreams.easyon.ui.BaseActivity;
- import vn.softdreams.easyon.ui.MainActivity;
- /**
- * Created by Administrator on 7/18/2016.
- */
- public class SignUpActivity extends BaseActivity implements GoogleApiClient.OnConnectionFailedListener {
- @Bind(R.id.edt_name_sign_up)
- EditText mName;
- @Bind(R.id.edt_username_sign_up)
- EditText mUsername;
- @Bind(R.id.edt_password_sign_up)
- EditText mPassword;
- @Bind(R.id.input_name)
- TextInputLayout mInpName;
- @Bind(R.id.input_username)
- TextInputLayout mInpUsername;
- @Bind(R.id.input_password)
- TextInputLayout mInpPassword;
- private CallbackManager mManager;
- private GoogleApiClient mGClient;
- @OnClick(R.id.sign_up_btn)
- void customerSignUp() {
- signUpCustomer();
- }
- @OnClick(R.id.google_sign_up_button)
- void googleSignIn() {
- Intent loginIntent = Auth.GoogleSignInApi.getSignInIntent(mGClient);
- startActivityForResult(loginIntent, Constants.RC_SIGN_IN);
- }
- @OnClick(R.id.fb_sign_up_button_im)
- void facebookSignIn() {
- List<String> permissionNeeds = Arrays.asList("user_photos", "email", "user_friends");
- LoginManager.getInstance().logInWithReadPermissions(this, permissionNeeds);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_sign_up);
- ButterKnife.bind(this);
- setupToolbar();
- setTitle(R.string.sign_up);
- // try {
- // PackageInfo info = getPackageManager().getPackageInfo(
- // "vn.softdreams.easyon",
- // PackageManager.GET_SIGNATURES);
- // for (Signature signature : info.signatures) {
- // MessageDigest md = MessageDigest.getInstance("SHA");
- // md.update(signature.toByteArray());
- // Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
- // }
- // } catch (PackageManager.NameNotFoundException e) {
- //
- // } catch (NoSuchAlgorithmException e) {
- //
- // }
- GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
- .requestEmail()
- .build();
- mGClient = new GoogleApiClient.Builder(this)
- .enableAutoManage(this, this)
- .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
- .build();
- mPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
- if (i == EditorInfo.IME_ACTION_DONE) {
- signUpCustomer();
- hideSoftInput(getCurrentFocus());
- return true;
- } else
- return false;
- }
- });
- mManager = CallbackManager.Factory.create();
- LoginManager.getInstance().registerCallback(mManager, new FacebookCallback<LoginResult>() {
- @Override
- public void onSuccess(LoginResult loginResult) {
- Log.i("#FB", loginResult.getAccessToken().getUserId());
- GraphRequest request = GraphRequest.newMeRequest(
- loginResult.getAccessToken(),
- new GraphRequest.GraphJSONObjectCallback() {
- @Override
- public void onCompleted(JSONObject object, GraphResponse response) {
- Log.v("LoginActivity", response.toString());
- try {
- String email = object.getString("email");
- String id = object.getString("id");
- String name = object.getString("name");
- LoginRequest loginRequest = new LoginRequest();
- loginRequest.setUsername(email);
- loginRequest.setPassword(id);
- loginRequest.setType(LOGIN_TYPE.SOCIAL);
- final CustomerSignUpRequestSocial cust = new CustomerSignUpRequestSocial();
- cust.setEmail(email);
- cust.setSocial_id(id);
- cust.setSocial_type(LOGIN_TYPE.SOCIAL_FB);
- cust.setFull_name(name);
- //startLogin(loginRequest);
- startCreateCusSocial(cust);
- } catch (Exception e) {
- e.printStackTrace();
- Toast.makeText(SignUpActivity.this, getString(R.string.unable_login), Toast.LENGTH_SHORT).show();
- }
- }
- });
- Bundle parameters = new Bundle();
- parameters.putString("fields", "id,name,email");
- request.setParameters(parameters);
- request.executeAsync();
- }
- @Override
- public void onCancel() {
- }
- @Override
- public void onError(FacebookException error) {
- Toast.makeText(SignUpActivity.this, getString(R.string.unable_login), Toast.LENGTH_SHORT).show();
- }
- });
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == Constants.RC_SIGN_IN) {
- GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
- Log.d("TAG", "handleSignInResult:" + result.isSuccess());
- if (result.isSuccess()) {
- showProcessDialog();
- GoogleSignInAccount account = result.getSignInAccount();
- LoginRequest request = new LoginRequest();
- request.setPassword(account.getId());
- request.setUsername(account.getEmail());
- request.setType(LOGIN_TYPE.SOCIAL);
- final CustomerSignUpRequestSocial cust = new CustomerSignUpRequestSocial();
- cust.setEmail(account.getEmail());
- cust.setSocial_id(account.getId());
- cust.setSocial_type(LOGIN_TYPE.SOCIAL_GG);
- cust.setFull_name(account.getDisplayName());
- startCreateCusSocial(cust);
- //startLogin(request);
- } else {
- Toast.makeText(SignUpActivity.this, getString(R.string.unable_register), Toast.LENGTH_SHORT).show();
- }
- } else mManager.onActivityResult(requestCode, resultCode, data);
- }
- @Override
- public void onConnectionFailed(ConnectionResult connectionResult) {
- }
- @Override
- public void onBackPressed() {
- finish();
- }
- private void signUpCustomer() {
- mInpName.setError(null);
- mInpUsername.setError(null);
- mInpPassword.setError(null);
- String username = mUsername.getText().toString();
- String password = mPassword.getText().toString();
- String name = mName.getText().toString();
- View focusView;
- if (!Utils.isNameValid(name)) {
- mInpName.setError(getString(R.string.name_not_valid));
- focusView = mName;
- focusView.requestFocus();
- } else if (!Utils.isEmailValid(username)) {
- mInpUsername.setError(getString(R.string.email_not_valid));
- focusView = mUsername;
- focusView.requestFocus();
- } else if (!Utils.isPasswordValid(password)) {
- mInpPassword.setError(getString(R.string.password_not_valid));
- focusView = mPassword;
- focusView.requestFocus();
- } else {
- showProcessDialog();
- final CustomerSignUpRequest customer = new CustomerSignUpRequest();
- customer.setEmail(username);
- customer.setPassword(password);
- customer.setFullname(name);
- RestClient.builder(this).createCustomer(customer, new CancelableCallback<LoginResponse>() {
- @Override
- public void onSuccess(LoginResponse loginResponse, Response response) {
- Storage.getInstance().setAccessToken(loginResponse.getJwt().getToken(), SignUpActivity.this);
- loginFinish(loginResponse.getUserId());
- Area area=new Area();
- area.setId((int) loginResponse.getAreaId());
- area.setName(loginResponse.getEmail());
- Storage.getInstance().setArea(getApplicationContext(),area);
- if (area.getId() != 0) {
- Storage.getInstance().setParentId(getApplicationContext(), area.getId());
- Storage.getInstance().setArea(getApplicationContext(), area);
- } else {
- Storage.getInstance().setParentId(getApplicationContext(), area.getId());
- Storage.getInstance().setArea(getApplicationContext(), area);
- }
- Intent intent = new Intent(getApplicationContext(), MainActivity.class);
- startActivity(intent);
- finish();
- }
- @Override
- public void onFailure(RetrofitError error) {
- hideProgressDialog();
- Toast.makeText(SignUpActivity.this, getString(R.string.unable_register), Toast.LENGTH_SHORT).show();
- }
- });
- }
- }
- private void startLogin(LoginRequest loginRequest) {
- showProcessDialog();
- RestClient.builder(this).authorize(loginRequest, new CancelableCallback<LoginResponse>() {
- @Override
- public void onSuccess(LoginResponse loginResponse, Response response) {
- Storage.getInstance().setAccessToken(loginResponse.getJwt().getToken(), SignUpActivity.this);
- loginFinish(loginResponse.getUserId());
- }
- @Override
- public void onFailure(RetrofitError error) {
- Toast.makeText(SignUpActivity.this, getString(R.string.unable_login), Toast.LENGTH_SHORT).show();
- hideProgressDialog();
- Auth.GoogleSignInApi.signOut(mGClient).setResultCallback(
- new ResultCallback<Status>() {
- @Override
- public void onResult(Status status) {
- // ...
- }
- });
- LoginManager.getInstance().logOut();
- }
- });
- }
- private void startCreateCusSocial(CustomerSignUpRequestSocial cust) {
- showProcessDialog();
- RestClient.builder(this).createCustUsingSocial(cust, new CancelableCallback<LoginResponse>() {
- @Override
- public void onSuccess(LoginResponse loginResponse, Response response) {
- Storage.getInstance().setAccessToken(loginResponse.getJwt().getToken(), SignUpActivity.this);
- loginFinish(loginResponse.getUserId());
- }
- @Override
- public void onFailure(RetrofitError error) {
- Toast.makeText(SignUpActivity.this, getString(R.string.unable_login), Toast.LENGTH_SHORT).show();
- hideProgressDialog();
- Auth.GoogleSignInApi.signOut(mGClient).setResultCallback(
- new ResultCallback<Status>() {
- @Override
- public void onResult(Status status) {
- // ...
- }
- });
- LoginManager.getInstance().logOut();
- }
- });
- }
- private void loginFinish(int mUserId) {
- hideProgressDialog();
- Storage.getInstance().setLogin(false);
- Intent intent = new Intent(this, AreaActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
- Storage.getInstance().setCustomerId(this, mUserId);
- startActivity(intent);
- finish();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement