Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: amélioration du background et nouvelle(s) option(s) pour les notifications #606

Open
wants to merge 113 commits into
base: main
Choose a base branch
from

Conversation

Kgeek33
Copy link
Contributor

@Kgeek33 Kgeek33 commented Jan 7, 2025

🚀 Nouvelle Pull Request

Proposez vos modifications pour améliorer Papillon

Informations importantes

Merci de vous référer à la documentation sur la contribution si vous avez des questions à propos des pull requests (https://gitbook.getpapillon.xyz/organisation/outils-internes/github)

Checklist d'avant pull request

Veuillez cocher toutes les cases applicables en remplaçant [ ] par [x].

  • Vous avez testé de build le projet avec vos modifications et ce build a réussi
  • Vous respectez les conventions de codage et de nommage du projet
  • Vous utilisez la tabulation pour l'indentation afin de maintenir un code lisible
  • Cette pull request n'est pas un duplicata d'une autre
  • Cette pull request est prête à être revue (review) et fusionnée (merge)
  • Il n'y a pas de TODO (aka des annotations pour du code manquant) dans vos modifications
  • Il n'y a pas d'erreurs de langue dans votre code (grammaire, vocabulaire, conjugaison, orthographe)
  • Les détails des changements ont été décrits ci-dessous
  • Cette pull-request n'est pas une "breaking-change" (des modifications qui vont entraîner la modification du fonctionnement de certaines fonctionnalités déjà existantes)

Changelogs proposés

Je remercie mes parents et ma meilleure amie pour m'avoir aidé à réaliser cette PR :)
Et je remercie également @JyhuKo, @raphckrman et @NathanBnm pour avoir fait des propositions d'améliorations !

Fixs

  • Actuellement, l'arrière-plan ne fonctionne pas avec une erreur invalid hook. Cela a été corrigé
  • Le filtrage des actualités ne fonctionne pas, car les ids changent systématiquement. A la place, une comparaison du titre et de l'auteur est effectuée
  • Ajout d'un module notifee-mod.js pour éviter une erreur Notifee lors d'une build Android
  • Langage informel (uniquement sur les fichiers modifiés)
  • Optimisation du code

Feat

  • Avertissement de l'utilisateur + requête vers les paramètres quand les notifications sont désactivées volontairement dans le système (iOS ne permet pas de redemander l'autorisation des notifications)
  • Nouvelles options dans les paramètres des notifications ! (Papillon) :
    • Nouveau devoir
    • Nouvelle note
    • Emploi du temps (désactivé pour le moment)
    • Nouvel événement dans la vie sco
    • Nouvelle compétence

Issue en lien

Informations supplémentaires

les captures seront importées dans quelques minutes/heures

Paramètres des notifications

Page en général

1737833244232

Quand on clique sur le <NativeItem> du background

1737833244228

Notifications

AccountStack Si 1 différence Si plusieurs différences
Test 1737833244239
Vie Scolaire 1736982140762 1736982140758
Notes 1736982140790 1737054507425
Devoir 1736982140781 1737054507422
Emploi du temps (non actif) 1736982140777 1736982140772
Actualités 1736982140765 1737054246639
Compétences même chose que Notes même chose que Notes

Kgeek33 added 17 commits January 6, 2025 21:41
…mptes et des nouvelles dans des utilitaires dédiés
… par Notifee pour un bon fonctionnement de l'envoi des notifications
…jout d'un timestamp pour les notifications Android
…ons => permet d'éviter une erreur lors de la build
@Clmnnt
Copy link
Contributor

Clmnnt commented Jan 7, 2025

ça m’a l’air bien intéressant tout ça

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 7, 2025

ça m’a l’air bien intéressant tout ça

ah merci ! j'essaye de boucler cette pr d'ici la fin de la semaine et la mettre prête pour review

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

@Kgeek33 c'est en cours alors, j'attends une grosse demi heure et je check...
okay !

tu as moyen d'envoyer une notif lorsque le background fetch se lance ? et pour chaque check ? genre un maximum de débug, en notif...

