Skip to content

Instantly share code, notes, and snippets.

Created April 18, 2017 16:53
Show Gist options
  • Save anonymous/234510dc31bf98e0a0efdaf0c5278b9f to your computer and use it in GitHub Desktop.
Save anonymous/234510dc31bf98e0a0efdaf0c5278b9f to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="contract.manager.login.LoginActivity">
<FrameLayout
android:id="@+id/login_conteiner"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.constraint.ConstraintLayout>
package contract.manager.login;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import contract.manager.R;
public class LoginActivity extends AppCompatActivity {
private Contracts.Presenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
LoginFragmentView view = LoginFragmentView.newInstance();
presenter = new LoginPresenter(view);
getSupportFragmentManager().beginTransaction().add(R.id.login_conteiner, view, "login").commit();
}
@Override
protected void onStart() {
super.onStart();
presenter.start();
}
@Override
protected void onStop() {
super.onStop();
presenter.stop();
}
}
package contract.manager.login;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import contract.manager.R;
public class LoginFragmentView extends Fragment implements Contracts.View {
private static final String TAG = "LoginFragmentView";
@BindView(R.id.login_til_email)
TextInputLayout email;
@BindView(R.id.login_til_senha)
TextInputLayout senha;
@BindView(R.id.login_tv_esqueceu_senha)
TextView esqueceu;
@BindView(R.id.login_pb_carregando)
ProgressBar carregando;
@BindView(R.id.login_bt_login)
Button login;
private Contracts.Presenter presenter;
public LoginFragmentView() {
}
public static LoginFragmentView newInstance() {
LoginFragmentView fragment = new LoginFragmentView();
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_login_fragment_view, container, false);
ButterKnife.bind(this, v);
return v;
}
@Override
public void setPresenter(Contracts.Presenter presenter) {
this.presenter = presenter;
}
@OnClick(R.id.login_bt_login)
void login() {
limparErros();
presenter.autenticarUsuario(
email.getEditText().getText().toString(),
senha.getEditText().getText().toString());
}
@Override
public void mostrarEmailErro(boolean mostrar) {
if (mostrar) {
email.setError("Email inválido");
} else {
email.setErrorEnabled(false);
}
}
@Override
public void mostrarSenhaErro(boolean mostrar) {
if (mostrar) {
senha.setError("Senha inválida");
} else {
senha.setErrorEnabled(false);
}
}
@Override
public void mostrarEmailNaoCadastradoErro(boolean mostrar) {
if (mostrar) {
email.setError("Email não está cadastrado");
} else {
email.setErrorEnabled(false);
}
}
@Override
public void mostrarHorarioErro(boolean mostrar) {
SnackErro("Fora do horário de trabalho.");
}
@Override
public void mostrarInativoErro(boolean mostrar) {
SnackErro("Usuario inativo.");
}
private void SnackErro(String msg) {
if (getView() == null) return;
Snackbar.make(getView(), msg, Snackbar.LENGTH_INDEFINITE).setAction("Fechar", new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().finish();
}
}).show();
}
@Override
public void mostrarCarregando(boolean mostrar) {
carregando.setVisibility(mostrar ? View.VISIBLE : View.GONE);
login.setEnabled(!mostrar);
email.setEnabled(!mostrar);
senha.setEnabled(!mostrar);
}
@Override
public void mostrarEsqueceuSenha(boolean mostrar) {
senha.setError("Confira sua senha e tente novamente.");
esqueceu.setVisibility(mostrar ? View.VISIBLE : View.INVISIBLE);
}
@Override
public void mostrarTelaPrincipal() {
// startActivity(new Intent(getContext(),PrincipalActivity.class));
Toast.makeText(getContext(), "Logado com: " + FirebaseAuth.getInstance().getCurrentUser().getEmail(), Toast.LENGTH_SHORT).show();
}
private void limparErros() {
TextInputLayout inputLayout[] = {email, senha};
for (TextInputLayout inp : inputLayout) {
inp.setErrorEnabled(false);
}
esqueceu.setVisibility(View.INVISIBLE);
login.setEnabled(true);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="contract.manager">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".splash.SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".login.LoginActivity">
<intent-filter>
<action android:name="android.intent.action.QUICK_VIEW" />
</intent-filter>
</activity>
<activity
android:name=".principal.MainActivity"
android:label="@string/title_activity_main"
android:theme="@style/AppTheme.NoActionBar"></activity>
</application>
</manifest>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment