Gato
8cab357c4c
feat: tâche créée immédiatement en local + détail tâche au clic
2026-06-06 10:33:04 +02:00
Gato
38df116328
fix: suppression de la contrainte FK tasks→projects (DB v3)
...
La contrainte FOREIGN KEY sur tasks.project_id causait des crashs
systématiques dans une app sync-first où les projets et tâches arrivent
de l'API sans garantie d'ordre strict. La cohérence est gérée côté
serveur Bonsai ; inutile de la dupliquer en base locale.
fallbackToDestructiveMigration() recrée la DB proprement au démarrage.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-06 10:08:11 +02:00
Gato
4d59f371ac
fix: crash SQLiteConstraintException lors de la sync Bonsai
...
- BonsaiApiClient : optLong/optString avec fallback pour éviter JSONException
si l'API omet projectId, type, status ou priority dans la réponse
- BonsaiSyncManager : enveloppe sync() dans runCatching pour ne jamais
propager d'exception non gérée ; chaque insert de tâche est aussi isolé
pour que les erreurs individuelles ne bloquent pas toute la sync
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-06 09:54:10 +02:00
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