I'm doing an exercise but to move on to the registry I'm left as please wait I share the code of the activity main

0

public class MainActivity extends AppCompatActivity {

private static final int REQUEST_CODE = 1000;
Button btn_continue;

IDrinkShopAPI mService;

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

    mService = Common.getAPI();

    btn_continue = (Button) findViewById(R.id.btn_continue);
    btn_continue.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            startLoginPage(LoginType.PHONE);
        }
    });


}

private void startLoginPage(LoginType loginType) {
    Intent intent = new Intent(this, AccountKitActivity.class);
    AccountKitConfiguration.AccountKitConfigurationBuilder builder =
            new AccountKitConfiguration.AccountKitConfigurationBuilder(loginType,
                    AccountKitActivity.ResponseType.TOKEN);
    intent.putExtra(AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,builder.build());
    startActivityForResult(intent,REQUEST_CODE);
}

//Ctrl+O


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE)
    {
        AccountKitLoginResult result = data.getParcelableExtra(AccountKitLoginResult.RESULT_KEY);

        if(result.getError() != null)
        {
            Toast.makeText(this,""+result.getError().getErrorType().getMessage(),Toast.LENGTH_SHORT).show();
        }
        else if(result.wasCancelled())
        {
            Toast.makeText(this,"Cancel",Toast.LENGTH_SHORT).show();
        }
        else
        {
            if (result.getAccessToken() !=null)
            {
                final SpotsDialog alertDialog = new SpotsDialog(MainActivity.this);
                alertDialog.show();
                alertDialog.setMessage("Please waiting...");

                //Get User phone and check exist on server
                AccountKit.getCurrentAccount(new AccountKitCallback<Account>() {
                    @Override
                    public void onSuccess(final Account account) {

                        mService.checkUserExists(account.getPhoneNumber().toString())
                                .enqueue(new Callback<CheckUserResponse>() {
                                    @Override
                                    public void onResponse(Call<CheckUserResponse> call, Response<CheckUserResponse> response) {
                                        CheckUserResponse userResponse = response.body();
                                        if (userResponse.isExist())
                                        {
                                            //if user already exist , just start new Activity
                                            alertDialog.dismiss();
                                        }
                                        else
                                        {
                                            //Else , need register
                                            alertDialog.dismiss();

                                            showRegisterDialog(account.getPhoneNumber().toString());
                                        }
                                    }

                                    @Override
                                    public void onFailure(Call<CheckUserResponse> call, Throwable t) {

                                    }
                                });

                    }

                    @Override
                    public void onError(AccountKitError accountKitError) {
                        Log.d("ERROR", accountKitError.getErrorType().getMessage());

                    }
                });

            }
        }
    }
}

private void showRegisterDialog(final String phone) {

    final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("REGISTER");
    AlertDialog dialog=null;

    LayoutInflater inflater = this.getLayoutInflater();
    View register_layout = inflater.inflate(R.layout.register_layout,null);

    final MaterialEditText edt_name =(MaterialEditText)register_layout.findViewById(R.id.edt_name);
    final MaterialEditText edt_address = (MaterialEditText)register_layout.findViewById(R.id.edt_address);
    final MaterialEditText edt_birthdate = (MaterialEditText)register_layout.findViewById(R.id.edt_birthdate);

    Button btn_register = (Button)register_layout.findViewById(R.id.btn_register);

    edt_birthdate.addTextChangedListener(new PatternedTextWatcher("####-##-##"));

    builder.setView(register_layout);
    dialog = builder.create();
    //Event
    final AlertDialog finalDialog = dialog;
    btn_register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            final SpotsDialog watingDialog = new SpotsDialog(MainActivity.this);
            watingDialog.show();
            watingDialog.setMessage("Please waiting");


            if (TextUtils.isEmpty(edt_address.getText().toString()))
            {
                Toast.makeText(MainActivity.this, "Please enter your address", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(edt_birthdate.getText().toString())) {
                Toast.makeText(MainActivity.this, "Please enter your birthdate", Toast.LENGTH_SHORT).show();
                return;
            }
            if (TextUtils.isEmpty(edt_name.getText().toString())) {
                Toast.makeText(MainActivity.this, "Please enter your name", Toast.LENGTH_SHORT).show();
                return;
            }

            mService.registerNewUser(phone,
                    edt_name.getText().toString(),
                    edt_address.getText().toString(),
                    edt_birthdate.getText().toString())
                    .enqueue(new Callback<User>() {
                        @Override
                        public void onResponse(Call<User> call, Response<User> response) {
                            watingDialog.dismiss();
                            User user = response.body();
                            if (TextUtils.isEmpty(user.getError_msg())) {
                                Toast.makeText(MainActivity.this, "User register successfully", Toast.LENGTH_SHORT).show();
                                //Start new activity
                            }
                        }

                        @Override
                        public void onFailure(Call<User> call, Throwable t) {
                            watingDialog.dismiss();
                        }
                    });


        }

        //Close Dialog

    });



    }

private void printKeyHash() {
    try{
        PackageInfo info = getPackageManager().getPackageInfo("com.example.antonio.androiddrinkshop",
                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) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}
    
asked by user81031 03.08.2018 в 03:46
source

0 answers