fin du tp05 (le code est pas opti)
This commit is contained in:
parent
abbc7c0a63
commit
d824671ed9
@ -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">
|
||||
|
@ -29,6 +29,7 @@ android {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
buildToolsVersion = "34.0.0"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -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>
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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++){
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user