diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java index 6654f82d31e569f0f92739c40ef1eaf0061f8e6f..dfabbafc4d4778ae07bb8b279f5d556481e93586 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/AccountActivity.java @@ -3,6 +3,7 @@ package be.lepl1509group13.workoutwarrior; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; +import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.util.Log; @@ -27,6 +28,7 @@ import com.google.firebase.database.ValueEventListener; import java.util.HashMap; import java.util.Map; +import java.util.Objects; public class AccountActivity extends AppCompatActivity { @@ -46,10 +48,16 @@ public class AccountActivity extends AppCompatActivity { FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ + //get which button is clicked in the navigation + Intent intent = this.getIntent(); + String item = intent.getStringExtra("item"); + if(Objects.equals(item, "Mon compte")){ + //todo + } else if (Objects.equals(item, "Mes amis")) { + //todo + } setContentView(R.layout.activity_account); - //Log.d("LOGIN", "onStart: LOGED"); - db = firebaseDb.getReference("Account_pseudo"); getPseudo(currentUser); }else{ diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java index d261242f4f7836fe16b5de5bc73a944edb7dd51d..c1ee501e4ee30b16f5c9dd32adc808e3da514158 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java @@ -4,16 +4,24 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.view.GravityCompat; +import androidx.drawerlayout.widget.DrawerLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; import android.view.View; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.navigation.NavigationView; +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; @@ -40,6 +48,7 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte private Integer numberOfProgramsToDisplay = 0, totalNumberOfCustomPrograms = 0; private boolean needsRefresh = false; + @SuppressLint({"SetTextI18n"}) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -52,8 +61,36 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte TextView open_program_creation_btn = findViewById(R.id.program_creation_button); open_program_creation_btn.setOnClickListener(this::open_program_creation); - ImageButton open_account = findViewById(R.id.account); - open_account.setOnClickListener(this::open_account); + ImageButton open_nav = findViewById(R.id.account); + DrawerLayout drawerLayout = findViewById(R.id.drawer_layout); + NavigationView navigationView = findViewById(R.id.navigation_view); + + //open the navigation + open_nav.setOnClickListener(view -> { + if (!drawerLayout.isDrawerOpen(GravityCompat.START)) { + FirebaseAuth mAuth = FirebaseAuth.getInstance(); + FirebaseUser currentUser = mAuth.getCurrentUser(); + + LayoutInflater inflater = getLayoutInflater(); + View menu_header = inflater.inflate(R.layout.menu_header, null); + TextView text_header_menu = menu_header.findViewById(R.id.menu_text); + + if(currentUser != null){ + //todo + text_header_menu.setText("Vous êtes connecté !"); + }else{ + text_header_menu.setText("Vous n'êtes pas connecté. Rendez-vous dans la section Mon compte pour vous connecter."); + } + drawerLayout.openDrawer(GravityCompat.START); + } + }); + + //check when a button is clicked in the navigation + navigationView.setNavigationItemSelectedListener(item -> { + open_account((String) item.getTitle()); + drawerLayout.closeDrawer(GravityCompat.START); + return false; + }); } @Override @@ -78,15 +115,14 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte result -> { if (result.getResultCode() == 1) { //Update the page if a program is added or deleted - //Log.d("TAG", ": " + Activity.RESULT_OK ); - //Log.d("TAG", ": " + result.getResultCode() ); needsRefresh = true; } } ); - private void open_account(View v) { + private void open_account(String item) { Intent intent = new Intent(MainActivity.this, AccountActivity.class); + intent.putExtra("item", item); startActivity(intent); } diff --git a/app/src/main/res/drawable/menu.png b/app/src/main/res/drawable/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f355e0e25f19438a9c7684e24dd29d809b43e1 Binary files /dev/null and b/app/src/main/res/drawable/menu.png differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6e83f1921b6a96538cc4af0a7b40c3906be0d4ce..7c8bf82de008aa805854b5daa2c16a19628cb6d7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,107 +1,123 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.drawerlayout.widget.DrawerLayout 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=".MainActivity"> + tools:context=".MainActivity" + tools:openDrawer="start" + android:id="@+id/drawer_layout"> <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/top" - android:layout_width="376dp" - android:layout_height="90dp" - android:padding="16dp" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.542" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.04"> - - - <ImageView - android:id="@+id/imageView" - android:layout_width="56dp" - android:layout_height="56dp" - android:adjustViewBounds="false" - android:background="@drawable/homepage_activities_border" - android:clipToOutline="true" - android:fadingEdgeLength="10dp" - android:scaleType="centerCrop" - android:src="@drawable/logo" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/top" + android:layout_width="376dp" + android:layout_height="90dp" + android:padding="16dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintHorizontal_bias="0.542" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.0" /> + app:layout_constraintVertical_bias="0.04"> - <TextView - android:id="@+id/welcomebacktxt" - android:layout_width="wrap_content" - android:layout_height="65dp" - android:fontFamily="@font/poppins_semibold" - android:gravity="center" - android:text="@string/bienvenue_message" - android:textSize="29sp" - app:layout_constraintBottom_toBottomOf="parent" + + <ImageView + android:id="@+id/imageView" + android:layout_width="56dp" + android:layout_height="56dp" + android:adjustViewBounds="false" + android:background="@drawable/homepage_activities_border" + android:clipToOutline="true" + android:fadingEdgeLength="10dp" + android:scaleType="centerCrop" + android:src="@drawable/logo" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + + <TextView + android:id="@+id/welcomebacktxt" + android:layout_width="wrap_content" + android:layout_height="65dp" + android:fontFamily="@font/poppins_semibold" + android:gravity="center" + android:text="@string/bienvenue_message" + android:textSize="29sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.054" + app:layout_constraintStart_toEndOf="@+id/imageView" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" + tools:text="Bienvenue" /> + + <ImageButton + android:id="@+id/account" + android:layout_width="32dp" + android:layout_height="32dp" + android:adjustViewBounds="false" + android:background="@drawable/homepage_activities_border" + android:clipToOutline="true" + android:scaleType="centerCrop" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + android:src="@drawable/menu" + app:tint="@color/orange" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <ScrollView + android:id="@+id/scrollView2" + android:layout_width="377dp" + android:layout_height="450dp" + android:fillViewport="true" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.054" - app:layout_constraintStart_toEndOf="@+id/imageView" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.0" - tools:text="Bienvenue" /> - - <ImageButton - android:id="@+id/account" - android:layout_width="32dp" - android:layout_height="32dp" - android:adjustViewBounds="false" - android:background="@drawable/homepage_activities_border" - android:clipToOutline="true" - android:scaleType="centerCrop" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/top" + android:layout_marginTop="20dp" > + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/homepage_recycler" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/> + + </ScrollView> + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - android:src="@drawable/user" - app:tint="@color/orange" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/scrollView2"> + + <Button + android:id="@+id/program_creation_button" + android:layout_width="318dp" + android:layout_height="37dp" + android:backgroundTint="@color/orange" + android:clipToOutline="true" + android:text="Créer un programme" /> + + </RelativeLayout> </androidx.constraintlayout.widget.ConstraintLayout> - <ScrollView - android:id="@+id/scrollView2" - android:layout_width="377dp" - android:layout_height="450dp" - android:fillViewport="true" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/top" - android:layout_marginTop="20dp" > - - <androidx.recyclerview.widget.RecyclerView - android:id="@+id/homepage_recycler" - android:layout_width="match_parent" - android:layout_height="match_parent" - app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/> - - </ScrollView> - - <RelativeLayout + <com.google.android.material.navigation.NavigationView + android:id="@+id/navigation_view" android:layout_width="wrap_content" - android:layout_height="wrap_content" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/scrollView2"> - - <Button - android:id="@+id/program_creation_button" - android:layout_width="318dp" - android:layout_height="37dp" - android:backgroundTint="@color/orange" - android:clipToOutline="true" - android:text="Créer un programme" /> - - </RelativeLayout> - -</androidx.constraintlayout.widget.ConstraintLayout> + android:layout_height="match_parent" + android:layout_gravity="start" + app:menu="@menu/menu_main" + app:headerLayout="@layout/menu_header"/> + +</androidx.drawerlayout.widget.DrawerLayout> diff --git a/app/src/main/res/layout/menu_header.xml b/app/src/main/res/layout/menu_header.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e283f7810342a6a81b47142d11837f0be34d935 --- /dev/null +++ b/app/src/main/res/layout/menu_header.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="120dp" + android:background="@color/orange"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/menu_layout" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ImageView + android:id="@+id/menu_image" + android:layout_width="50dp" + android:layout_height="50dp" + android:src="@drawable/user" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + android:layout_marginLeft="30dp"/> + + <TextView + android:id="@+id/menu_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_toEndOf="@+id/menu_image" + android:text="Paramètres" + android:textSize="30sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@+id/menu_image" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/menu_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Vous êtes connecté !" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/menu_title" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + + +</RelativeLayout> \ No newline at end of file diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml new file mode 100644 index 0000000000000000000000000000000000000000..427245be6e70a2aa3921361d85f2c70b6d91c46b --- /dev/null +++ b/app/src/main/res/menu/menu_main.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + <group android:checkableBehavior="single"> + <item + android:id="@+id/menu_item_1" + android:title="Mon compte" /> + <item + android:id="@+id/menu_item_2" + android:title="Mes amis" /> + </group> +</menu> \ No newline at end of file