Faire comme la V6 ?
Pour la V6, ça affichait (en tout cas sur Android) afficher une barre de chargement/progression le temps que le background s'exécutait. Du genre => https://notifee.app/react-native/docs/android/progress-indicators (Android)

@Bulgus
Copy link
Contributor

Bulgus commented Jan 26, 2025

@Kgeek33 Oui, enfin peut importe... juste que je n'ai pas a attendre longtemps alors que le fetch est déjà fait quoi...

@Bulgus
Copy link
Contributor

Bulgus commented Jan 26, 2025

NOTIIIIIIIIIIIF
Absence du trimestre

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

@Kgeek33 Oui, enfin peut importe... juste que je n'ai pas a attendre longtemps alors que le fetch est déjà fait quoi...

Ok a voir mais j'crois que c'est pas possible avec ios... 😭
Une notif de chargement comme sur le lien

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

NOTIIIIIIIIIIIF
Absence du trimestre

Let's gooooo

@Bulgus
Copy link
Contributor

Bulgus commented Jan 26, 2025

@Kgeek33 Oui, enfin peut importe... juste que je n'ai pas a attendre longtemps alors que le fetch est déjà fait quoi...

Ok a voir mais j'crois que c'est pas possible avec ios... 😭 Une notif de chargement comme sur le lien

Nan mais juste une notif genre
"Fetch débuté"
"Check homeworks"
"Check grades"
[...]
"Fetch effectué"

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

@Bulgus je viens de faire un update des logs, peut-être que ça va avoir une influence sur le fonctionnement des requêtes

Nan mais juste une notif genre
"Fetch débuté"
"Check homeworks"
"Check grades"
[...]
"Fetch effectué"

ok une notification silencieuse ?

@Bulgus
Copy link
Contributor

Bulgus commented Jan 26, 2025

@Kgeek33 so... rebuild ?

yep par exemple ! juste que je puisse savoir quand regarder quoi...

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

@Kgeek33 so... rebuild ?

yep par exemple ! juste que je puisse savoir quand regarder quoi...

eh ben j'intègre la notification d'abord et tu pourras rebuild
et je testerai en mode release là !

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

@Bulgus c'est bon, ça a pris plus de temps pask j'ai changé bcp de choses notamment sur iOS (intégration du son)
mais ça affiche une notification (discrète) pendant l'exécution du background
et j'ai ajouté des await un peu partout pour garantir l'affichage des notifs et un code synchro

à toi de build ;) (je sais c'est tard mais comme d'hab avec moi mdrr)

@Bulgus
Copy link
Contributor

Bulgus commented Jan 26, 2025

@Kgeek33 super !
Je build demain, la je suis crevé x)
Je te tiens au courant !

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 26, 2025

@Kgeek33 super !
Je build demain, la je suis crevé x)
Je te tiens au courant !

Moi aussi xD
Ok mercii ! Je ferai un rapport au niveau d'Android dans 1 ou 2 jours

@Bulgus
Copy link
Contributor

Bulgus commented Jan 27, 2025

@Kgeek33 J'ai build à l'instant. Pas de mode éco, refresh en arrière plan activé pour Papillon, je me connecte, j'active les notifs (+ notif test), je reset le background, j'active toutes les notifs, je vide les logs, je reviens à l'accueil sans fermer Papillon, et j'ajoute un devoir, une note, une compétence, une absence et une information news sur Pronote...
C'est parti pour test ;)

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 27, 2025

@Kgeek33 J'ai build à l'instant. Pas de mode éco, refresh en arrière plan activé pour Papillon, je me connecte, j'active les notifs (+ notif test), je reset le background, j'active toutes les notifs, je vide les logs, je reviens à l'accueil sans fermer Papillon, et j'ajoute un devoir, une note, une compétence, une absence et une information news sur Pronote...
C'est parti pour test ;)

Ok parfait!
Bon test mdr

@Bulgus
Copy link
Contributor

Bulgus commented Jan 27, 2025

