Commit Graph

57 Commits

Author SHA1 Message Date
Gato 221cf4f80d fix: crash FOREIGN KEY lors de la création de tâche avant sync
Si les projets ne sont pas encore en base Room au moment de l'insertion
(première connexion, sync en cours), vérifie que le projet existe avant
d'insérer la tâche localement. Sinon, déclenche une sync — la tâche est
déjà créée sur l'API et apparaîtra après rafraîchissement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 09:46:42 +02:00
Gato b268fc13c5 chore: client Keycloak bonsai-android (client public dédié mobile)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 09:35:50 +02:00
Gato ee67139b04 feat: connexion ROPC — formulaire natif sans redirection Keycloak
Remplace le flux PKCE/Custom Tab par un formulaire username/password
natif qui appelle directement le token endpoint Keycloak (grant_type=password).
Le token et le refresh token sont stockés dans EncryptedSharedPreferences.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 09:30:44 +02:00
Gato d099fc7da7 feat: authentification PKCE Keycloak au démarrage de l'application
Remplace le password grant par Authorization Code + PKCE via Custom Tab.
L'utilisateur est redirigé vers Keycloak à l'ouverture si non connecté,
le token est stocké dans EncryptedSharedPreferences et rafraîchi automatiquement.
Le deep link com.planify.mobile://auth/callback capture le code de retour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 09:24:58 +02:00
Gato b08ceb5574 feat: adapter le thème Material3 à la palette visuelle Bonsai
Remplace les couleurs dynamiques Android 12+ et le schéma Material3
par défaut par la palette extraite du webapp Bonsai (bleu #2563eb,
fond #f9fafb, surface blanche, contours gris). Ajoute la typographie
complète (13 styles) et renomme les libellés "Planify" en "BonsaiTask".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 09:04:45 +02:00
Gato 1dcfb0f525 fix: icône bonsai agrandie pour remplir la safe zone adaptive icon (v0.0.6)
Reporte les coordonnées SVG dans un viewport 108×108 avec scale ×1.286,
centré dans la safe zone (18–90). Background blanc pur.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:55:59 +02:00
Gato 47808b2255 feat: pivot vers Bonsai API — authentification Keycloak + sync issues/milestones
- Renomme l'appli en BonsaiTask
- Remplace CalDAV par l'intégration Bonsai API (REST + JWT Keycloak)
- BonsaiAuthManager : login user/password via password grant Keycloak
- BonsaiApiClient : GET projects/issues(Task)/milestones, POST/PUT/DELETE issues
- BonsaiSyncManager : sync API → Room (issues=tâches, milestones=labels)
- Settings : formulaire de connexion Bonsai remplace la gestion CalDAV
- TaskEditViewModel : création/édition poussée vers l'API Bonsai
- Icône Bonsai (VectorDrawable) + fond vert clair
- BackendType.BONSAI ajouté
- v0.0.5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:46:35 +02:00
Gato 93a26722d8 fix: connexion Nextcloud en utilisant le chemin CalDAV direct
Pour Nextcloud, bypass la chaîne PROPFIND (principal → calendar-home)
et accède directement à $baseUrl/calendars/$username/ conformément à
la doc officielle Nextcloud. Ajoute les codes HTTP dans les messages
d'erreur de la discovery générique pour faciliter le debug.

v0.0.4

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:26:34 +02:00
Gato 0c00d7d5b0 feat: icône Planify (SVG → PNG adaptatif toutes densités) v0.0.3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:15:57 +02:00
Gato 98b08f0219 fix: CalDAV Nextcloud — fallback principals/users/ pour calendar-home-set (v0.0.2)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:12:12 +02:00
Gato f038dbe0ee feat: version v0.0.1 affichée en bas du drawer (BuildConfig.VERSION_NAME)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:09:54 +02:00
Gato f5fc51c156 fix: parsing XML CalDAV namespace-aware + fallback principal Nextcloud (principals/users/)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 08:05:28 +02:00
Gato e2085a8dc2 fix: FAB rond (CircleShape) + crash ajout tâche (projet Inbox absent + projectId vide)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 07:59:38 +02:00
Gato 6d5feacf45 fix: ajout du FAB + sur tous les écrans (absent de MainScreen.Scaffold)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 07:54:20 +02:00
Gato 0fd300ffdc fix: champ is_deleted manquant dans TaskEntity, ZoneOffset.UTC, sérialisation des labels, toolchain Kotlin 2.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 07:45:48 +02:00
Gato 5356e957ba fix: forcer Gradle sur temurin-25 (JBR sans jlink, temurin a jlink + KSP 2.0 supporte JDK 25) 2026-06-06 07:30:13 +02:00
Gato f308a9507d fix: compileSdk/targetSdk 35 + migration kotlinOptions → compilerOptions 2026-06-06 07:29:03 +02:00
Gato 2e59d54de6 feat: sauvegarde du compte CalDAV même si la connexion échoue, avec indicateur visuel 2026-06-06 07:18:34 +02:00
Gato dc6847d205 fix: thème XML android:Theme.Material.Light.NoActionBar (pas de dép externe) 2026-06-06 06:59:52 +02:00
Gato d2c07307c9 fix: thème XML AppCompat au lieu de Material3 (lib View absente des deps) 2026-06-06 06:59:52 +02:00
Gato 5b4265215d Merge pull request 'Milestone/lot 6 polish' (#38) from milestone/lot-6-polish into develop
Reviewed-on: Gato/Planify-mobile#38
2026-06-06 06:56:48 +02:00
Gato 8fce0f2578 feat: [#30] export et backup des données (JSON et iCalendar)
- ExportManager : génère backup JSON (BackupPayload sérialisable) et .ics via VTodoGenerator
- FileProvider déclaré dans AndroidManifest + res/xml/file_paths.xml (cache/exports/)
- @Serializable ajouté sur Project, Task, BackendType, ViewStyle, SortBy, ItemType
- TaskRepository/Impl/Dao : ajout getAllTasks() pour export global
- SettingsViewModel : exportJson(), exportIcal(), clearExportUri()
- SettingsScreen : section Export & Backup avec partage via Intent.ACTION_SEND

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 06:55:49 +02:00
Gato 47aa839e3a feat: [#28][#29] écran paramètres (thème, sync, notifs, comptes CalDAV) + thème dynamique Material You piloté par DataStore 2026-06-06 06:55:49 +02:00
Gato ee1dac46cb feat: [#27] sync CalDAV en arrière-plan (WorkManager PeriodicWork, SyncScheduler, reprise au démarrage) 2026-06-06 06:55:49 +02:00
Gato a8da951a33 feat: [#30] export et backup des données (JSON et iCalendar)
- ExportManager : génère backup JSON (BackupPayload sérialisable) et .ics via VTodoGenerator
- FileProvider déclaré dans AndroidManifest + res/xml/file_paths.xml (cache/exports/)
- @Serializable ajouté sur Project, Task, BackendType, ViewStyle, SortBy, ItemType
- TaskRepository/Impl/Dao : ajout getAllTasks() pour export global
- SettingsViewModel : exportJson(), exportIcal(), clearExportUri()
- SettingsScreen : section Export & Backup avec partage via Intent.ACTION_SEND

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 06:53:58 +02:00
Gato bf6351fbb5 feat: [#28][#29] écran paramètres (thème, sync, notifs, comptes CalDAV) + thème dynamique Material You piloté par DataStore 2026-06-06 06:48:04 +02:00
Gato a556f4cbdc feat: [#27] sync CalDAV en arrière-plan (WorkManager PeriodicWork, SyncScheduler, reprise au démarrage) 2026-06-06 06:46:28 +02:00
Gato d3e9ad4753 Merge pull request 'Develop' (#37) from develop into main
Reviewed-on: Gato/Planify-mobile#37
2026-06-06 06:45:17 +02:00
Gato 289ff97698 Merge pull request 'Milestone/lot 5 avance' (#36) from milestone/lot-5-avance into develop
Reviewed-on: Gato/Planify-mobile#36
2026-06-06 06:44:57 +02:00
Gato 1316c6555b feat: [#26] filtres intelligents (Toutes, Terminées, Récurrentes, Priorités) + navigation Scheduled/Search/Filter/Labels 2026-06-06 06:39:14 +02:00
Gato 5d1c69484a feat: [#25] drag & drop dans la vue liste du projet (long-press handle, reorderTasks) 2026-06-06 06:39:10 +02:00
Gato 5fc6c8a3d4 feat: [#24] recherche globale (debounce 300ms, min 2 chars, live results) 2026-06-06 06:39:06 +02:00
Gato 1146b146c0 feat: [#23] vue Labels (toutes les tâches associées à un label) 2026-06-06 06:39:03 +02:00
Gato 86aab6c3da feat: [#22] vue Scheduled (tâches planifiées groupées par date : aujourd'hui, demain, cette semaine, plus tard) 2026-06-06 06:39:00 +02:00
Gato 8827c85c82 feat: [#22][#23][#24][#25][#26] extension TaskDao/Repository (scheduled, label, search, completed, repeating, priority, reorder) 2026-06-06 06:38:56 +02:00
Gato 7deeb23f33 Merge pull request 'Develop' (#35) from develop into main
Reviewed-on: Gato/Planify-mobile#35
2026-06-06 06:33:58 +02:00
Gato 84e40d12c8 Merge pull request 'Milestone/lot 4 caldav' (#34) from milestone/lot-4-caldav into develop
Reviewed-on: Gato/Planify-mobile#34
2026-06-06 06:33:42 +02:00
Gato 53c597a365 feat: [#19][#20][#21] sync CalDAV initiale/incrémentale + CRUD distant (sync-token, REPORT, PUT, DELETE, EncryptedSharedPreferences) 2026-06-06 06:29:53 +02:00
Gato ab1e59b237 feat: [#18] parser et générateur VTODO (iCalendar RFC 5545, RRULE, CATEGORIES, RELATED-TO) 2026-06-06 06:28:38 +02:00
Gato 254efff4b3 feat: [#16][#17] client CalDAV OkHttp (PROPFIND/REPORT/PUT/DELETE) + découverte serveur CalDAV 2026-06-06 06:27:58 +02:00
Gato 40fff7c9a8 Merge pull request 'Milestone/lot 3 taches' (#33) from milestone/lot-3-taches into main
Reviewed-on: Gato/Planify-mobile#33
2026-06-06 06:23:22 +02:00
Gato f410fa9c39 Merge pull request 'Milestone/lot 2 navigation' (#32) from milestone/lot-2-navigation into main
Reviewed-on: Gato/Planify-mobile#32
2026-06-06 06:23:11 +02:00
Gato 933704ca91 feat: [#15] fiche projet (ProjectEditSheet + ProjectEditViewModel, couleurs, vue liste/tableau) 2026-06-06 06:20:19 +02:00
Gato 5049d4d681 feat: [#11] fiche tâche complète (TaskEditSheet + TaskEditViewModel + ReminderRepository) 2026-06-06 06:19:37 +02:00
Gato 6db1222ff7 feat: [#14] rappels et notifications locales (AlarmManager, BroadcastReceiver, ReminderPickerSheet) 2026-06-06 06:15:55 +02:00
Gato 0f1afda295 feat: [#13] priorités, labels, sous-tâches (PriorityPicker, LabelPicker, SubTaskSection, LabelRepository) 2026-06-06 06:12:32 +02:00
Gato 520971ccaa feat: [#12] dates d'échéance, récurrence (DueDatePickerSheet, RecurrencePickerSheet, RRuleBuilder, @Serializable) 2026-06-06 06:11:02 +02:00
Gato 3ab7a48384 feat: [#9] vue Projet (ProjectScreen liste/board, ProjectViewModel, SectionRepository) 2026-06-06 06:06:05 +02:00
Gato 65a54af66a feat: [#8] vue Today (TodayScreen, TodayViewModel, groupement par projet) 2026-06-06 06:05:03 +02:00
Gato ce22d49824 feat: [#7] vue Inbox (InboxScreen, InboxViewModel, TaskRepositoryImpl) 2026-06-06 06:04:38 +02:00