From 48f6a479aad0487aac4b01bfb9c133d03f2067c6 Mon Sep 17 00:00:00 2001 From: val Date: Sat, 28 Mar 2026 15:46:57 +0100 Subject: [PATCH] =?UTF-8?q?s=C3=A9paration=20class=20main=20-=20respect=20?= =?UTF-8?q?model=20MVC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/sae/chuzzle/MainActivity.java | 176 ++++++++---------- src/main/java/sae/chuzzle/MainController.java | 25 +++ 2 files changed, 104 insertions(+), 97 deletions(-) create mode 100644 src/main/java/sae/chuzzle/MainController.java diff --git a/src/main/java/sae/chuzzle/MainActivity.java b/src/main/java/sae/chuzzle/MainActivity.java index ece94cc..f09f304 100644 --- a/src/main/java/sae/chuzzle/MainActivity.java +++ b/src/main/java/sae/chuzzle/MainActivity.java @@ -1,97 +1,79 @@ -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 { - - private Controleur controleur; - private Button btnMenu; - private boolean hardMode; - private EtatJeu etatJeu; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - // --- 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); - - etatJeu = new EtatJeu(graine, hardMode); - - // --- 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); - - - controleur = new Controleur( - this, - etatJeu, - vueGrille, - graine, - (TextView) findViewById(R.id.tvScore), - (TextView) findViewById(R.id.tvCoups), - hardMode - ); - - // --- INITIALISATION DE L'OBJECTIF --- - // "Objectif : ..." remplacé par le vrai énoncé - controleur.initialiserObjectif(savedInstanceState); - - // --- Gestion tactile --- - GestionnaireTactile gestionnaireTactile = - new GestionnaireTactile(vueGrille, etatJeu, controleur); - vueGrille.setOnTouchListener(gestionnaireTactile); - - } - - // - - // CYCLE DE VIE - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - if (etatJeu != null) { - etatJeu.sauvegarderEtat(outState); - } - if (controleur != null) { - 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); - } - } -} +package sae.chuzzle; + +import android.app.Activity; +import android.os.Bundle; +import android.widget.Button; +import android.widget.TextView; + +public class MainActivity extends Activity { + + private Controleur controleur; + 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 + long graine = getIntent().getLongExtra("graine", System.currentTimeMillis()); + hardMode = getSharedPreferences("chuzzle_prefs", MODE_PRIVATE).getBoolean("hard_mode", false); + + + etatJeu = new EtatJeu(graine, hardMode); + + // --- Restauration si retour de pause + if (savedInstanceState != null) { + etatJeu.restaurerEtat(savedInstanceState); + } + + // --- Vue + vueGrille = findViewById(R.id.vueGrille); + + // --- Controleur métier + controleur = new Controleur( + this, + etatJeu, + vueGrille, + graine, + (TextView) findViewById(R.id.tvScore), + (TextView) findViewById(R.id.tvCoups), + hardMode + ); + + // --- INITIALISATION DE L'OBJECTIF + controleur.initialiserObjectif(savedInstanceState); + + // --- 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); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + if (etatJeu != null) { + etatJeu.sauvegarderEtat(outState); + } + if (controleur != null) { + controleur.sauvegarderEtat(outState); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } +} diff --git a/src/main/java/sae/chuzzle/MainController.java b/src/main/java/sae/chuzzle/MainController.java new file mode 100644 index 0000000..da300b7 --- /dev/null +++ b/src/main/java/sae/chuzzle/MainController.java @@ -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); + } + } +}