Rajout apres avoir eu un bug avec mainactivity
This commit is contained in:
@@ -3,6 +3,7 @@ package sae.chuzzle;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.CountDownTimer;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
@@ -11,13 +12,15 @@ import android.widget.TextView;
|
|||||||
|
|
||||||
public class MainActivity extends Activity implements View.OnClickListener {
|
public class MainActivity extends Activity implements View.OnClickListener {
|
||||||
|
|
||||||
|
private static final long DUREE_HARD_MS = 60_000L; // 1 minute
|
||||||
|
|
||||||
private Controleur controleur;
|
private Controleur controleur;
|
||||||
private Button btnJouer;
|
private Button btnJouer;
|
||||||
private Button btnMenu;
|
private Button btnMenu;
|
||||||
|
private TextView tvTimer;
|
||||||
|
|
||||||
|
private CountDownTimer compteARebours;
|
||||||
|
private long tempsRestantMs;
|
||||||
private boolean hardMode;
|
private boolean hardMode;
|
||||||
private EtatJeu etatJeu;
|
private EtatJeu etatJeu;
|
||||||
|
|
||||||
@@ -38,13 +41,18 @@ public class MainActivity extends Activity implements View.OnClickListener {
|
|||||||
// --- Restauration si retour de pause ---
|
// --- Restauration si retour de pause ---
|
||||||
if (savedInstanceState != null) {
|
if (savedInstanceState != null) {
|
||||||
etatJeu.restaurerEtat(savedInstanceState);
|
etatJeu.restaurerEtat(savedInstanceState);
|
||||||
|
if (hardMode) {
|
||||||
|
tempsRestantMs = savedInstanceState.getLong("tempsRestantMs", DUREE_HARD_MS);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tempsRestantMs = DUREE_HARD_MS;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Vue ---
|
// --- Vue ---
|
||||||
VueGrille vueGrille = findViewById(R.id.vueGrille);
|
VueGrille vueGrille = findViewById(R.id.vueGrille);
|
||||||
vueGrille.definirModeDaltonien(daltonien);
|
vueGrille.definirModeDaltonien(daltonien);
|
||||||
|
|
||||||
|
tvTimer = findViewById(R.id.tvTimer);
|
||||||
|
|
||||||
// --- Controleur ---
|
// --- Controleur ---
|
||||||
btnJouer = findViewById(R.id.btnJouer);
|
btnJouer = findViewById(R.id.btnJouer);
|
||||||
@@ -64,8 +72,7 @@ public class MainActivity extends Activity implements View.OnClickListener {
|
|||||||
(RadioButton) findViewById(R.id.rbLigne),
|
(RadioButton) findViewById(R.id.rbLigne),
|
||||||
(RadioButton) findViewById(R.id.rbDroite),
|
(RadioButton) findViewById(R.id.rbDroite),
|
||||||
(Spinner) findViewById(R.id.spinnerIndex),
|
(Spinner) findViewById(R.id.spinnerIndex),
|
||||||
btnJouer,
|
btnJouer
|
||||||
hardMode
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// --- Gestion tactile ---
|
// --- Gestion tactile ---
|
||||||
@@ -73,14 +80,39 @@ public class MainActivity extends Activity implements View.OnClickListener {
|
|||||||
new GestionnaireTactile(vueGrille, etatJeu, controleur);
|
new GestionnaireTactile(vueGrille, etatJeu, controleur);
|
||||||
vueGrille.setOnTouchListener(gestionnaireTactile);
|
vueGrille.setOnTouchListener(gestionnaireTactile);
|
||||||
|
|
||||||
// --- Logique Hard mode ---
|
// --- Timer hard mode ---
|
||||||
if (hardMode) {
|
if (hardMode && !etatJeu.estTerminee()) {
|
||||||
// TODO: Ajouter la nouvelle fonctionnalité pour le hard mode ici (en remplacement du timer)
|
demarrerTimer(tempsRestantMs);
|
||||||
|
} else if (hardMode && etatJeu.estTerminee()) {
|
||||||
|
tvTimer.setVisibility(View.VISIBLE);
|
||||||
|
tvTimer.setText("⏱ 0s");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -
|
// -
|
||||||
//
|
// TIMER
|
||||||
|
|
||||||
|
private void demarrerTimer(long dureeMs) {
|
||||||
|
tvTimer.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
compteARebours = new CountDownTimer(dureeMs, 1000) {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTick(long millisRestants) {
|
||||||
|
tempsRestantMs = millisRestants;
|
||||||
|
long secondes = millisRestants / 1000;
|
||||||
|
tvTimer.setText("⏱ " + secondes + "s");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFinish() {
|
||||||
|
tvTimer.setText("⏱ 0s");
|
||||||
|
// Forcer la fin de partie par le temps
|
||||||
|
etatJeu.forcerFinDePartie();
|
||||||
|
controleur.verifierFinDePartie();
|
||||||
|
}
|
||||||
|
}.start();
|
||||||
|
}
|
||||||
|
|
||||||
// -
|
// -
|
||||||
// CYCLE DE VIE
|
// CYCLE DE VIE
|
||||||
@@ -91,15 +123,17 @@ public class MainActivity extends Activity implements View.OnClickListener {
|
|||||||
if (etatJeu != null) {
|
if (etatJeu != null) {
|
||||||
etatJeu.sauvegarderEtat(outState);
|
etatJeu.sauvegarderEtat(outState);
|
||||||
}
|
}
|
||||||
if (controleur != null) {
|
if (hardMode) {
|
||||||
controleur.sauvegarderEtat(outState);
|
outState.putLong("tempsRestantMs", tempsRestantMs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
|
if (compteARebours != null) {
|
||||||
|
compteARebours.cancel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -108,7 +142,6 @@ public class MainActivity extends Activity implements View.OnClickListener {
|
|||||||
controleur.gererCoupJoueur();
|
controleur.gererCoupJoueur();
|
||||||
}
|
}
|
||||||
if (v == btnMenu) {
|
if (v == btnMenu) {
|
||||||
etatJeu.forcerFinDePartie();
|
|
||||||
Intent intent = new Intent(this, MenuActivity.class);
|
Intent intent = new Intent(this, MenuActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user