125 lines
4.1 KiB
Java
125 lines
4.1 KiB
Java
package com.example.boidelov3.hub;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import com.example.boidelov3.R;
|
|
import com.example.boidelov3.games.boideloclassic.BoideloClassicSetupActivity;
|
|
import com.example.boidelov3.games.papelito.PapelitoSetupActivity;
|
|
import com.example.boidelov3.hub.adapter.GameAdapter;
|
|
import com.example.boidelov3.hub.model.GameInfo;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* GameSelectionActivity - Hub principal de sélection des jeux
|
|
* Cette activité remplace l'ancienne MainActivity et sert de point d'entrée
|
|
* pour tous les jeux disponibles dans Boidelo.
|
|
*/
|
|
public class GameSelectionActivity extends AppCompatActivity implements GameAdapter.OnItemClickListener {
|
|
|
|
private RecyclerView gamesRecyclerView;
|
|
private GameAdapter gameAdapter;
|
|
private List<GameInfo> gamesList;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_game_selection);
|
|
|
|
initViews();
|
|
setupGamesList();
|
|
setupRecyclerView();
|
|
}
|
|
|
|
/**
|
|
* Initialise les vues de l'activité
|
|
*/
|
|
private void initViews() {
|
|
gamesRecyclerView = findViewById(R.id.gamesRecyclerView);
|
|
gamesRecyclerView.setLayoutManager(new LinearLayoutManager(this));
|
|
}
|
|
|
|
/**
|
|
* Configure la liste des jeux disponibles
|
|
*/
|
|
private void setupGamesList() {
|
|
gamesList = new ArrayList<>();
|
|
|
|
// Boidelo Classic - Le jeu original
|
|
gamesList.add(new GameInfo(
|
|
"Boidelo Classic",
|
|
"Le jeu original de questions et défis",
|
|
R.drawable.ic_boidelo_classic,
|
|
GameInfo.GameType.BOIDELO_CLASSIC,
|
|
true
|
|
));
|
|
|
|
// 89++ - Jeu de cartes
|
|
gamesList.add(new GameInfo(
|
|
"89++",
|
|
"Jeu de cartes avec timer et défis",
|
|
R.drawable.ic_game_89,
|
|
GameInfo.GameType.GAME_89,
|
|
true // Available now
|
|
));
|
|
|
|
// Papelito (Undercover) - Jeu de déduction
|
|
gamesList.add(new GameInfo(
|
|
"Papelito",
|
|
"Trouvez l'undercover avant qu'il ne soit trop tard!",
|
|
R.drawable.ic_papelito,
|
|
GameInfo.GameType.UNDERCOVER,
|
|
true // Available now
|
|
));
|
|
|
|
// Jeux de règles
|
|
gamesList.add(new GameInfo(
|
|
"Règles de jeux",
|
|
"Découvrez les règles des jeux d'ambiance populaires",
|
|
R.drawable.ic_rules,
|
|
GameInfo.GameType.RULES,
|
|
true // Available now!
|
|
));
|
|
}
|
|
|
|
/**
|
|
* Configure le RecyclerView avec l'adaptateur
|
|
*/
|
|
private void setupRecyclerView() {
|
|
gameAdapter = new GameAdapter(gamesList, this);
|
|
gamesRecyclerView.setAdapter(gameAdapter);
|
|
}
|
|
|
|
/**
|
|
* Gère le clic sur un jeu de la liste
|
|
* @param gameInfo Le jeu sélectionné
|
|
*/
|
|
@Override
|
|
public void onItemClick(GameInfo gameInfo) {
|
|
if (!gameInfo.isAvailable()) {
|
|
// Afficher un message "Coming soon"
|
|
android.widget.Toast.makeText(this, gameInfo.getName() + " - Bientôt disponible!",
|
|
android.widget.Toast.LENGTH_SHORT).show();
|
|
return;
|
|
}
|
|
|
|
switch (gameInfo.getGameType()) {
|
|
case BOIDELO_CLASSIC:
|
|
startActivity(new Intent(this, BoideloClassicSetupActivity.class));
|
|
break;
|
|
case GAME_89:
|
|
startActivity(new Intent(this, com.example.boidelov3.games.game89.Game89SetupActivity.class));
|
|
break;
|
|
case UNDERCOVER:
|
|
startActivity(new Intent(this, com.example.boidelov3.games.papelito.PapelitoSetupActivity.class));
|
|
break;
|
|
case RULES:
|
|
startActivity(new Intent(this, com.example.boidelov3.rules.RulesListActivity.class));
|
|
break;
|
|
}
|
|
}
|
|
}
|