Retrofit 2.0 Условная логика в onResponse не работает - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать логику входа в систему, используя пост-запрос с модификацией, вот мой код

Button btnLogin = (Button) findViewById(R.id.btn_login);
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showProgress(true,"Sedang login... ");
                String username = inputUsername.getText().toString();
                String password = inputPassword.getText().toString();
                apiService.login(new LoginParam(username,password)).enqueue(new Callback<AuthResponse>() {
                    @Override
                    public void onResponse(Call<AuthResponse> call, Response<AuthResponse> response) {
                        if(response.isSuccessful()){
                            showProgress(false,null);
                            Editor ed = sp.edit();
                            ed.putString("token",response.body().getToken());
                            Boolean login = response.body().getLogin();
                            Log.d("Login",response.body().getLogin().toString());
                            ed.putBoolean("login",response.body().getLogin().booleanValue());
                            ed.putString("username",response.body().getUser().getUsername());
                            ed.commit();
                            //startActivity(new Intent(getBaseContext(), MainActivity.class));
                            if(!login){
                                TextView infologin = (TextView) findViewById(R.id.loginInfo);
                                infologin.setText("Username dan password salah, coba lagi");
                                infologin.setVisibility(View.VISIBLE);
                                return;
                            }
                            else{
                                Intent i = new Intent(getBaseContext(),MainActivity.class);
                                i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP| Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                i.putExtra("route","afterlogin");
                                startActivity(i);
                                finish();
                            }
                        }
                    }

                    @Override
                    public void onFailure(Call<AuthResponse> call, Throwable t) {
                        LoginActivity.this.showProgress(false, null);
                        Toast.makeText(LoginActivity.this, "Gagal koneksi ke server, periksa jaringan internet anda error: " + t.toString(), Toast.LENGTH_LONG).show();
                    }
                });

            }
        });

это работало, когда имя пользователя и пароль верны, но когда это не так, он отображает только анимацию загрузки, блок, который обрабатывает, если логин ложен, остается неисполненным. что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...