Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private FirebaseAuth mAuth;
- private FirebaseAuth.AuthStateListener mAuthListener;
- public String email;
- public String password;
- private EditText emailedittext;
- private EditText passwordedittext;
- private TextView mStatusTextView;
- private TextView mDetailTextView;
- private static final String TAG = "EmailPassword";
- SharedPreferences sharedpref;
- private SharedPreferences.Editor loginStateEditor;
- ProgressDialog progressdialog;
- Handler handler = new Handler();
- int status = 0;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
- Fabric.with(this, new Twitter(authConfig));
- setContentView(R.layout.activity_main);
- EditText emailedittext = (EditText)findViewById(R.id.emailedittext);
- EditText passwordedittext = (EditText)findViewById(R.id.passwordedittext);
- final TextView mStatusTextView = (TextView) findViewById(R.id.mStatus);
- TextView mDetailTextView = (TextView) findViewById(R.id.mDetail);
- Button loginbutton = (Button)findViewById(R.id.login);
- Button signupbutton = (Button)findViewById(R.id.signup);
- Button signoutbutton = (Button)findViewById(R.id.signout);
- findViewById(R.id.login).setOnClickListener(this);
- findViewById(R.id.signup).setOnClickListener(this);
- findViewById(R.id.signout).setOnClickListener(this);
- CreateProgressDialog();
- sharedpref = getSharedPreferences("myPref", Context.MODE_PRIVATE);
- loginStateEditor = sharedpref.edit();
- if (sharedpref.getBoolean("success_login", false)) {
- // Start Your Menu Activity
- Intent i = new Intent(MainActivity.this, Menu.class);
- i.putExtra(EXTRA_MESSAGE, email);
- i.putExtra(EXTRA_MESSAGE, password);
- startActivity(i);
- mAuth = FirebaseAuth.getInstance();
- mAuthListener = new FirebaseAuth.AuthStateListener() {
- @Override
- public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
- FirebaseUser user = firebaseAuth.getCurrentUser();
- if (user != null) {
- // User is signed in
- Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
- Intent i = new Intent(MainActivity.this, Menu.class);
- i.putExtra(EXTRA_MESSAGE, email);
- i.putExtra(EXTRA_MESSAGE, password);
- startActivity(i);
- } else {
- // User is signed out
- Log.d(TAG, "onAuthStateChanged:signed_out");
- }
- updateUI(user);
- }
- };}}
- @SuppressLint("StringFormatInvalid")
- private void updateUI(FirebaseUser user) {
- final TextView mStatusTextView = (TextView) findViewById(R.id.mStatus);
- TextView mDetailTextView = (TextView) findViewById(R.id.mDetail);
- Button loginbutton = (Button)findViewById(R.id.login);
- Button signupbutton = (Button)findViewById(R.id.signup);
- Button signoutbutton = (Button)findViewById(R.id.signout);
- findViewById(R.id.login).setOnClickListener(this);
- findViewById(R.id.signup).setOnClickListener(this);
- findViewById(R.id.signout).setOnClickListener(this);
- hideProgressDialog();{
- if (user != null) {
- mStatusTextView.setText(getString(R.string.emailpassword_status_fmt, user.getEmail()));
- mDetailTextView.setText(getString(R.string.firebase_status_fmt, user.getUid()));
- this.findViewById(R.id.login).setVisibility(View.GONE);
- this.findViewById(R.id.signup).setVisibility(View.GONE);
- this.findViewById(R.id.mStatus).setVisibility(View.GONE);
- this.findViewById(R.id.mDetail).setVisibility(View.GONE);
- this.findViewById(R.id.signout).setVisibility(View.VISIBLE);
- } else {
- mStatusTextView.setText(R.string.signed_out);
- mDetailTextView.setText(null);
- this.findViewById(R.id.login).setVisibility(View.VISIBLE);
- this.findViewById(R.id.signup).setVisibility(View.VISIBLE);
- this.findViewById(R.id.mStatus).setVisibility(View.GONE);
- this.findViewById(R.id.mDetail).setVisibility(View.GONE);
- this.findViewById(R.id.signout).setVisibility(View.GONE);
- }
- }
- }
- private void createAccount(final String email, final String password){
- Log.d(TAG, "createAccount:" + email);
- if (!validateForm()) {
- return;
- }
- showProgressDialog();
- mAuth.createUserWithEmailAndPassword(email, password)
- .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- Log.d(TAG, "createUserWithEmail:onComplete:" + task.isSuccessful());
- // If sign in fails, display a message to the user. If sign in succeeds
- // the auth state listener will be notified and logic to handle the
- // signed in user can be handled in the listener.
- if (!task.isSuccessful()) {
- Toast.makeText(MainActivity.this, "Authentication failed.",
- Toast.LENGTH_SHORT).show();
- loginStateEditor.putBoolean("success_login", true);
- loginStateEditor.commit();
- Intent i = new Intent(MainActivity.this, Menu.class);
- i.putExtra(EXTRA_MESSAGE, email);
- i.putExtra(EXTRA_MESSAGE, password);
- startActivity(i);
- }
- hideProgressDialog();
- loginStateEditor.putBoolean("success_login", true);
- loginStateEditor.commit();
- Intent i = new Intent(MainActivity.this, Menu.class);
- startActivity(i);
- }
- });
- }
- private void hideProgressDialog() {
- progressdialog.dismiss();
- }
- private boolean validateForm() {
- boolean valid = true;
- String email = emailedittext.getText().toString();
- if (TextUtils.isEmpty(email)) {
- emailedittext.setError("Required.");
- valid = false;
- } else {
- emailedittext.setError(null);
- }
- String password = passwordedittext.getText().toString();
- if (TextUtils.isEmpty(password)) {
- passwordedittext.setError("Required.");
- valid = false;
- } else {
- passwordedittext.setError(null);
- }
- return valid;
- }
- public void showProgressDialog() {
- status = 0;
- new Thread(new Runnable() {
- @Override
- public void run() {
- while(status < 100){
- status +=1;
- try{
- Thread.sleep(200);
- }catch(InterruptedException e){
- e.printStackTrace();
- }
- handler.post(new Runnable() {
- @Override
- public void run() {
- progressdialog.setProgress(status);
- if(status == 100){
- progressdialog.dismiss();
- }
- }
- });
- }
- }
- }).start();
- }
- @Override
- public void onClick(View v) {
- EditText emailedittext = (EditText)MainActivity.this.findViewById(R.id.emailedittext);
- EditText passwordedittext = (EditText)MainActivity.this.findViewById(R.id.passwordedittext);
- int i = v.getId();
- try {
- if (i == R.id.signup && emailedittext.getText() != null && passwordedittext.getText() != null) {
- createAccount(emailedittext.getText().toString(), passwordedittext.getText().toString());
- String email = emailedittext.getText().toString();
- String password = passwordedittext.getText().toString();
- } else if (i == R.id.login && emailedittext.getText() != null && passwordedittext.getText() != null) {
- signIn(emailedittext.getText().toString(), passwordedittext.getText().toString());
- String email = emailedittext.getText().toString();
- String password = passwordedittext.getText().toString();
- } else if (i == R.id.signout) {
- signOut();
- }
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- public void CreateProgressDialog()
- {
- progressdialog = new ProgressDialog(MainActivity.this);
- progressdialog.setIndeterminate(false);
- progressdialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- progressdialog.setCancelable(true);
- progressdialog.setMax(100);
- progressdialog.show();
- }
- private void signIn(final String email, final String password){
- Log.d(TAG, "signIn:" + email);
- if (!validateForm()) {
- return;
- }
- showProgressDialog();
- mAuth.signInWithEmailAndPassword(email, password)
- .addOnCompleteListener(MainActivity.this, new OnCompleteListener<com.google.firebase.auth.AuthResult>() {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- Log.d(TAG, "signInWithEmail:onComplete:" + task.isSuccessful());
- // If sign in fails, display a message to the user. If sign in succeeds
- // the auth state listener will be notified and logic to handle the
- // signed in user can be handled in the listener.
- if (!task.isSuccessful()) {
- onSuccess();
- {
- Log.w(TAG, "signInWithEmail", task.getException());
- Toast.makeText(MainActivity.this, "Authentication failed.",
- Toast.LENGTH_SHORT).show();
- loginStateEditor.putBoolean("success_login", true);
- loginStateEditor.commit();
- Intent i = new Intent(MainActivity.this, Menu.class);
- i.putExtra(EXTRA_MESSAGE, email);
- i.putExtra(EXTRA_MESSAGE, password);
- startActivity(i);
- }
- if (!task.isSuccessful()) {
- mStatusTextView.setText(R.string.auth_failed);
- }
- hideProgressDialog();
- }
- }
- });
- }
- FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
- {
- if (user != null) {
- // Name, email address, and profile photo Url
- String name = user.getDisplayName();
- String email = user.getEmail();
- Uri photoUrl = user.getPhotoUrl();
- // The user's ID, unique to the Firebase project. Do NOT use this value to
- // authenticate with your backend server, if you have one. Use
- // FirebaseUser.getToken() instead.
- String uid = user.getUid();
- }
- }
- private void signOut() {
- mAuth.signOut();
- updateUI(null);
- }
- @Override
- protected void onStart() {
- super.onStart();
- }
- @Override
- protected void onStop() {
- super.onStop();
- }
- public void onSuccess(){
- sharedpref.getBoolean("success_login", true);
- loginStateEditor.commit();
- Intent i = new Intent(MainActivity.this, Menu.class);
- i.putExtra(EXTRA_MESSAGE, email);
- i.putExtra(EXTRA_MESSAGE, password);
- startActivity(i);
- }
- @Override
- public void onClick(View v) {
- EditText emailedittext = (EditText)MainActivity.this.findViewById(R.id.emailedittext);
- EditText passwordedittext = (EditText)MainActivity.this.findViewById(R.id.passwordedittext);
- int i = v.getId();
- try {
- if (i == R.id.signup && emailedittext.getText() != null && passwordedittext.getText() != null) {
- createAccount(emailedittext.getText().toString(), passwordedittext.getText().toString());
- String email = emailedittext.getText().toString();
- String password = passwordedittext.getText().toString();
- } else if (i == R.id.login && emailedittext.getText() != null && passwordedittext.getText() != null) {
- signIn(emailedittext.getText().toString(), passwordedittext.getText().toString());
- String email = emailedittext.getText().toString();
- String password = passwordedittext.getText().toString();
- } else if (i == R.id.signout) {
- signOut();
- }
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- ittouch W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement