diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java
index 8f34f87fbb9b33cea265f59025a7f2ac7b9805aa..6654f82d31e569f0f92739c40ef1eaf0061f8e6f 100644
--- a/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java
+++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java
@@ -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()){
diff --git a/app/src/main/res/layout/activity_account.xml b/app/src/main/res/layout/activity_account.xml
index 8767900d6713c4f3ab20ab8e8c412c37462db7cb..18b81bf3827654df43a9c44492349caf1040827d 100644
--- a/app/src/main/res/layout/activity_account.xml
+++ b/app/src/main/res/layout/activity_account.xml
@@ -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>
diff --git a/app/src/main/res/layout/activity_account_login.xml b/app/src/main/res/layout/activity_account_login.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8767900d6713c4f3ab20ab8e8c412c37462db7cb
--- /dev/null
+++ b/app/src/main/res/layout/activity_account_login.xml
@@ -0,0 +1,131 @@
+<?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