This commit incorporates significant improvements and cleaning across the Best 2048 application. **Code Cleaning & Refactoring:** - Removed comments, logs (Log.*, System.out), and unused imports/variables/methods from all core Java files: - MainActivity, Game, GameStats, MultiplayerActivity, NotificationHelper, OnSwipeTouchListener, ApiClient, ApiService, data classes. - Removed NotificationService.java as it's replaced by WorkManager. **Notifications:** - Replaced the unreliable Handler-based NotificationService with a robust WorkManager implementation (NotificationWorker.java). - MainActivity now schedules/cancels periodic work for notifications correctly based on user preference and permissions. - Removed the <service> declaration for NotificationService from AndroidManifest.xml. - Requires 'androidx.work:work-runtime' dependency in build.gradle. **Multiplayer Enhancements:** - **Stats Integration:** - Added recordMultiplayerWin/Loss/Draw methods to GameStats. - MultiplayerActivity now correctly calculates game duration and updates GameStats upon game completion. - Added saveStats() call in MultiplayerActivity.onPause to persist MP stats. - **Animations:** - Implemented tile appearance and merge animations in MultiplayerActivity by comparing previous and current board states received via WebSocket. - **Robustness:** - Added automatic WebSocket reconnection attempts with UI feedback in MultiplayerActivity. - Implemented finer-grained handling of server error messages (critical vs. info). - Added UI feedback for opponent disconnections (inferred from final game state). - Disabled swipe input during inappropriate times (opponent's turn, disconnected, game over). **Layout Corrections:** - Fixed duplicate ID 'average_time_per_game_label' in stats_layout.xml (renamed the multiplayer one to 'average_time_per_game_multi_label'). - Removed the unused 'perfect_game_label' TextView from stats_layout.xml. - Updated MainActivity's updateStatisticsTextViews to use the corrected ID. **Localization:** - Translated all user-facing strings in strings.xml from French to English.
Projet Android 2048
Un clone simple du jeu populaire 2048 développé pour Android en utilisant Android Studio et Java.
Objectif
L'objectif principal est d'apprendre les bases du développement Android, y compris :
- La gestion des layouts (GridLayout, ConstraintLayout)
- La gestion des événements tactiles (Swipe)
- La logique de jeu de base
- Le cycle de vie d'une activité Android
- La persistance simple des données (scores)
Étapes Futures
- Mise en place de la structure de base du projet.
- Implémentation de la logique de la grille et de l'ajout de tuiles.
- Implémentation des mouvements des tuiles (Haut, Bas, Gauche, Droite).
- Création de l'interface graphique.
- Liaison de la logique et de l'interface.
- Ajout de fonctionnalités (score, high score, redémarrage, etc.).
Description
Languages
Java
100%