fin du tp05 (le code est pas opti)

This commit is contained in:
Alexis WAMSTER 2024-03-11 11:09:45 +01:00
parent abbc7c0a63
commit d824671ed9
10 changed files with 120 additions and 34 deletions

View File

@ -1,6 +1,6 @@
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_16" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View File

@ -29,6 +29,7 @@ android {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
} }
buildToolsVersion = "34.0.0"
} }
dependencies { dependencies {

View File

@ -12,6 +12,7 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.TP05EX02_ArcEnCiel" android:theme="@style/Theme.TP05EX02_ArcEnCiel"
tools:targetApi="31"> tools:targetApi="31">
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true"> android:exported="true">
@ -21,6 +22,16 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".Activite2"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
</application> </application>
</manifest> </manifest>

View File

@ -1,5 +1,6 @@
package fr.iutfbleau.dev45.wamster.tp05ex02_arcenciel; package fr.iutfbleau.dev45.wamster.tp05ex02_arcenciel;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.widget.Button; import android.widget.Button;
import android.widget.CheckBox; import android.widget.CheckBox;
@ -8,6 +9,8 @@ import androidx.appcompat.app.AppCompatActivity;
public class Activite2 extends AppCompatActivity { public class Activite2 extends AppCompatActivity {
private CheckBox[] listeChoix; private CheckBox[] listeChoix;
private int index;
private boolean[] etatCouleur;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -23,11 +26,51 @@ public class Activite2 extends AppCompatActivity {
this.listeChoix[ListeCouleur.INDICE_VIOLET] = findViewById(R.id.coche_violet); this.listeChoix[ListeCouleur.INDICE_VIOLET] = findViewById(R.id.coche_violet);
EvenementBoutonValider evenementBoutonValider = new EvenementBoutonValider(this); EvenementBoutonValider evenementBoutonValider = new EvenementBoutonValider(this);
Button boutonValider = findViewById(R.id.bouton_valider); Button boutonValider = findViewById(R.id.bouton_valider);
Button boutonAnnuler = findViewById(R.id.bouton_annuler);
boutonValider.setOnClickListener(evenementBoutonValider); boutonValider.setOnClickListener(evenementBoutonValider);
boutonAnnuler.setOnClickListener(evenementBoutonValider);
Intent intension = this.getIntent();
if (intension != null){
this.etatCouleur = intension.getBooleanArrayExtra("etatCouleur");
this.index = intension.getIntExtra("index",0);
this.setEtatCoche(etatCouleur);
}
} }
public CheckBox[] getListeCoche(){ public boolean setEtatCoche(boolean[] etatCoche){
return this.listeChoix; if (etatCoche.length != this.listeChoix.length){
return false;
}
int i;
for (i=0; i<etatCoche.length; i++){
this.listeChoix[i].setChecked(etatCoche[i]);
}
return true;
}
public void demarrerActiviteMain(boolean validerModification) {
boolean[] etatCoche = this.getEtatCoche();
Intent intension = new Intent(this, MainActivity.class);
if (validerModification){
intension.putExtra("etatCouleur", etatCoche);
}
else{
intension.putExtra("etatCouleur", this.etatCouleur);
}
intension.putExtra("index", this.index);
this.startActivity(intension);
}
public boolean[] getEtatCoche(){
boolean[] listeEtatCoche = new boolean[this.listeChoix.length];
int i;
for (i=0; i<listeEtatCoche.length; i++){
listeEtatCoche[i] = this.listeChoix[i].isChecked();
}
return listeEtatCoche;
} }
} }

View File

@ -11,9 +11,9 @@ public class DetectClic extends GestureDetector.SimpleOnGestureListener{
private View view; private View view;
private ListeCouleur gestionCouleur; private ListeCouleur gestionCouleur;
public DetectClic(View view){ public DetectClic(View view, ListeCouleur gestionCouleur){
this.view = view; this.view = view;
this.gestionCouleur = new ListeCouleur(); this.gestionCouleur = gestionCouleur;
} }
@Override @Override
@ -47,4 +47,5 @@ public class DetectClic extends GestureDetector.SimpleOnGestureListener{
public void onLongPress(MotionEvent e) { public void onLongPress(MotionEvent e) {
Log.v("test","Long Press"); Log.v("test","Long Press");
} }
} }

View File

@ -12,7 +12,6 @@ public class EvenementBoutonChoix implements View.OnClickListener {
} }
@Override @Override
public void onClick(View v){ public void onClick(View v){
Intent intention = new Intent(this.mainActivity, Activite2.class); this.mainActivity.demarrerActivite2();
this.mainActivity.startActivity(intention);
} }
} }

View File

@ -14,18 +14,12 @@ public class EvenementBoutonValider implements View.OnClickListener {
@Override @Override
public void onClick(View v){ public void onClick(View v){
boolean[] etatCoche = this.getEtatCoche(); int idBouton = v.getId();
Intent intention = new Intent(this.activite2, MainActivity.class); if (idBouton == R.id.bouton_valider){
this.activite2.startActivity(intention); this.activite2.demarrerActiviteMain(true);
} }
else if (idBouton == R.id.bouton_annuler){
public boolean[] getEtatCoche(){ this.activite2.demarrerActiviteMain(false);
CheckBox[] listeCoche = this.activite2.getListeCoche();
boolean[] listeEtatCoche = new boolean[listeCoche.length];
int i;
for (i=0; i<listeEtatCoche.length; i++){
listeEtatCoche[i] = listeCoche[i].isChecked();
} }
return listeEtatCoche;
} }
} }

