séparation class main - respect model MVC

This commit is contained in:
2026-03-28 15:46:57 +01:00
parent ed520566a8
commit 48f6a479aa
2 changed files with 104 additions and 97 deletions
+79 -97
View File
@@ -1,97 +1,79 @@
package sae.chuzzle; package sae.chuzzle;
import android.app.Activity; import android.app.Activity;
import android.content.Intent; import android.os.Bundle;
import android.os.Bundle; import android.widget.Button;
import android.view.View; import android.widget.TextView;
import android.widget.Button;
import android.widget.RadioButton; public class MainActivity extends Activity {
import android.widget.Spinner;
import android.widget.TextView; private Controleur controleur;
private boolean hardMode;
public class MainActivity extends Activity implements View.OnClickListener { private EtatJeu etatJeu;
private Controleur controleur; private Button btnMenu;
private Button btnMenu; private VueGrille vueGrille;
private boolean hardMode;
private EtatJeu etatJeu;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
// --- Modèle --- // --- Modèle
long graine = getIntent().getLongExtra("graine", System.currentTimeMillis()); long graine = getIntent().getLongExtra("graine", System.currentTimeMillis());
hardMode = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE) hardMode = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE).getBoolean("hard_mode", false);
.getBoolean("hard_mode", false);
boolean daltonien = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE)
.getBoolean("daltonien", false); etatJeu = new EtatJeu(graine, hardMode);
etatJeu = new EtatJeu(graine, hardMode); // --- Restauration si retour de pause
if (savedInstanceState != null) {
// --- Restauration si retour de pause --- etatJeu.restaurerEtat(savedInstanceState);
if (savedInstanceState != null) { }
etatJeu.restaurerEtat(savedInstanceState);
} // --- Vue
vueGrille = findViewById(R.id.vueGrille);
// --- Vue ---
VueGrille vueGrille = findViewById(R.id.vueGrille); // --- Controleur métier
controleur = new Controleur(
// --- Controleur --- this,
etatJeu,
btnMenu = findViewById(R.id.btnMenu); vueGrille,
btnMenu.setOnClickListener(this); graine,
(TextView) findViewById(R.id.tvScore),
(TextView) findViewById(R.id.tvCoups),
controleur = new Controleur( hardMode
this, );
etatJeu,
vueGrille, // --- INITIALISATION DE L'OBJECTIF
graine, controleur.initialiserObjectif(savedInstanceState);
(TextView) findViewById(R.id.tvScore),
(TextView) findViewById(R.id.tvCoups), // --- Gestion tactile
hardMode GestionnaireTactile gestionnaireTactile =
); new GestionnaireTactile(vueGrille, etatJeu, controleur);
vueGrille.setOnTouchListener(gestionnaireTactile);
// --- INITIALISATION DE L'OBJECTIF ---
// "Objectif : ..." remplacé par le vrai énoncé // --- Controleur
controleur.initialiserObjectif(savedInstanceState); btnMenu = findViewById(R.id.btnMenu);
MainController mainController = new MainController(this, etatJeu);
// --- Gestion tactile --- btnMenu.setOnClickListener(mainController);
GestionnaireTactile gestionnaireTactile = }
new GestionnaireTactile(vueGrille, etatJeu, controleur);
vueGrille.setOnTouchListener(gestionnaireTactile); @Override
protected void onSaveInstanceState(Bundle outState) {
} super.onSaveInstanceState(outState);
if (etatJeu != null) {
// - etatJeu.sauvegarderEtat(outState);
// CYCLE DE VIE }
if (controleur != null) {
@Override controleur.sauvegarderEtat(outState);
protected void onSaveInstanceState(Bundle outState) { }
super.onSaveInstanceState(outState); }
if (etatJeu != null) {
etatJeu.sauvegarderEtat(outState); @Override
} protected void onDestroy() {
if (controleur != null) { super.onDestroy();
controleur.sauvegarderEtat(outState); }
} }
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onClick(View v) {
if (v == btnMenu) {
etatJeu.forcerFinDePartie();
Intent intent = new Intent(this, MenuActivity.class);
startActivity(intent);
}
}
}
@@ -0,0 +1,25 @@
package sae.chuzzle;
import android.content.Intent;
import android.view.View;
public class MainController implements View.OnClickListener {
private final MainActivity activity;
private final EtatJeu etatJeu;
public MainController(MainActivity activity, EtatJeu etatJeu) {
this.activity = activity;
this.etatJeu = etatJeu;
}
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.btnMenu) {
etatJeu.forcerFinDePartie();
Intent intent = new Intent(activity, MenuActivity.class);
activity.startActivity(intent);
}
}
}