Открытие разных DialogFragment с условием входа пользователя
При нажатии на CardView открывается DialogFragment1 с авторизацией пользователя, после того как он авторизовался этот DialogFragment1 закрывается и мне нужно чтобы при нажатии на этот же CardView открывался DialogFragment2, то есть нужно сделать условия что при авторизированном пользователе открывался другой DialogFragment. Как это сделать?
Это CardView по нажатию на который открывается DialogFragment с авторизацией
profile.setOnClickListener(v -> {
DialogProfile dialog = new DialogProfile();
dialog.show(requireFragmentManager(), "DialogProfile");
});
Так выглядит метод с помощью которого проходит авторизация
private void performSignUp() {
String userName = User_Name_Reg.getText().toString();
String userSurname = User_Surname_Reg.getText().toString();
String userEmail = User_Email_Reg.getText().toString();
String userPassword = User_Password_Reg.getText().toString();
String userRepassword = User_Repassword_Reg.getText().toString();
Call<ApiResponse> call = ApiClient.getApiClient().create(ApiInterface.class).performUserSignIn(userName, userSurname, userEmail, userPassword, userRepassword);
call.enqueue(new Callback<ApiResponse>() {
@Override
public void onResponse(Call<ApiResponse> call, Response<ApiResponse> response) {
if (response.code() == 200) {
if (response.body().getStatus().equals("ok")) {
if (response.body().getResultCode() == 1) {
FragmentDialogLogin.displayUserInformation(getString(R.string.Registration_completed));
int current = DialogAuthorization.VP_dialog_authorization.getCurrentItem();
if (current != 0) {
DialogAuthorization.VP_dialog_authorization.setCurrentItem(current - 1, true);
}
} else {
displayUserInfo(getString(R.string.User_already_exists));
User_Password_Reg.setText("");
}
} else {
displayUserInfo(getString(R.string.Something_went_wrong));
User_Password_Reg.setText("");
}
} else {
displayUserInfo(getString(R.string.Something_went_wrong));
User_Password_Reg.setText("");
}
}
@Override
public void onFailure(Call<ApiResponse> call, Throwable t) {
}
});
}
Ответы (1 шт):
Автор решения: Вася Воронцов
→ Ссылка
Пусть это всё находится в Activity. Изменяете boolean isAuthorized на true в случае успешной регистрации и проверяете при нажатии:
boolean isAuthorized = false;
//Регистрация
private void performSignUp() {
/*
Your code here...
*/
FragmentDialogLogin.displayUserInformation(getString(R.string.Registration_completed));
isAuthorized = true;
/*
Your code here...
*/
}
//Нажатие на CardView
profile.setOnClickListener(v -> {
if (isAuthorized) {
DialogProfileAuthorized dialog = new DialogProfileAuthorized();
dialog.show(requireFragmentManager(), "DialogProfileAuthorized");
} else {
DialogProfile dialog = new DialogProfile();
dialog.show(requireFragmentManager(), "DialogProfile");
}
});