From c95f68dc203083b0a18f625e6b10377eecdbc161 Mon Sep 17 00:00:00 2001 From: Paul Cancel <paul.cancel.etu@univ-lille.fr> Date: Thu, 11 Apr 2024 15:05:26 +0200 Subject: [PATCH] =?UTF-8?q?Q4=20:=20Ajout=20activit=C3=A9s=20=C3=A0=20fair?= =?UTF-8?q?e=20et=20urgente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 ++ .../fr/iutlille/ctp2024/MainActivity.java | 42 ++++++++++++++++++- .../fr/iutlille/ctp2024/TacheAdapter.java | 41 ++++++++++++++++++ .../fr/iutlille/ctp2024/TacheViewHolder.java | 20 +++++++++ app/src/main/res/layout/super_tache.xml | 25 +++++++++++ app/src/main/res/layout/taches.xml | 14 +++++++ 6 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/fr/iutlille/ctp2024/TacheAdapter.java create mode 100644 app/src/main/java/fr/iutlille/ctp2024/TacheViewHolder.java create mode 100644 app/src/main/res/layout/taches.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4fed2d4..1bcd0af 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,6 +16,10 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + buildFeatures { + viewBinding = true // génération des ViewBindings, Android Studio v4 + } + buildTypes { release { isMinifyEnabled = false diff --git a/app/src/main/java/fr/iutlille/ctp2024/MainActivity.java b/app/src/main/java/fr/iutlille/ctp2024/MainActivity.java index 2e02a24..adc4437 100755 --- a/app/src/main/java/fr/iutlille/ctp2024/MainActivity.java +++ b/app/src/main/java/fr/iutlille/ctp2024/MainActivity.java @@ -1,22 +1,46 @@ package fr.iutlille.ctp2024; import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.Button; +import android.widget.TextView; -public class MainActivity extends AppCompatActivity implements View.OnClickListener{ +import java.util.List; + +import fr.iutlille.ctp2024.databinding.ActivityMainBinding; +public class MainActivity extends AppCompatActivity implements View.OnClickListener{ + private ActivityMainBinding ui; + private TacheAdapter adapter; + private TacheApplication context; + private List<Tache> liste; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + ui = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(R.layout.super_tache); setTitle("Super Tâches"); + this.context = (TacheApplication) this.getApplication(); + this.liste = context.getTaches(); + // this.adapter = new TacheAdapter(liste); + + TextView tv = findViewById(R.id.textView2); + tv.setText("A faire : " + this.toDo()); + + tv = findViewById(R.id.textView3); + tv.setText("Urgent : " + this.countUrgent()); + Button btn = (Button) findViewById(R.id.button2); btn.setOnClickListener(this); + + RecyclerView.LayoutManager lm = new LinearLayoutManager(this); } @Override @@ -29,4 +53,20 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe startActivity(intent); } } + + private int countUrgent(){ + int cpt = 0; + for(Tache t : this.liste){ + if(t.getPriorite() == Priorite.HAUTE) cpt ++; + } + return cpt; + } + + private int toDo(){ + int cpt = 0; + for(Tache t : this.liste){ + if(t.getStatus() == Status.AFAIRE) cpt ++; + } + return cpt; + } } \ No newline at end of file diff --git a/app/src/main/java/fr/iutlille/ctp2024/TacheAdapter.java b/app/src/main/java/fr/iutlille/ctp2024/TacheAdapter.java new file mode 100644 index 0000000..1a8213e --- /dev/null +++ b/app/src/main/java/fr/iutlille/ctp2024/TacheAdapter.java @@ -0,0 +1,41 @@ +package fr.iutlille.ctp2024; + +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.List; + +import fr.iutlille.ctp2024.databinding.SuperTacheBinding; +import fr.iutlille.ctp2024.databinding.TachesBinding; + +public class TacheAdapter extends RecyclerView.Adapter<TacheViewHolder> { + private List<Tache> taches; + + public TacheAdapter(List<Tache> liste){ + this.taches = liste; + } + + @NonNull + @Override + public TacheViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + TachesBinding binding = TachesBinding.inflate( + LayoutInflater.from(parent.getContext()), + parent, + false + ); + return new TacheViewHolder(binding); + } + + @Override + public void onBindViewHolder(@NonNull TacheViewHolder holder, int position) { + Tache tache = this.taches.get(position); + } + + @Override + public int getItemCount() { + return this.taches.size(); + } +} diff --git a/app/src/main/java/fr/iutlille/ctp2024/TacheViewHolder.java b/app/src/main/java/fr/iutlille/ctp2024/TacheViewHolder.java new file mode 100644 index 0000000..7955deb --- /dev/null +++ b/app/src/main/java/fr/iutlille/ctp2024/TacheViewHolder.java @@ -0,0 +1,20 @@ +package fr.iutlille.ctp2024; + + +import androidx.recyclerview.widget.RecyclerView; + +import fr.iutlille.ctp2024.databinding.SuperTacheBinding; +import fr.iutlille.ctp2024.databinding.TachesBinding; + +public class TacheViewHolder extends RecyclerView.ViewHolder{ + private final TachesBinding ui; + + public TacheViewHolder(TachesBinding ui){ + super(ui.getRoot()); + this.ui = ui; + } + + public void setTache(Tache tache){ + ui.nom.setText(tache.getNom()); + } +} diff --git a/app/src/main/res/layout/super_tache.xml b/app/src/main/res/layout/super_tache.xml index a3c7b73..b5f4a17 100644 --- a/app/src/main/res/layout/super_tache.xml +++ b/app/src/main/res/layout/super_tache.xml @@ -37,5 +37,30 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Quitter" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="horizontal" + android:paddingTop="30dp"> + + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="A faire : " + android:textAlignment="center" + android:textSize="20sp" /> + + <TextView + android:id="@+id/textView3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="Urgent : " + android:textAlignment="center" + android:textSize="20sp" /> + </LinearLayout> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/taches.xml b/app/src/main/res/layout/taches.xml new file mode 100644 index 0000000..ecc2175 --- /dev/null +++ b/app/src/main/res/layout/taches.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_height="100dp" + android:layout_width="match_parent" + android:layout_margin="10dp"> + + <TextView + android:id="@+id/nom" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingVertical="10dp" + android:layout_weight="2" /> + +</LinearLayout> \ No newline at end of file -- GitLab