Skip to content
Extraits de code Groupes Projets
Valider f8588eba rédigé par Rémy Mathieu's avatar Rémy Mathieu
Parcourir les fichiers

Merge branch 'remy' into 'main'

Login updated + added system of custom pseudo

See merge request !27
parents c213fa36 a24ba2e6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!27Login updated + added system of custom pseudo
......@@ -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()){
......
......@@ -21,7 +21,7 @@
tools:text="Hello" />
<RelativeLayout
android:id="@+id/field_layout"
android:id="@+id/field_pseudo_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
......@@ -31,31 +31,16 @@
android:padding="10dp">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/email_layout"
android:id="@+id/pseudo_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/email"
android:id="@+id/pseudo"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="Email" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="60dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/password"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="Password" />
android:hint="Pseudo" />
</com.google.android.material.textfield.TextInputLayout>
......@@ -68,21 +53,14 @@
android:layout_alignParentEnd="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/field_layout"
app:layout_constraintTop_toBottomOf="@+id/field_pseudo_layout"
android:gravity="center">
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Se connecter" />
<Button
android:id="@+id/register"
android:id="@+id/register_pseudo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="S'enregistrer"
android:layout_marginLeft="10dp"/>
android:text="Enregistrer" />
</LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AccountActivity">
<TextView
android:id="@+id/account_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:paddingHorizontal="20dp"
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/relativeLayout"
tools:text="Hello" />
<RelativeLayout
android:id="@+id/field_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:padding="10dp">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/email_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/email"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="Email" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="60dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/password"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:hint="Password" />
</com.google.android.material.textfield.TextInputLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/button_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/field_layout"
android:gravity="center">
<Button
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Se connecter" />
<Button
android:id="@+id/register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="S'enregistrer"
android:layout_marginLeft="10dp"/>
</LinearLayout>
<RelativeLayout
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="@color/orange"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageButton
android:id="@+id/return_from_account"
android:layout_width="66dp"
android:layout_height="61dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:background="@color/orange"
android:paddingLeft="10dp"
android:paddingTop="1dp"
android:paddingRight="10dp"
android:paddingBottom="4dp"
android:scaleType="fitCenter"
android:src="@drawable/return_button"
android:textAlignment="center"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/logout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Deconnexion"
android:backgroundTint="@color/orange"
app:layout_constraintBottom_toBottomOf="@+id/relativeLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginRight="10dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter