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 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; } } }