Skip to content
Extraits de code Groupes Projets

Login updated + added system of custom pseudo

Fusionnées Rémy Mathieu a demandé de fusionner remy vers main
3 fichiers
+ 228
50
Comparer les modifications
  • Côte à côte
  • En ligne
Fichiers
3
@@ -9,7 +9,6 @@ import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -20,10 +19,20 @@ import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.HashMap;
import java.util.Map;
public class AccountActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
private final FirebaseDatabase firebaseDb = FirebaseDatabase.getInstance();
private DatabaseReference db;
private Button logout;
private TextView title;
@@ -31,31 +40,92 @@ public class AccountActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account);
getSupportActionBar().hide();
mAuth = FirebaseAuth.getInstance();
FirebaseUser currentUser = mAuth.getCurrentUser();
title = findViewById(R.id.account_title);
if(currentUser != null){
setContentView(R.layout.activity_account);
TextInputEditText email_input = findViewById(R.id.email);
Editable email_string = email_input.getText();
TextInputEditText password_input = findViewById(R.id.password);
Editable password_string = password_input.getText();
//Log.d("LOGIN", "onStart: LOGED");
ImageButton return_btn = findViewById(R.id.return_from_account);
return_btn.setOnClickListener(view -> finish());
db = firebaseDb.getReference("Account_pseudo");
getPseudo(currentUser);
}else{
setContentView(R.layout.activity_account_login);
TextInputEditText email_input = findViewById(R.id.email);
Editable email_string = email_input.getText();
TextInputEditText password_input = findViewById(R.id.password);
Editable password_string = password_input.getText();
Button login = findViewById(R.id.login);
login.setOnClickListener(view -> login(email_string, password_string));
Button login = findViewById(R.id.login);
login.setOnClickListener(view -> login(email_string, password_string));
Button register = findViewById(R.id.register);
register.setOnClickListener(view -> register(email_string, password_string));
Button register = findViewById(R.id.register);
register.setOnClickListener(view -> register(email_string, password_string));
}
ImageButton return_btn = findViewById(R.id.return_from_account);
return_btn.setOnClickListener(view -> finish());
logout = findViewById(R.id.logout);
logout.setOnClickListener(view -> logout());
}
private void getPseudo(FirebaseUser currentUser) {
String id_user = currentUser.getUid();
db.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
title = findViewById(R.id.account_title);
RelativeLayout field_pseudo_layout = findViewById(R.id.field_pseudo_layout);
TextInputEditText pseudo_input = findViewById(R.id.pseudo);
Button register = findViewById(R.id.register_pseudo);
try {
DataSnapshot data = snapshot.child(id_user);
String pseudo = data.getValue().toString();
title.setText("Vous êtes connecté !\n" + currentUser.getEmail() + " & " + id_user + " & " + pseudo);
field_pseudo_layout.setVisibility(View.INVISIBLE);
register.setVisibility(View.INVISIBLE);
} catch (Exception e){
title.setText("Veuillez définir votre pseudo :");
Editable pseudo_string = pseudo_input.getText();
register.setOnClickListener(view -> savePseudo(id_user, pseudo_string));
}
}
@Override
public void onCancelled(DatabaseError error) {
Toast.makeText(AccountActivity.this, "Fail to get data.", Toast.LENGTH_SHORT).show();
}
});
}
private void savePseudo(String id_user, Editable pseudo_string) {
// Write pseudo in the database
Map<String, Object> updates = new HashMap<>();
updates.put(id_user, pseudo_string.toString());
db = firebaseDb.getReference("Account_pseudo");
try {
db.updateChildren(updates);
} catch (Exception e){
Log.d("error", "savePseudo: " + e);
}
isLoged();
}
/**
@Override
public void onStart() {
super.onStart();
@@ -69,19 +139,18 @@ public class AccountActivity extends AppCompatActivity {
logout.setVisibility(View.INVISIBLE);
}
}
*/
private void isLoged(){
logout.setVisibility(View.VISIBLE);
RelativeLayout field = findViewById(R.id.field_layout);
field.setVisibility(View.INVISIBLE);
LinearLayout buttons = findViewById(R.id.button_layout);
buttons.setVisibility(View.INVISIBLE);
FirebaseUser user = mAuth.getCurrentUser();
title.setText("Vous êtes connecté !\n" + user.getEmail());
//Refresh the layout when user is logged
finish();
overridePendingTransition(0, 0);
startActivity(getIntent());
overridePendingTransition(0, 0);
}
private void login(Editable email, Editable password) {
Log.d("listener", "login: click btn");
String email_string = (String)email.toString();
String password_string = (String)password.toString();
if(email_string.isEmpty() || password_string.isEmpty()){
Chargement en cours