View File

@ -8,8 +8,8 @@ public class EvenementClic implements View.OnTouchListener{
private GestureDetector gestureDetector; private GestureDetector gestureDetector;
private DetectClic listener; private DetectClic listener;
public EvenementClic(View view) { public EvenementClic(View view, ListeCouleur listeCouleur) {
this.listener = new DetectClic(view); this.listener = new DetectClic(view, listeCouleur);
gestureDetector = new GestureDetector(this.listener); gestureDetector = new GestureDetector(this.listener);
} }

View File

@ -22,28 +22,21 @@ public class ListeCouleur {
}; };
public ListeCouleur(){ public ListeCouleur(){
this.indexColor = 0; this.indexColor = 0;
this.setValideCouleurTrue(); this.setListeCouleurTrue();
}
public ListeCouleur(boolean[] etatCouleur){
this.indexColor = 0;
if (!this.setValideCouleur(etatCouleur)){
this.setValideCouleurTrue();
}
} }
public int couleurSuivante(){ public int couleurSuivante(){
int i; int i;
for (i=0; i<ListeCouleur.listeCouleur.length; i++){ for (i=0; i<ListeCouleur.listeCouleur.length; i++){
this.indexColor = (this.indexColor+1)%ListeCouleur.listeCouleur.length; this.indexColor = (this.indexColor+1)%ListeCouleur.listeCouleur.length;
if (this.couleurValide[this.indexColor] == false){ if (this.couleurValide[this.indexColor]){
return ListeCouleur.listeCouleur[this.indexColor]; return ListeCouleur.listeCouleur[this.indexColor];
} }
} }
return 0x00000000; return 0x00000000;
} }
public boolean setValideCouleur(boolean[] nouvelEtat){ public boolean setListeCouleur(boolean[] nouvelEtat){
if (nouvelEtat.length == ListeCouleur.listeCouleur.length){ if (nouvelEtat.length == ListeCouleur.listeCouleur.length){
this.couleurValide = nouvelEtat; this.couleurValide = nouvelEtat;
return true; return true;
@ -51,7 +44,24 @@ public class ListeCouleur {
return false; return false;
} }
public void setValideCouleurTrue(){ public boolean[] getValideCouleur(){
return this.couleurValide;
}
public int getIndex(){
return this.indexColor;
}
public void setIndex(int index){
this.indexColor = index;
}
public int getActualColor(){
this.indexColor --;
return this.couleurSuivante();
}
public void setListeCouleurTrue(){
this.couleurValide = new boolean[ListeCouleur.listeCouleur.length]; this.couleurValide = new boolean[ListeCouleur.listeCouleur.length];
int i; int i;
for (i=0; i<ListeCouleur.listeCouleur.length; i++){ for (i=0; i<ListeCouleur.listeCouleur.length; i++){

View File

@ -2,12 +2,17 @@ package fr.iutfbleau.dev45.wamster.tp05ex02_arcenciel;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private EvenementClic evenementClic;
private EvenementBoutonChoix evenementBoutonChoix;
private ListeCouleur listeCouleur;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -16,10 +21,32 @@ public class MainActivity extends AppCompatActivity {
View arrierePlan = findViewById(R.id.arrierePlan); View arrierePlan = findViewById(R.id.arrierePlan);
Button bouton = findViewById(R.id.bouton); Button bouton = findViewById(R.id.bouton);
EvenementClic evenementClic = new EvenementClic(arrierePlan); this.listeCouleur = new ListeCouleur();
EvenementBoutonChoix evenementBoutonChoix = new EvenementBoutonChoix(this); this.evenementClic = new EvenementClic(arrierePlan, this.listeCouleur);
this.evenementBoutonChoix = new EvenementBoutonChoix(this);
Intent intension = this.getIntent();
Log.v("test",intension.toString());
if (intension != null){
boolean[] etatCouleur = intension.getBooleanArrayExtra("etatCouleur");
if (etatCouleur != null){
Log.v("test",etatCouleur.toString());
this.listeCouleur.setListeCouleur(etatCouleur);
this.listeCouleur.setIndex(intension.getIntExtra("index", 0));
}
}
arrierePlan.setOnTouchListener(evenementClic); arrierePlan.setOnTouchListener(evenementClic);
arrierePlan.setBackgroundColor(this.listeCouleur.getActualColor());
bouton.setOnClickListener(evenementBoutonChoix); bouton.setOnClickListener(evenementBoutonChoix);
} }
public void demarrerActivite2() {
boolean[] etatCouleur = this.listeCouleur.getValideCouleur();
int index = this.listeCouleur.getIndex();
Intent intension = new Intent(MainActivity.this, Activite2.class);
intension.putExtra("etatCouleur", etatCouleur);
intension.putExtra("index", index);
this.startActivity(intension);
}
} }