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">
<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" />
</component>
<component name="ProjectType">

View File

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

View File

@ -12,6 +12,7 @@
android:supportsRtl="true"
android:theme="@style/Theme.TP05EX02_ArcEnCiel"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true">
@ -21,6 +22,16 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</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>
</manifest>

View File

@ -1,5 +1,6 @@
package fr.iutfbleau.dev45.wamster.tp05ex02_arcenciel;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.CheckBox;
@ -8,6 +9,8 @@ import androidx.appcompat.app.AppCompatActivity;
public class Activite2 extends AppCompatActivity {
private CheckBox[] listeChoix;
private int index;
private boolean[] etatCouleur;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -23,11 +26,51 @@ public class Activite2 extends AppCompatActivity {
this.listeChoix[ListeCouleur.INDICE_VIOLET] = findViewById(R.id.coche_violet);
EvenementBoutonValider evenementBoutonValider = new EvenementBoutonValider(this);
Button boutonValider = findViewById(R.id.bouton_valider);
Button boutonAnnuler = findViewById(R.id.bouton_annuler);
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(){
return this.listeChoix;
public boolean setEtatCoche(boolean[] etatCoche){
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 ListeCouleur gestionCouleur;
public DetectClic(View view){
public DetectClic(View view, ListeCouleur gestionCouleur){
this.view = view;
this.gestionCouleur = new ListeCouleur();
this.gestionCouleur = gestionCouleur;
}
@Override
@ -47,4 +47,5 @@ public class DetectClic extends GestureDetector.SimpleOnGestureListener{
public void onLongPress(MotionEvent e) {
Log.v("test","Long Press");
}
}

View File

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

View File

@ -14,18 +14,12 @@ public class EvenementBoutonValider implements View.OnClickListener {
@Override
public void onClick(View v){
boolean[] etatCoche = this.getEtatCoche();
Intent intention = new Intent(this.activite2, MainActivity.class);
this.activite2.startActivity(intention);
int idBouton = v.getId();
if (idBouton == R.id.bouton_valider){
this.activite2.demarrerActiviteMain(true);
}
public boolean[] getEtatCoche(){
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();
else if (idBouton == R.id.bouton_annuler){
this.activite2.demarrerActiviteMain(false);
}
return listeEtatCoche;
}
}

View File

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

View File

@ -22,28 +22,21 @@ public class ListeCouleur {
};
public ListeCouleur(){
this.indexColor = 0;
this.setValideCouleurTrue();
}
public ListeCouleur(boolean[] etatCouleur){
this.indexColor = 0;
if (!this.setValideCouleur(etatCouleur)){
this.setValideCouleurTrue();
}
this.setListeCouleurTrue();
}
public int couleurSuivante(){
int i;
for (i=0; i<ListeCouleur.listeCouleur.length; i++){
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 0x00000000;
}
public boolean setValideCouleur(boolean[] nouvelEtat){
public boolean setListeCouleur(boolean[] nouvelEtat){
if (nouvelEtat.length == ListeCouleur.listeCouleur.length){
this.couleurValide = nouvelEtat;
return true;
@ -51,7 +44,24 @@ public class ListeCouleur {
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];
int 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 android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private EvenementClic evenementClic;
private EvenementBoutonChoix evenementBoutonChoix;
private ListeCouleur listeCouleur;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -16,10 +21,32 @@ public class MainActivity extends AppCompatActivity {
View arrierePlan = findViewById(R.id.arrierePlan);
Button bouton = findViewById(R.id.bouton);
EvenementClic evenementClic = new EvenementClic(arrierePlan);
EvenementBoutonChoix evenementBoutonChoix = new EvenementBoutonChoix(this);
this.listeCouleur = new ListeCouleur();
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.setBackgroundColor(this.listeCouleur.getActualColor());
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);
}
}