Я пытался реорганизовать модуль входа в приложение. Любые ошибки и предложения, над чем еще я должен работать, и я должен помнить
Вход Presenter.java
public class LoginPresenter implements LoginInteractor.LoginPresenter {
private LoginInteractor.LoginView loginView;
public LoginPresenter(LoginInteractor.LoginView loginView) {
this.loginView = loginView;
}
@Override
public void CheckIdUserVerified(FirebaseUser currentUser, Context context) {
if (currentUser != null) {
if (currentUser.isEmailVerified()) {
loginView.OnLoginSuccess();
}
}
}
@Override
public void Register() {
loginView.OnRegister();
}
@Override
public void Login(String email,String password,final FirebaseAuth mAuth){
if (email.isEmpty() && password.isEmpty()) {
loginView.OnMessage("password is empty");
return;
} else if (email.isEmpty()) {
loginView.OnMessage("email is empty");
return;
} else if (password.isEmpty()) {
loginView.OnMessage("password is empty");
return;
} else {
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener((Executor) this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
if (mAuth.getCurrentUser().isEmailVerified()) {
loginView.OnLoginSuccess();
} else {
loginView.builderr("Verify","Verify mo to","Verify");
loginView.OnMessage("Failed");
}
}
}});}}}
Должен ли я использовать Firebase на части модели или все в порядке, если она в представлении
Login View.java
public class LoginView extends AppCompatActivity implements
LoginInteractor.LoginView {
private LoginPresenter loginPresenter;
public Button login;
public TextView register;
EditText editTextEmail, editTextPassword;
FirebaseAuth mAuth;
FirebaseUser currentUser;
ProgressDialog progressDialog;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Initialize();
loginPresenter.CheckIdUserVerified(currentUser,this);
//LoginButtonOnClick
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loginPresenter.Login(editTextEmail.getText().toString(),
editTextPassword.getText().toString(),mAuth);
}
});
//Goto Register Page
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loginPresenter.Register();
}
});
}
@Override
public void Initialize() {
loginPresenter = new LoginPresenter(this);
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
login = (Button)findViewById(R.id.buttonLogin);
register = (TextView)findViewById(R.id.registertext);
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Logging in..");
progressDialog.setCancelable(false);
mAuth = FirebaseAuth.getInstance();
currentUser = mAuth.getCurrentUser();
}
public void OnVerify(){
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.gm");
if (launchIntent != null) {
startActivity(launchIntent);//null pointer check in case package name was not found
} else {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://mail.google.com/mail/#inbox")));
}
}
public void OnRegister(){
startActivity(new Intent(LoginView.this, RegisterView.class));
}
public void OnMessage(String message){
Toast.makeText(LoginView.this, message, Toast.LENGTH_SHORT).show();
}
public void OnLoginSuccess(){
startActivity(new Intent(LoginView.this, MainActivity.class));
finish();
}
public void builderr(String BulderTitle,String BuilderMessage,String
PositiveButton) {
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(BulderTitle);
builder.setMessage(BuilderMessage);
builder.setInverseBackgroundForced(true);
builder.setPositiveButton(PositiveButton,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
OnVerify();
}});
AlertDialog alert = builder.create();
alert.show();
}}
LoginInteractor
public interface LoginInteractor {
interface LoginView{
void Initialize();
void OnLoginSuccess();
void OnMessage(String message);
void OnRegister();
void builderr(String BulderTitle,String BuilderMessage,String
PositiveButton);
}
interface LoginPresenter{
void CheckIdUserVerified(FirebaseUser currentUser, Context context);
void Login(String email, String password, FirebaseAuth mAuth);
void Register();
}
}
** Если бы мне нужно было использовать Firebase на модели, какая-нибудь идея, которая будет выглядеть?Я как бы заново изучал и искал ответы, но как мне инициализировать FireBase без создания метода? **