В приведенных ниже кодах я проверяю доступность подключения inte rnet, прежде чем пользователь сможет зарегистрироваться / войти, все работает нормально, но после того, как я выпустил приложение, я заметил, что пользователи из указанных c веков ( Сирия - Иордания), у которых есть ограничения на использование приложений из-за государственных правил, они получили cra sh и приложение закрылось при попытке зарегистрировать новую учетную запись или войти в систему с ранее созданными учетными записями, а другой пользователь - нет, если они из другой страны , Я не хочу обходить это, пока это относится к правилам правительства, чтобы контролировать страну, но я хочу тост за сообщение, которое уведомляет пользователя о том, что этот тип регистрации / входа в систему запрещен в его стране, вместо того, чтобы приводить к сбою приложения и внезапное закрытие. Примечание. - Пользователи, использующие прокси-приложения (VPN), могут зарегистрироваться или войти в одни и те же страны. Пожалуйста, найдите прикрепленные коды для регистрации / входа.
/// РЕГИСТРАЦИЯ ДЕЯТЕЛЬНОСТИ ///
public void UserRegister() {
emailed = email.getText().toString();
passworded = password.getText().toString();
if (TextUtils.isEmpty(emailed)){
Toast.makeText(Register.this, " ادخل عنوان بريد الكتروني اخر", Toast.LENGTH_SHORT).show();
return;
}else if (TextUtils.isEmpty(passworded)){
Toast.makeText(Register.this, " ادخل كلمة سر خاصة", Toast.LENGTH_SHORT).show();
return;
}else if (passworded.length()<8){
Toast.makeText(Register.this," كلمة السر لا تقل عن 8 رموز", Toast.LENGTH_SHORT).show();
return;
}else if (phone.length()<11) {
Toast.makeText( Register.this, " رقم هاتف قصير", Toast.LENGTH_SHORT ).show();
return;
}
mDialog.setMessage(" جاري انشاء الحساب , شكرا لانتضارك...");
mDialog.setCanceledOnTouchOutside(false);
mDialog.show();
mAuth.createUserWithEmailAndPassword(emailed,passworded).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
sendEmailVerification();
mDialog.dismiss();
createAnewUser(task.getResult().getUser());
mAuth.signOut();
startActivity(new Intent(Register.this,login.class));
Animatoo.animateWindmill(Register.this);
}else{
Toast.makeText(Register.this," خطأ في انشاء حسابك , تحقق من المعلومات والاتصال", Toast.LENGTH_SHORT).show();
mDialog.dismiss();
}
}
});
}
//Email verification code using FirebaseUser object and using isSucccessful()function.
public void sendEmailVerification() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user!=null){
user.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Toast.makeText(Register.this," تم ارسال رسالة التفعيل الى بريدك , يرجى التحقق", Toast.LENGTH_SHORT).show();
FirebaseAuth.getInstance().signOut();
}
}
});
}
}
// АКТИВНОСТЬ ВХОДА //
private void userlogin() {
email = Email.getText().toString().trim();
password = Password.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
Toast.makeText(login.this, "تأكد من عنوان البريد الالكتروني", Toast.LENGTH_SHORT).show();
return;
} else if (TextUtils.isEmpty(password)) {
Toast.makeText(login.this, "كلمة مرور خاطئة", Toast.LENGTH_SHORT).show();
return;
}
if (saveLoginCheckBox.isChecked()) {
loginPrefsEditor.putBoolean("saveLogin", true);
loginPrefsEditor.putString("email", email);
loginPrefsEditor.putString("password", password);
loginPrefsEditor.commit();
} else {
loginPrefsEditor.clear();
loginPrefsEditor.commit();
}
dialog.setMessage("جاري تسجيل الدخول , يرجى الانتظار..");
dialog.setIndeterminate(true);
dialog.show();
if(isOnline()){ mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
dialog.dismiss();
Toast.makeText(login.this, "تـأكد من المعلومات لطفاً", Toast.LENGTH_SHORT).show();
} else {
dialog.dismiss();
checkIfEmailVerified();
}
}
});
}
else{
Toast.makeText(login.this, "لا يوجد اتصال بالانترنت , تحقق من الاتصال لطفاً", Toast.LENGTH_LONG).show();}
}
private void checkIfEmailVerified(){
FirebaseUser users=FirebaseAuth.getInstance().getCurrentUser();
assert users != null;
boolean emailVerified=users.isEmailVerified();
if (emailVerified ){
{
Email.getText().clear();
Password.getText().clear();
Intent intent = new Intent(login.this, DashboardActivity.class);
// Sending Email to Dashboard Activity using intent.
intent.putExtra(userEmail,email);
startActivity(intent);}
}
else {
Toast.makeText( this , "التحقق من البربد لطفاً" ,Toast.LENGTH_LONG).show();
}
}