@@ -7,19 +7,26 @@ original, dont vous êtes l'unique auteur.
# Déroulement du contrôle
## Mise en place
## À faire immédiatement!
Commencez par `fork` ce dépôt. **Assurez-vous qu'il est privé** (sinon, sur la page de votre fork sur gitlab, allez dans `Settings` --> `General` --> `Visibility, project features, permissions` --> `expand` --> `Project visibility` --> sélectionner `Private`).
### 1) Commencez par `fork` ce dépôt.
### Invitez immédiatement votre enseignant comme membre **DEVELOPPEUR** sur votre dépôt gitlab (que vous venez juste de fork)
**Assurez-vous qu'il est privé** (sinon, sur la page de votre fork sur gitlab, allez dans `Settings` --> `General` --> `Visibility, project features, permissions` --> `expand` --> `Project visibility` --> sélectionner `Private`).
Ce dépôt contient:
### 2) Invitez immédiatement votre enseignant comme membre **DEVELOPPEUR** sur votre dépôt gitlab (que vous venez juste de fork)
### 3) Compilez le projet et assurez-vous qu'il se lance sans erreur de compilation dans l'AVD. Dans le cas contraire avertissez immédiatement l'enseignant.
### 4) Activer la compilation hors-ligne
Cliquez sur le bouton `Toggle Offline Mode` de l'onglet Gradle comme indiqué sur cette capture d'écran:
Commencez par `fork` ce dépôt. **Assurez-vous qu'il est privé** (sinon, sur la page de votre fork sur gitlab, allez dans `Settings` --> `General` --> `Visibility, project features, ontrôle TP
- ce sujet de contrôle TP
- l'ensemble des sources et ressources dont vous aurez besoin pour ce contrôle.
Un jeu d'essai est préchargé à partir du fichier json (présent comme une ressource 'raw' de nom cand.json).
...
...
@@ -156,31 +163,54 @@ Ce modèle est intégré dans la version initiale (et partielle) de l'applicatio
L'application qui vous est fournie avec ce projet est incomplète.
Dans le cadre de ce DS, vous devez réaliser les tickets suivants:
(pour chaque ticket et en bleu, les méthodes vous fournissant les données)
1. Afficher le cumul des dépenses par poste.
#### Q1. Afficher le cumul des dépenses par poste.
`getSumOperations(string)`: affiche le cumul des opérations pour un poste.
2. Completer les classes internes `ParticipantAdapter` et `ParticipantViewHolder` pour afficher les noms des participant dans `R.id.text1`.
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q2. Completer les classes internes `ParticipantAdapter` et `ParticipantViewHolder` pour afficher les noms des participant dans `R.id.text1`.
`getNbParticipants`: lire le nombre de participants.
`getParticipant(int)`: accès à un participant par sa position.
`Participant.getName()`: accesseur sur le nom du paticipant.
3. Afficher le solde par participant en dessous de chaque nom (utiliser le champ `TextView` dont l'id est `R.id.text2`)
`getBalance(String participant)`: accesseur sur le solde du participant
4. Ajouter un participant.
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q3. Afficher le solde par participant en dessous de chaque nom (utiliser le champ `TextView` dont l'id est `R.id.text2`)
`getBalance(String participant)`: accesseur sur le solde du participant.
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q4. Ajouter un participant.
L'EditText `R.id.new_participant` permet la saisie du pseudo.
Le bouton `R.id.add_participant` effectuera l'ajout.
`addParticipant(String)`: ajouter un participant.
5. Si l'ajout de participant est impossible (si un participant de même pseudo existe déjà) une exception est levée.
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q5. Si l'ajout de participant est impossible (si un participant de même pseudo existe déjà) une exception est levée.
Compléter la question précédente pour que ces exceptions soient récupérées et affichent une annonce (`Toast`) affichant le message lié à l'exception.
6. Ajouter un menu contextuel sur la liste des participants qui comporte un seul item qui permet de supprimer un participant.
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q6. Ajouter un menu contextuel sur la liste des participants qui comporte un seul item qui permet de supprimer un participant.
`removeParticipant(String)`: supprimer un participant.
7. Créer une seconde activité qui sera lancée par n'importe lequel des boutons libellé `STATS...`
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q7. Créer une seconde activité qui sera lancée par n'importe lequel des boutons libellé `STATS...`
Cette activité se présentera sous la forme affichée ci-dessus (faire le layout complet) mais seul les statistiques générales seront présentées.
`getNbOperations()`: affiche le nombre d'opérations totales
`getSumOperation()`: affiche le cumul des montants.
8. Faire en sorte que l'appui sur le bouton `Fermer` fasse revenir sur l'activité initiale.
9. Complétez le projet de sorte que les statistiques propres à un poste soient affichées sur la partie inférieure (selon le bouton `STATS...` choisi).
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q8. Faire en sorte que l'appui sur le bouton `Fermer` fasse revenir sur l'activité initiale.
> Avant de passer à la question suivante, n'oubliez pas de `tag`/`commit` cette question.
#### Q9. Complétez le projet de sorte que les statistiques propres à un poste soient affichées sur la partie inférieure (selon le bouton `STATS...` choisi).
`getSum(String)`: lire le cumul pour un poste (désigné par son nom)
`getNbOperations(string)`: affiche le nombre d'opérations pour un poste
> n'oubliez pas de `tag`/`commit` cette dernière question.