@Kgeek33
Pour l'instant rien dans les logs qui indiquent des checks (homework etc)
Mais par contre j'ai un "1" rouge sur Papillon, qui ne s'enlève pas et je n'ai reçu aucune notif...

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 27, 2025

@Kgeek33
Pour l'instant rien dans les logs qui indiquent des checks (homework etc)
Mais par contre j'ai un "1" rouge sur Papillon, qui ne s'enlève pas et je n'ai reçu aucune notif...

De base sur ios, quand on ouvre une notification, est-ce que le "1" s'enlève ?

@Bulgus
Copy link
Contributor

Bulgus commented Jan 27, 2025

@Kgeek33
Oui, mais c'est peut être l'application qui s'occupe de ça lorsque c'est le cas !

@LeGeek01
Copy link
Contributor

je viens de tomber sur cette pr et j'avoue que j'ai la flemme de lire les 300 commentaires, où ça en est ?

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 29, 2025

je viens de tomber sur cette pr et j'avoue que j'ai la flemme de lire les 300 commentaires, où ça en est ?

Les 300 msg c'est pask ios pose problème mdr

Résumé :

  • Tout fonctionne comme prévu sur Android (même si on a constaté avec @Bulgus que certaines logs de requêtes n'étaient pas affichées, donc que certaines requêtes ne s'effectuent pas)
  • Sur iOS, on a trouvé un fil comme quoi les tâches en arrière-plan d'expo s'exécutait uniquement si l'appli est ouverte en background => la réalisation des tests est donc compliqué à faire

Mais en général, ça fonctionne et permet de réduire la consommation de la batterie de 3%

Screenshot_2025-01-29-18-18-12-176_com.miui.securitycenter.jpg

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 30, 2025

@Bulgus je te confirme que même si 2 logs sur 5 s'affichent pour le background, toutes les requêtes s'effectuent correctement ! (j'ai reçu une nouvelle note en notification)

Voici les logs (pour le moment, j'vais adapter ça plus tard) qu'il faut voir pour être sûr que les 5 requêtes s'effectuent correctement :

Screenshot_2025-01-30-07-33-05-499_xyz.getpapillon.app.dev-edit.jpg

@Bulgus
Copy link
Contributor

Bulgus commented Jan 30, 2025

@Kgeek33
Okay super !
Est-ce que tu pourrais résoudre le problème de background qui est reset par iOS ? J'aimerais bien faire des tests mais devoir à chaque fois m'assurer de "reset background" c'est très chiant 😭
Et puis comme ça ça sera fait.

Sinon une idée de pourquoi les deux premiers checks se loguent de telle manière tandis que les trois autres c'est juste la fonction qui s'affiche ?

@Kgeek33
Copy link
Contributor Author

Kgeek33 commented Jan 30, 2025

@Kgeek33
Okay super !
Est-ce que tu pourrais résoudre le problème de background qui est reset par iOS ? J'aimerais bien faire des tests mais devoir à chaque fois m'assurer de "reset background" c'est très chiant 😭
Et puis comme ça ça sera fait.

Sinon une idée de pourquoi les deux premiers checks se loguent de telle manière tandis que les trois autres c'est juste la fonction qui s'affiche ?

@Bulgus
T'as bien vu le message du mec d'expo, c'est un comportement volontaire de la part d'expo donc sauf s'il y a une doc secrète, jspas

J'pense pask ça enregistre des logs en même temps, c'est pour ça que ça n'affiche pas les backgrounds pour les notes...

@LeGeek01
Copy link
Contributor

@Kgeek33 est-ce que tu peux résoudre les conflits stp, j'aimerais faire un build de l'appli

@Bulgus
Copy link
Contributor

Bulgus commented Jan 30, 2025

@Kgeek33
Oui oui c'est vrai, mais est-ce que c'est pas possible d'intégrer la fonction reset background à chaque lancement de l'app ?
Et pour iOS intégrer un message genre "pour recevoir les notifications, l'application doit rester en arrière plan et ne pas être fermée"

Okay
Ça vaudrait le coup de creuser pour avoir tout de façon uniforme !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: notification [Feature]: Background fetch, widgets et notifications