diff --git a/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java b/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java index d261242f4f7836fe16b5de5bc73a944edb7dd51d..3f430f1797a7d4560e8e7cb0901fb616b84509b2 100644 --- a/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java +++ b/app/src/main/java/be/lepl1509group13/workoutwarrior/MainActivity.java @@ -4,9 +4,12 @@ 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.view.View; @@ -14,6 +17,7 @@ import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.navigation.NavigationView; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; @@ -40,6 +44,7 @@ public class MainActivity extends AppCompatActivity implements MainAdapter.OnIte private Integer numberOfProgramsToDisplay = 0, totalNumberOfCustomPrograms = 0; private boolean needsRefresh = false; + @SuppressLint("ClickableViewAccessibility") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -52,8 +57,23 @@ 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)) { + 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 +98,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/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6e83f1921b6a96538cc4af0a7b40c3906be0d4ce..bd84dedce60afd82f6ee3ca82b7aa366028bc8e1 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/user" + 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..47cc71441d7666b160450ea8971830ceda4325fe --- /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="Compte" /> + <item + android:id="@+id/menu_item_2" + android:title="Mes amis" /> + </group> +</menu> \ No newline at end of file