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
+19 -37
View File
@@ -1,49 +1,42 @@
package sae.chuzzle;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener {
public class MainActivity extends Activity {
private Controleur controleur;
private Button btnMenu;
private boolean hardMode;
private EtatJeu etatJeu;
private Button btnMenu;
private VueGrille vueGrille;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// --- Modèle ---
// --- Modèle
long graine = getIntent().getLongExtra("graine", System.currentTimeMillis());
hardMode = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE)
.getBoolean("hard_mode", false);
boolean daltonien = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE)
.getBoolean("daltonien", false);
hardMode = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE).getBoolean("hard_mode", false);
etatJeu = new EtatJeu(graine, hardMode);
// --- Restauration si retour de pause ---
// --- Restauration si retour de pause
if (savedInstanceState != null) {
etatJeu.restaurerEtat(savedInstanceState);
}
// --- Vue ---
VueGrille vueGrille = findViewById(R.id.vueGrille);
// --- Controleur ---
btnMenu = findViewById(R.id.btnMenu);
btnMenu.setOnClickListener(this);
// --- Vue
vueGrille = findViewById(R.id.vueGrille);
// --- Controleur métier
controleur = new Controleur(
this,
etatJeu,
@@ -54,20 +47,20 @@ public class MainActivity extends Activity implements View.OnClickListener {
hardMode
);
// --- INITIALISATION DE L'OBJECTIF ---
// "Objectif : ..." remplacé par le vrai énoncé
// --- INITIALISATION DE L'OBJECTIF
controleur.initialiserObjectif(savedInstanceState);
// --- Gestion tactile ---
// --- Gestion tactile
GestionnaireTactile gestionnaireTactile =
new GestionnaireTactile(vueGrille, etatJeu, controleur);
vueGrille.setOnTouchListener(gestionnaireTactile);
// --- Controleur
btnMenu = findViewById(R.id.btnMenu);
MainController mainController = new MainController(this, etatJeu);
btnMenu.setOnClickListener(mainController);
}
// -
// CYCLE DE VIE
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@@ -82,16 +75,5 @@ public class MainActivity extends Activity implements View.OnClickListener {
@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);
}
}
}