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 btnJouer; 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); vueGrille.definirModeDaltonien(daltonien); // --- Controleur --- btnJouer = findViewById(R.id.btnJouer); btnJouer.setOnClickListener(this); 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), (RadioButton) findViewById(R.id.rbLigne), (RadioButton) findViewById(R.id.rbDroite), (Spinner) findViewById(R.id.spinnerIndex), btnJouer, hardMode ); // --- INITIALISATION DE L'OBJECTIF --- // Crucial pour que le texte "Objectif : ..." soit 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 == btnJouer) { controleur.gererCoupJoueur(); } if (v == btnMenu) { etatJeu.forcerFinDePartie(); Intent intent = new Intent(this, MenuActivity.class); startActivity(intent); } } }