From c165fef588f17b9aa39d2536e00ea0b228f006c8 Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Sat, 26 Sep 2026 18:53:25 +0200 Subject: [PATCH] feat: add android home-screen widgets for mail, calendar, tasks and files --- App.tsx | 37 +- android/app/src/main/AndroidManifest.xml | 227 ++++ .../bulwarkmobile/widget/WidgetProviders.kt | 40 + .../drawable-nodpi/agendawidget_preview.png | Bin 0 -> 39230 bytes .../allaccountswidget_preview.png | Bin 0 -> 25947 bytes .../attachmentswidget_preview.png | Bin 0 -> 20239 bytes .../birthdayswidget_preview.png | Bin 0 -> 19024 bytes .../countdownwidget_preview.png | Bin 0 -> 8823 bytes .../drawable-nodpi/datenextwidget_preview.png | Bin 0 -> 12960 bytes .../favouritepeoplewidget_preview.png | Bin 0 -> 20034 bytes .../foldercountswidget_preview.png | Bin 0 -> 11205 bytes .../drawable-nodpi/freetimewidget_preview.png | Bin 0 -> 15301 bytes .../drawable-nodpi/inboxwidget_preview.png | Bin 0 -> 22302 bytes .../invitationswidget_preview.png | Bin 0 -> 19864 bytes .../lastdraftwidget_preview.png | Bin 0 -> 10961 bytes .../latestmessagewidget_preview.png | Bin 0 -> 13580 bytes .../mailandnextwidget_preview.png | Bin 0 -> 20339 bytes .../mailsearchwidget_preview.png | Bin 0 -> 12578 bytes .../mailshortcutswidget_preview.png | Bin 0 -> 10084 bytes .../drawable-nodpi/monthwidget_preview.png | Bin 0 -> 29056 bytes .../nexteventwidget_preview.png | Bin 0 -> 10513 bytes .../drawable-nodpi/outboxwidget_preview.png | Bin 0 -> 22210 bytes .../recentfileswidget_preview.png | Bin 0 -> 18555 bytes .../drawable-nodpi/starredwidget_preview.png | Bin 0 -> 18993 bytes .../drawable-nodpi/storagewidget_preview.png | Bin 0 -> 8043 bytes .../res/drawable-nodpi/tagwidget_preview.png | Bin 0 -> 7701 bytes .../taskprogresswidget_preview.png | Bin 0 -> 7453 bytes .../drawable-nodpi/taskswidget_preview.png | Bin 0 -> 39025 bytes .../todayeventswidget_preview.png | Bin 0 -> 21401 bytes .../drawable-nodpi/todayhubwidget_preview.png | Bin 0 -> 41982 bytes .../drawable-nodpi/triagewidget_preview.png | Bin 0 -> 23121 bytes .../unreadcountwidget_preview.png | Bin 0 -> 9430 bytes .../drawable-nodpi/upnextwidget_preview.png | Bin 0 -> 18384 bytes .../drawable-nodpi/vacationwidget_preview.png | Bin 0 -> 13264 bytes .../res/drawable-nodpi/weekwidget_preview.png | Bin 0 -> 13198 bytes .../src/main/res/values/widget_strings.xml | 68 ++ .../res/xml/widgetprovider_agendawidget.xml | 16 + .../xml/widgetprovider_allaccountswidget.xml | 16 + .../xml/widgetprovider_attachmentswidget.xml | 16 + .../xml/widgetprovider_birthdayswidget.xml | 16 + .../xml/widgetprovider_countdownwidget.xml | 16 + .../res/xml/widgetprovider_datenextwidget.xml | 16 + .../widgetprovider_favouritepeoplewidget.xml | 16 + .../xml/widgetprovider_foldercountswidget.xml | 16 + .../res/xml/widgetprovider_freetimewidget.xml | 16 + .../res/xml/widgetprovider_inboxwidget.xml | 16 + .../xml/widgetprovider_invitationswidget.xml | 16 + .../xml/widgetprovider_lastdraftwidget.xml | 16 + .../widgetprovider_latestmessagewidget.xml | 16 + .../xml/widgetprovider_mailandnextwidget.xml | 16 + .../xml/widgetprovider_mailsearchwidget.xml | 16 + .../widgetprovider_mailshortcutswidget.xml | 16 + .../res/xml/widgetprovider_monthwidget.xml | 16 + .../xml/widgetprovider_nexteventwidget.xml | 16 + .../res/xml/widgetprovider_outboxwidget.xml | 16 + .../xml/widgetprovider_recentfileswidget.xml | 16 + .../res/xml/widgetprovider_starredwidget.xml | 16 + .../res/xml/widgetprovider_storagewidget.xml | 16 + .../main/res/xml/widgetprovider_tagwidget.xml | 16 + .../xml/widgetprovider_taskprogresswidget.xml | 16 + .../res/xml/widgetprovider_taskswidget.xml | 16 + .../xml/widgetprovider_todayeventswidget.xml | 16 + .../res/xml/widgetprovider_todayhubwidget.xml | 16 + .../res/xml/widgetprovider_triagewidget.xml | 16 + .../xml/widgetprovider_unreadcountwidget.xml | 16 + .../res/xml/widgetprovider_upnextwidget.xml | 16 + .../res/xml/widgetprovider_vacationwidget.xml | 16 + .../res/xml/widgetprovider_weekwidget.xml | 16 + index.ts | 13 +- locales/rn/en.json | 183 +++ package-lock.json | 17 + package.json | 4 +- scripts/sync-android-widgets.mjs | 193 +++ src/lib/reply-compose.ts | 50 + src/navigation/__tests__/linking.test.ts | 47 + src/navigation/linking.ts | 74 +- src/navigation/pending-mail-search.ts | 25 + src/screens/EmailListScreen.tsx | 13 + src/screens/EmailThreadScreen.tsx | 39 +- src/stores/email-store.ts | 5 +- src/widgets/__tests__/derive.test.ts | 117 ++ src/widgets/__tests__/jmap.test.ts | 63 + src/widgets/__tests__/layouts.test.ts | 125 ++ src/widgets/actions.ts | 163 +++ src/widgets/build.ts | 484 ++++++++ src/widgets/catalog.json | 40 + src/widgets/clicks.ts | 60 + src/widgets/derive.ts | 209 ++++ src/widgets/format.ts | 132 ++ src/widgets/icons.ts | 100 ++ src/widgets/jmap.ts | 450 +++++++ src/widgets/layouts/calendar.tsx | 1061 +++++++++++++++++ src/widgets/layouts/hubs.tsx | 806 +++++++++++++ src/widgets/layouts/mail.tsx | 291 +++++ src/widgets/layouts/more-mail.tsx | 738 ++++++++++++ src/widgets/layouts/plans.tsx | 665 +++++++++++ src/widgets/layouts/types.ts | 21 + src/widgets/local-state.ts | 26 + src/widgets/parts.tsx | 276 +++++ src/widgets/previews/AgendaWidget.png | Bin 0 -> 39230 bytes src/widgets/previews/AllAccountsWidget.png | Bin 0 -> 25947 bytes src/widgets/previews/AttachmentsWidget.png | Bin 0 -> 20239 bytes src/widgets/previews/BirthdaysWidget.png | Bin 0 -> 19024 bytes src/widgets/previews/CountdownWidget.png | Bin 0 -> 8823 bytes src/widgets/previews/DateNextWidget.png | Bin 0 -> 12960 bytes .../previews/FavouritePeopleWidget.png | Bin 0 -> 20034 bytes src/widgets/previews/FolderCountsWidget.png | Bin 0 -> 11205 bytes src/widgets/previews/FreeTimeWidget.png | Bin 0 -> 15301 bytes src/widgets/previews/InboxWidget.png | Bin 0 -> 22302 bytes src/widgets/previews/InvitationsWidget.png | Bin 0 -> 19864 bytes src/widgets/previews/LastDraftWidget.png | Bin 0 -> 10961 bytes src/widgets/previews/LatestMessageWidget.png | Bin 0 -> 13580 bytes src/widgets/previews/MailAndNextWidget.png | Bin 0 -> 20339 bytes src/widgets/previews/MailSearchWidget.png | Bin 0 -> 12578 bytes src/widgets/previews/MailShortcutsWidget.png | Bin 0 -> 10084 bytes src/widgets/previews/MonthWidget.png | Bin 0 -> 29056 bytes src/widgets/previews/NextEventWidget.png | Bin 0 -> 10513 bytes src/widgets/previews/OutboxWidget.png | Bin 0 -> 22210 bytes src/widgets/previews/RecentFilesWidget.png | Bin 0 -> 18555 bytes src/widgets/previews/StarredWidget.png | Bin 0 -> 18993 bytes src/widgets/previews/StorageWidget.png | Bin 0 -> 8043 bytes src/widgets/previews/TagWidget.png | Bin 0 -> 7701 bytes src/widgets/previews/TaskProgressWidget.png | Bin 0 -> 7453 bytes src/widgets/previews/TasksWidget.png | Bin 0 -> 39025 bytes src/widgets/previews/TodayEventsWidget.png | Bin 0 -> 21401 bytes src/widgets/previews/TodayHubWidget.png | Bin 0 -> 41982 bytes src/widgets/previews/TriageWidget.png | Bin 0 -> 23121 bytes src/widgets/previews/UnreadCountWidget.png | Bin 0 -> 9430 bytes src/widgets/previews/UpNextWidget.png | Bin 0 -> 18384 bytes src/widgets/previews/VacationWidget.png | Bin 0 -> 13264 bytes src/widgets/previews/WeekWidget.png | Bin 0 -> 13198 bytes src/widgets/primitives.tsx | 391 ++++++ src/widgets/render.tsx | 169 +++ src/widgets/sample-snapshot.ts | 206 ++++ src/widgets/snapshot.ts | 262 ++++ src/widgets/sync.ts | 95 ++ src/widgets/task-handler.tsx | 57 + src/widgets/theme.ts | 177 +++ 138 files changed, 8682 insertions(+), 49 deletions(-) create mode 100644 android/app/src/main/java/com/anonymous/bulwarkmobile/widget/WidgetProviders.kt create mode 100644 android/app/src/main/res/drawable-nodpi/agendawidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/allaccountswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/attachmentswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/birthdayswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/countdownwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/datenextwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/favouritepeoplewidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/foldercountswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/freetimewidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/inboxwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/invitationswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/lastdraftwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/latestmessagewidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/mailandnextwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/mailsearchwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/mailshortcutswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/monthwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/nexteventwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/outboxwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/recentfileswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/starredwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/storagewidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/tagwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/taskprogresswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/taskswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/todayeventswidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/todayhubwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/triagewidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/unreadcountwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/upnextwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/vacationwidget_preview.png create mode 100644 android/app/src/main/res/drawable-nodpi/weekwidget_preview.png create mode 100644 android/app/src/main/res/values/widget_strings.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_agendawidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_allaccountswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_attachmentswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_birthdayswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_countdownwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_datenextwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_favouritepeoplewidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_foldercountswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_freetimewidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_inboxwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_invitationswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_lastdraftwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_latestmessagewidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_mailandnextwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_mailsearchwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_mailshortcutswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_monthwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_nexteventwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_outboxwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_recentfileswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_starredwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_storagewidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_tagwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_taskprogresswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_taskswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_todayeventswidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_todayhubwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_triagewidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_unreadcountwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_upnextwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_vacationwidget.xml create mode 100644 android/app/src/main/res/xml/widgetprovider_weekwidget.xml create mode 100644 scripts/sync-android-widgets.mjs create mode 100644 src/lib/reply-compose.ts create mode 100644 src/navigation/pending-mail-search.ts create mode 100644 src/widgets/__tests__/derive.test.ts create mode 100644 src/widgets/__tests__/jmap.test.ts create mode 100644 src/widgets/__tests__/layouts.test.ts create mode 100644 src/widgets/actions.ts create mode 100644 src/widgets/build.ts create mode 100644 src/widgets/catalog.json create mode 100644 src/widgets/clicks.ts create mode 100644 src/widgets/derive.ts create mode 100644 src/widgets/format.ts create mode 100644 src/widgets/icons.ts create mode 100644 src/widgets/jmap.ts create mode 100644 src/widgets/layouts/calendar.tsx create mode 100644 src/widgets/layouts/hubs.tsx create mode 100644 src/widgets/layouts/mail.tsx create mode 100644 src/widgets/layouts/more-mail.tsx create mode 100644 src/widgets/layouts/plans.tsx create mode 100644 src/widgets/layouts/types.ts create mode 100644 src/widgets/local-state.ts create mode 100644 src/widgets/parts.tsx create mode 100644 src/widgets/previews/AgendaWidget.png create mode 100644 src/widgets/previews/AllAccountsWidget.png create mode 100644 src/widgets/previews/AttachmentsWidget.png create mode 100644 src/widgets/previews/BirthdaysWidget.png create mode 100644 src/widgets/previews/CountdownWidget.png create mode 100644 src/widgets/previews/DateNextWidget.png create mode 100644 src/widgets/previews/FavouritePeopleWidget.png create mode 100644 src/widgets/previews/FolderCountsWidget.png create mode 100644 src/widgets/previews/FreeTimeWidget.png create mode 100644 src/widgets/previews/InboxWidget.png create mode 100644 src/widgets/previews/InvitationsWidget.png create mode 100644 src/widgets/previews/LastDraftWidget.png create mode 100644 src/widgets/previews/LatestMessageWidget.png create mode 100644 src/widgets/previews/MailAndNextWidget.png create mode 100644 src/widgets/previews/MailSearchWidget.png create mode 100644 src/widgets/previews/MailShortcutsWidget.png create mode 100644 src/widgets/previews/MonthWidget.png create mode 100644 src/widgets/previews/NextEventWidget.png create mode 100644 src/widgets/previews/OutboxWidget.png create mode 100644 src/widgets/previews/RecentFilesWidget.png create mode 100644 src/widgets/previews/StarredWidget.png create mode 100644 src/widgets/previews/StorageWidget.png create mode 100644 src/widgets/previews/TagWidget.png create mode 100644 src/widgets/previews/TaskProgressWidget.png create mode 100644 src/widgets/previews/TasksWidget.png create mode 100644 src/widgets/previews/TodayEventsWidget.png create mode 100644 src/widgets/previews/TodayHubWidget.png create mode 100644 src/widgets/previews/TriageWidget.png create mode 100644 src/widgets/previews/UnreadCountWidget.png create mode 100644 src/widgets/previews/UpNextWidget.png create mode 100644 src/widgets/previews/VacationWidget.png create mode 100644 src/widgets/previews/WeekWidget.png create mode 100644 src/widgets/primitives.tsx create mode 100644 src/widgets/render.tsx create mode 100644 src/widgets/sample-snapshot.ts create mode 100644 src/widgets/snapshot.ts create mode 100644 src/widgets/sync.ts create mode 100644 src/widgets/task-handler.tsx create mode 100644 src/widgets/theme.ts diff --git a/App.tsx b/App.tsx index e00140b3..bc631fa8 100644 --- a/App.tsx +++ b/App.tsx @@ -69,7 +69,10 @@ import { PushOnboardingPrompt } from './src/components/PushOnboardingPrompt'; import { ToastHost } from './src/components/ToastHost'; import { UndoSnackbar } from './src/components/UndoSnackbar'; import { AppIconBadge } from './src/components/AppIconBadge'; -import { getEmails } from './src/api/email'; +import { getEmails, getFullEmail } from './src/api/email'; +import { signOutWidgets, startWidgetSync } from './src/widgets/sync'; +import { draftContextFromEmail } from './src/lib/draft-context'; +import { replyComposeParams } from './src/lib/reply-compose'; import { handleDeepLink, parseDeepLink, shareToDeepLink, type DeepLink } from './src/navigation/linking'; import { addShareListener, getInitialShare, shareAttachments } from './src/lib/share-intent'; import { OfflineCacheBanner } from './src/components/OfflineCacheBanner'; @@ -133,14 +136,34 @@ async function openCalendarReminder(target: CalendarReminderTarget): Promise { await handleDeepLink(link, { navigation: navigationRef, - resolveThreadId: async (emailId) => { + resolveThreadId: async (emailId, jmapAccountId) => { try { - const [email] = await getEmails([emailId]); + const [email] = await getEmails([emailId], jmapAccountId); return email?.threadId ?? null; } catch { return null; } }, + openReply: async (emailId, jmapAccountId) => { + try { + const params = replyComposeParams('reply', await getFullEmail(emailId, jmapAccountId), jmapAccountId); + if (!params || !navigationRef.isReady()) return false; + navigationRef.navigate('Compose', params); + return true; + } catch { + return false; + } + }, + openDraft: async (emailId, jmapAccountId) => { + try { + const draft = draftContextFromEmail(await getFullEmail(emailId, jmapAccountId), jmapAccountId); + if (!navigationRef.isReady()) return false; + navigationRef.navigate('Compose', { draft }); + return true; + } catch { + return false; + } + }, switchAccount: async (accountId) => { const auth = useAuthStore.getState(); if (auth.activeAccountId === accountId) return true; @@ -385,6 +408,14 @@ export default function App() { return useNetworkStore.getState().init(); }, []); + // Home-screen widgets follow the signed-in data; once the last account is + // gone they are wiped so no mail stays visible on the launcher. + React.useEffect(() => { + if (isAuthenticated) return startWidgetSync(); + if (hasRestoredSession) void signOutWidgets(); + return undefined; + }, [isAuthenticated, hasRestoredSession]); + // When the network flips back on while we're authenticated-but-offline // (no live JMAP session), retry the session so the user lands back on // live data without needing to relaunch. diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index a1318459..1c2731e4 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -66,5 +66,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/java/com/anonymous/bulwarkmobile/widget/WidgetProviders.kt b/android/app/src/main/java/com/anonymous/bulwarkmobile/widget/WidgetProviders.kt new file mode 100644 index 00000000..3a4efe0b --- /dev/null +++ b/android/app/src/main/java/com/anonymous/bulwarkmobile/widget/WidgetProviders.kt @@ -0,0 +1,40 @@ +// Generated by scripts/sync-android-widgets.mjs from src/widgets/catalog.json. +// react-native-android-widget names a widget after its provider class, so each +// widget needs its own subclass; the JS side (src/widgets/task-handler.tsx) +// renders by that name. +package com.anonymous.bulwarkmobile.widget + +import com.reactnativeandroidwidget.RNWidgetProvider + +class InboxWidget : RNWidgetProvider() +class TriageWidget : RNWidgetProvider() +class UnreadCountWidget : RNWidgetProvider() +class LatestMessageWidget : RNWidgetProvider() +class FolderCountsWidget : RNWidgetProvider() +class MailShortcutsWidget : RNWidgetProvider() +class AllAccountsWidget : RNWidgetProvider() +class StarredWidget : RNWidgetProvider() +class FavouritePeopleWidget : RNWidgetProvider() +class MailSearchWidget : RNWidgetProvider() +class OutboxWidget : RNWidgetProvider() +class TagWidget : RNWidgetProvider() +class LastDraftWidget : RNWidgetProvider() +class AgendaWidget : RNWidgetProvider() +class WeekWidget : RNWidgetProvider() +class MonthWidget : RNWidgetProvider() +class TodayEventsWidget : RNWidgetProvider() +class NextEventWidget : RNWidgetProvider() +class DateNextWidget : RNWidgetProvider() +class UpNextWidget : RNWidgetProvider() +class InvitationsWidget : RNWidgetProvider() +class FreeTimeWidget : RNWidgetProvider() +class TasksWidget : RNWidgetProvider() +class TaskProgressWidget : RNWidgetProvider() +class CountdownWidget : RNWidgetProvider() +class BirthdaysWidget : RNWidgetProvider() +class TodayHubWidget : RNWidgetProvider() +class MailAndNextWidget : RNWidgetProvider() +class RecentFilesWidget : RNWidgetProvider() +class AttachmentsWidget : RNWidgetProvider() +class VacationWidget : RNWidgetProvider() +class StorageWidget : RNWidgetProvider() diff --git a/android/app/src/main/res/drawable-nodpi/agendawidget_preview.png b/android/app/src/main/res/drawable-nodpi/agendawidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..23530cdc36322c88601109c936322bd326eea61a GIT binary patch literal 39230 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 JP%dW{^e;C20v!MV literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/allaccountswidget_preview.png b/android/app/src/main/res/drawable-nodpi/allaccountswidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..07288c8e422d9ccee5fea027841e5ce7361b718c GIT binary patch literal 25947 zcmb5WWl$YW)HRB`ySoK<2<{LZf*o8A4#C}my9WsnT!SARg4@B}JvbcP{mb*#eSh4l z@BX+yW@`2BJ>5Muvv+m(S~Jn=s`BV4Bq&f&Q0QM2WHh0mU_ek%(27W~|166M$_D=m z2kOdNvdXqD&#!MUuWwJ!um8@^FK>@eFSn16cMt#I+tbVIf0pOhrJ>5Kh+`W9fyu3ZU ze*8VUeE;}B$7edbetdfWxPAWT^|7^ozJGFcdG~qhy%6t^$tyq&#VrO&5ukjX#i|=jO?=uDs8^`_m9jLS2T3> zPxwXu68C#``JM)aK$85cCcCsbJhenE^3go)rFHVnx8!wp`|afFqq?p+yW{2L1hPiw zv2*&~xA;nJdb%MLb~dnHHS`iw_h_GaM`m=gO6`8RaVqF?wxgSV5Z!!IJPZYm%V_($ z=T^Q-;j&8VRGL_z;R2e&%j#T7<( z;k^CFM>ad*pChuf0>BLl3Ki$S1A2BN@D&P*3hIlDq?Y$8q%+#@uTJw(HpSdV+0^Z1 zz(ej!=Y?6CWta?>0y``5*f?I;GMZWLA;8qC&d6~osW|1gmSwKn^Lo%-4OZbcm`_8K&k86hK5AmRzO7XX6ub|g6CvpQ2_&PRfx25}S_agAE z%;fDrd@INN;j4_$IcCuNT=$2k8hW9Y>*+r?ROB)(n$i2fmy4k18_LbcFUwug7*B8A zuQO0}=R#-^Drr8}@+`5e-AOh{Hcbd6zGsOa_t^qva9x=(Z~e9J7P=K(4fc9#>oX1x z#ak(|=_bbJPPR6~2SKkVm>i`x*mWPb@^_nyi#3uZ8{Z>lNmt2#*?lDd1b)#tmJo*d zMr!pc{(cOf4Ry1WYimKA6(UBm;a*-B>B2LPXBEu8}F$MWZj&#az5UJeDE zY{+|zyPtl!PStmGAPtv)U}3{Ezxjneqv z(uW+9(kfYNWj07WXRRi>-*=vddb6Eg-@Q(%H>&yA^zho*O8hT?KHAgY&K#ycc7wzc zR|K{m7f6We6Mn_F@cw24qJmpg({*XU%FC-WZxwv19&cLm$+UoqVybvs?)TqSSx8dot)44xi7iN$e+CdhFYl1}x+K8C2mF8&TFm#c@2B3P1L!E; z-~aeHE&Pl+!-h00#A`cI;~xtIe73nTjPj7g>~m@}isY|OCg%X?O!KRMcvh(GObEPR z3O8AJF|rxJgQ`kVOW!wKx6Zo1pOz>&5$$Euj@e})oCE=Q(E?#_+823`Rh|~XAW+Qx z11k7k6}@K3K-g78Cw(DpYr+8ZQMJCY`o(^6e~o4gWlVgk3UJx^UcR}psW27+sYFWM zdZK5n*=#HF50;qyr7JvkKe@Siw+NxMrXXShG{HXGdI7&1KUZOA{`u3~{1!X1n$=s^ z;eqRhX%xLf_$MXXsLI02$cMba+K%8ym2}!>5-o_s4~b{{ITlsQ?BVk?^U_Rc!~F@o zncp2QL&Zw;E6R^5hUye*-!_c89eR+nW5xmb@G5h(*_)kJ5FaWbQwzW4)+zm3T?a=7 z?C?U2XMp1Z@YF{#bc^&HVz=q5s-WXz4Y=R?%rD;07=sy;$p9iqP}!sWCq_NrJs+kZJYYoE5b`SdN_9G)a+PZW?EP zxZg`azGJp+R=R^cE8=uCcY373Mo1w98Fw_42Jdh#T}1}HZ}xYyj`Tm|eyWWxte8@c z6vgw%eof{I^vF6(Svn){UyT{XuUUA`gI)>J6z1QWg%~Mq9R{^2Q;4-ExD8J}LoQWJ z?6=pn#G{)L(yBAK>AXw$Ug>ir^fa5^zV<7xWoL_H!t zsb1`x%nsQWng#+N_f06ojQP>JydN_-1}YOr8c}xHXPYiRRAa%Ip7Zyd*_5R7AD1zn z59WfdUiRc54dR+da`dHBDMWS>c2pO!EndBD?;pDaIK$dztKH~hYZ(4Z&TqQwo1Hn8 zCf!#LpM}H);{&m>(dWph^8q;KDc{6i2(x)2Vf&sk({#4aw6*ruS0albB2rD#tf1!!wKev?x5W%yU6orjmWRS z46imfbdX(>+P06>0rk>GG#>8m2;WYzTXQ25}=>?S0$^O#Gq$+tN`E#SxuQ0w~! zVcJ&=PkKmi%GnL43KprJ=dm?ZQ;NY?a?ZWVyRmR$3P=!mY^5Z-P_yejQ_z zKhq8I#mkNO<&L~X33ICXD*K`<(3-&{=wYB$G!e3)*SrI-E7#eiF; zC0SJHYK?y;>nC4BXIpa}MS4ckhNn9Q20M+P?KISrNw-e_^0(nFl9h;Pt~AFuMjt+q z-$`{~xgqHbMoVcdxl=Pi?NF(h0ffnT%r_A|HU2ai1wwjKQ&dfCa&&~O?*l;%xRv>Z z7XDj}Up%H|sEE9g zz)kRiMs<-ax#Pw0age-&xxvn>J)^f^)=@Qyk4m|;+6n{Xd`&w;uK|_%c^^D@@Nh9c z_F#{yf1gX>4~l<5M2z2XbjKF{y>Yy|zsy@yFJNzVlNF^COkTaVg2$MFBt6n>rh9w6 z+{H$|zicc;px=$RQqA&OyY*?Q=AkPP2jr4lard=KT@t!XDH)z&mp`{26vp-rcP#C< zB8A1;DGpDx?9vpGQH6W;c(ZH9}`MvZGPCw&8Y1XWK?i~)FQV1)E`c1wA-sm@~aeq#}KZL*GvDKji4#)mn*NW@p%Xw zARbm-B^R=_RIS4PmxyYS_xvIC;euX9TfpnWxTY*5RVe4q@8R4F>+gu6(OjsJFmo$+ zWJ7>jyZZtRXf5L9<>A~oq-r|~CrvB6soeqm?=%DEcSa0#F zJ4S>n*fQxHY0s|^${dMM!sJf>(O##mN47FW6Y)d)2nbp3sC^Tpz1_}Cl)U)OFrFou z{K{w1X)AgjZqcpW_yIYLep5{=TVy7tBGoKijhx=s64gmqv$B#ugwhIUm~Xkll^7H@ zvZkUVSw?`HeV=G}i8qjAkS(3g;VzJ;<)~xtV+mQYjO#L#xKDMW{1s}B=y<%`*0MEu zwk1$`PA!XAse1DEJn|0P0UNa`-j*S)zt{%r1i3%hQ#pfby~z7+H(7$dbjQHzV=_cZ z015FDdkbF8k@vJ-+QI6`w_K8l&1-xqNev~FdfeXY4Y0;hP6l4TzXw_gxPpQN<`C_l zb1|s>)K6N>R94L*gZz*m{ez6hzLD}`-jlX>2*}=lAObHkw^lX82v;yEME%?kbM)Sd ztfw|#YR8f{zLJ8%JRW7v+;NrNjRN37_$_`p-@6@2?JIwueG4f+qe@}(DX7K(AkE1` z?WYFwiLd)|Q(+bPmBZ6G=$go+-}R@~@9zSp>Pgl)(j~BAty3k_qkV_Bl%E82@mGAl z66~#K8X3SUQf8hpA|`M48lm@O8MyIcU?lX0z*{t-gU`2ALJmT=#DBu_dNQbxLS2W3 zc3`R|P5NO2yFa{>S1z0;XkU6Nz6`fx-eV@n3cl3$7lhobn)Q$DG}|=P&%=S%6l@BT&`eD&#AkM>n1 zF}$D#G72D?MF`vS!ZfWrFVc$urf3{J-Cds!YgL5{G00h{jsb3QL8lUv9@sKpPs4(S zb)2o13#qCtW%H996Z3Z`;K}s<^xb~d$8|d{2Z~Yn2+_-d#?ns>5!_78iVDtMhm9}e zQdW@$((ajOM4%~SK{SmdTi;q~6K_NEE_g8Q4 zdVKxdVYXDYB3ashkOjO;?;#Oa5aRa|{$6Y0wpOqlJ$QbWx144T{w7R=h?s0N5lXrS z@^gaJ6rJnuqbI$MnS2NEYU-#2U1r!PZG4UN<|l$KK4A#?I68?6E)s}IA2tidlDa&x zRvA{nuDKBL0pXM4DC^9|BIG+>(Bj%xD%B%K$$VGriejbAqBam;0vQe(Xt#Mi-9c>+OK}O=FpPB=51P zJDO8{oFCwbSr5TdBImt<$W|165AD;50kUMMNelmCKpyksbnJn$U$16Za1|H(W%Dpk z{LeZklvKY+>WL8U{Vqdq0`-BPk74r`=<3P;{f7iNLL%V4^x~U(lUc~8yhtuNQ(+(j zwJzao3t=*RsFxElAc|*z?McL}K3tv!Z{OE=z|@Vsc`vMWvGXkg+Bo;2S7HHDdQrH{ zYU)c_o+D2nb#+|f5+%YFb@+`0$Lm3<-CmB^kdo`s_mjDE3+}NT#MCw)>Z&)I&MT1~ zI3ruUW*QC2+w;UhMD)Nbk;Th8OxjooX$yGRd`tCV>p)MR9C`EXfa6!~v~Hb&# zo@YE0o8PazOyyFWQ&!ZT)P-YnZ{>_X?~|Xz_dBD zmMM7xv@KLHO>DlADzZ-$5AckoA2NHood4n~#{P0%)JDM)deZwIii_mFLq6?<_%MNS z3j;qDpn@8s<(2?>hwUj4J3Hgc3_iTY11#|EVsgYWz3lu-JUoNxH#hV=Y?jOlk9{ra z!0y0}UKEq{Bpmii`RRw%1W$X=1^tYQHEtj82HX+up%>~A_?Q3AHXC)(Wvw#WK}$jG zATK&A$`FMC<4^~(5amS?9E88B1;QCrsKHBuYH(|QJO-XtL`)^@OBH7MIrlx2#0WJ% z&AtnL$_=f8ixS;+>%Ws(sGPO$Xc3Xwo9VBebceL$aopF3=)ybnIm03~Q}PyXhT|Td zll+tsakmDCOrXfIXCllIoMH`c@KH6;Gyti-v0;cBl4aI4-@Fa;ScwN7zDzWQZ*tt0 zJE(2$OBkiNuM>EzVITuIwMZU>r@Oy6@!TGl%u$t*qp2A+}2zokv&Mq>M)`l+YlecH9~$f1w{!_LH52xQ;lSfNNDhVU9`pYvvZnh}9Z?1wq^3=M6K+S?fP#*Nk zwJ56o9Q8%<>thwA;FBKOSch++#@*e~g>YHq?w(~96o5JtZXp$?Ue3(8DeY?8{I{lw zY?V?UXf{;4lbOR55m|r3U{;jT>nbNrxrZ-58JRwKUl(q)lX&hCP zHUrhDy<|7L99!X0kbVvdw!3FxQy>~#lc_h2%t;9smrxzdxs=I_b{JKuNerF)lO9;p8= zcsca!-feG2^QK#40I;QyoUsPTFmOf(&A2!} zDx#OA(Ogi*e-?Gh)!cTQ;#wrYl0!QHu%iyZYHW%3Gsy}ZK8CB!?(ltpXyJ1RU628sTO zVm;wq=^D8mC8h2t3w+)*>GFTxNy&eQe+!3|yn}~F@Id)q)h`2=>%1ml4>Ok%;mvb+ zuDdaaML;Oy3?Cec5y@x~vZKO|YUW6zR=HE(r-M6n>7wwbkrBSJMH|T8Qqh;k!OroI2t#ksby3Opz>OEaF`#e`E zQXSxbZPcvf#yzOYKPN9YOX`=&uJPJXI?tTl$FEFvMtCYZbzfG&@v4qXem)ouR}tbf zzaLzj9Wh?QfJHP7wOS2MK6=2-ie9owyiJ{zZ)L!1SgtQphixwp1HkJ#P77L~GE94p z|Ln5m4ke|kltIC_Vq`~-p@bOqwLIMNQVNlB6GfJsOm5!}U*dAQss)YbsuTmnnL$r; z{xgSSZ!_q-NV(pkXx}*IOc+j9{15Dm-L8U^ewFXSpAIBk(FiEr?Za zUVi)&$4amKB4r76`>!7hzIL{i=&bGB zyYxe^t*KB+DLcJZ+y^n)QHiR&GOPFK2sfX|1-jzS#ty&#N?hL% zGx2-(*_oYAQxoSfS$BPjs5~55hXX7>-(DdS?zz38OQ;)XPwq~(`Q{ zX$@o{Oux5kXv|=+S0Yp0b6|ehTz?G}y_@~J*|!(A!peImg?bovVdMa`EMx6zhhwcA zfq2kLeT#sUtnI(b)hcaDk1(s(sDn!Ka$YXslVranq{|+hTdy=EEKqsE|KwZO_)tko z+iy}?LjGz{6E4x#q&O68cKVrf6x<~x+hM;P_^C%s0C#osw?v2IazM=%HSJ4GEIm=6 zh8~r7yGIcUB~xe04!&EgBK>-gMtX9o0B)=#Lc*ElX@%6)Ok~ z9;NvY{4;|8v;7bFe{BC#`MFz?kqS)xTD1;}s%$ zG1&frSOsvF3q1Wl6seqq&lS!J`a|)5YwQ2B^Pmf`Id1YrD{Ey4YpK9VEyHX%;g^(w zT2V}fuWVye5(IOn90p$aX_?7=Uo;2ebf=?s+x2L$=c51KaC~v%9qk_5N;TyKFGT%H zhEaMRL(&|-2=3$r;Zf%_lu=8@`<9X z2zhVia2gqVnOTsY$&~EFk82&%QYGSuUGn?XGgzJAfor3qABs9do2-@ zM2*Ke>pby@v`2VmF6@hlq5i&n0#SbBzN*}~c~+5LZq`#f6Ejj%Z#w;Sy7LDtV@-9G9(58DBpo&Uw2xzy57!OE&{$4r$;Y@$H35}P>Iak!ZUCgrtbTMwCJ%q)Oq2942Sx$ zaIp>hHMg6`AzR@Z61IgZO1U2B+?OYCgFo)De3VAZgbpS4%Hx~60bTL)co9n*3=B@6 zB4Bhsi)GlY3}bHn0wbz1*4ilhKkv8X`Cs3!IR#yhv`~t4cHSyJ=p%(RwK;qzrCb`P zNaQ&Uuj(f-_^dl6TU2jgU0F{L4282XPq(aM?e+bAyRWt~`vTM9`H!YBhSA8a=M#l9 zfTYTCVOs&z=7x}r?e6`|RxM1H>2jK7^tfHoGtw~m;pLEAhO%j5lczRCQ#lw`vkJRq z{;2MyV&2AjItSx z|J^JXKi%nw!mp1Dx-{O&B^2F3aGXSXYf}FVdph!m!hV|!;{pP z9-@}R!WD-+e6kRk%wnEJjsA zGa$KrrYWlh-f9Zur&e$2eu>(5bBdKnHCZ6Df5&%7N8$l7EWXCT)gSnkqdHTUn6IgY^J zWKNDS+~RtTx=U8F1+;=lp0hg%(lFCX^1grJowG*M^T{z3jlKcIJ*hkX>w%2fR<>sf z3EyL~52#&;twvDYTg+_>LXqz&GuIWBCD>f{*{m$>EpFN~&=oWlkkqNoZ9$dj3dqZm zPG7t8eNVr7R8nUBiR2_@P6`u0 zaLrUZ2_N^9ecjXyip4zhh5+9R?xHW2Jgou=s`n&`6a{uCV%?!RcB)r;H|v*L*zolqEu~H6GcxHKdl4Yqw|Lqc=O||)apsK~eBPk;{Yu!#m+im5-yy-?> zI*!QJePcX?dKl9=bdJfQIvsD{00@^UhaornL`_kzku{x`C`xYsbWSmlSUj7@*x4#3 zS(5uYC>hDRf)txE(56hCcAbT9JiUfxQiLNd(K0$>7OE|i&VxzZwcy5&!nzafysfaC zg6#zl5*Corkqmh3%`v(}<3DbD=nn9s23|T8aG`Axg|lIO-G9n=l9p^%flFS{kkeQQ z@pd4^qyj484Rq20UD7seBaf=f;m;s;N!H-LD}rovUf!g2{=Z7#6MeLc-xB4@sd03? z-lUKXv%Dc&YdZ5`bLogn;CHP*DECsIsl0Nl=|EcjgIK+saIz~@g2oM8>f&F=nDHKq zBCWw1Ax)>;|Q~IwY>~N*!Q&FtAwNUBMvP$4WtbcPPv@)E} zdE&Y7_MX^)ka}*@B$R3klKu=dSZ<)1&k~is;w&cuv|3N9-KPYWVO!3Ek#8t4fncwG zVU={7LFdl#v6B@LnOue@f9&>scGah6!;#X@LjS7;s5UekJCT75b(-YmJp`&WM^Um8 zH6#*7$^L@D!dvuYF@yG?cSf2|#`{qT^~cx&8F1A+q#JhWA~wZJgIdSGF@2|`CpC>) zAIC}}{|JI>Zj;k0DYQkk|3Q9rVN83b+V;I9_XbUyU@G2)7i^!KBq-R`^=U z$1IcMn&6ZB>4**}dBe;uPk`yo#yUgxvO6K$|D7tt(T^J=z$83O(21y6@6&6^h-EB{ zw}C%TStNCg(FK%)<#f|-7-;TCve8IQSkE-`-aPa8x;ZO4h6n2>ymbs#py2!qpU+($ zwY`>ZwSx+|dIigC#Rm%G^L4V}-^j#VQNP<;k!cRG=j*fDVlIS#T-<(W z&mhAs;2qt(*Ee*cX5YEZ+L4NHvD*{TZmMyQx3Q7`<{ArYTVnpN?$lbC;C7-TECfRv zc5@hDDmrQJqSkhxBke;amq+(xa&^cd9=b$i|27N=IY&n#Dh^%Vc|9R1ew%mcds5{Z zF-w{v@_G92H5j+Tnxj3}c$LY5igu*JQk77alMyCcQ6IQ--JJA|T5T??7mA_1v&P72 zr&!(%9#NPwJg`^ryw|v^ST=t5I)iJzV6Ow^C>rQ1em!GPZ{ro zm;aMCXI@$&-FYoBG-NySJjO_Uqm+!i1*sRKr4m8_=)%XbqOYTt5ES_Pv5C5H>Q9bDyQANc2Fq~~ zGGe)$u-R@@oY1Nq+Q$#rK8Ha#o%T;#2Efa3v~A(nnWoo)X?UYO)62${!od(iJ32jT z-jGUW$ta6@*;-*I6?(yTQC=>cqf?de=|^_q9N2U{-DWpZBk2HB3p1y$&9oLE{gB;l z;)(GunF}#f^SKItt$A=;Z`w?Xy}Nb@v+yuxs^WJQdCwDdUYJJ&ieTOp=P9diVQgl+ z4UyxgMF!W-)XV>d1=hN6oF*Rdrxd9(6=fylH&KR5(X;vbMb+Ce@y4j*p_$#jNJk#r zyT^87jLq1|*rjRS$!TdZ8QWf^qm9@hpX_I4oB7>i!=z#cDu=6bb7|nUDilr3&zobr6sd+AiB6~xgy;BL6igAQPzwsUmsp}1pooui z+vjgskMI*{I>xAh+w$ijBuFZc0*=emJF%Vb$O9Rk3AAUREzfEWM({s;co z_8%Z#$qR#sD<*htk+=R^{Fz{Ggr3Tn4b+Nz&@ykb zLFFZ~d160QnM^GDwRQLRQQyI50Yuw9Js>sH zaU5;+b%`Npa8_o_xOIBu@MixLNN#uiDgC~C`neBY1&7-k#f%hsM0InMuEh{(1U*T}WgEes(5Eobeg!|iAzu{Yot4AZ`g%5E5NZHR!# zRtMwM3L?V0Hjw6iQb)r!sut=rac&KhCBLhdj?Uc&aum>-4Y{pYU6IO8+R}!#$3c`N z2}%i@V>ox$6`HdrniW|5cFa{Q5P@!OQq!r|g^fd;TbyvHy*e0F1Fse4=g#Z5aEFH- zG1yK-_e^1sX}SIlR?3Xfa}4$@CBQNdB-@9v#ck&=Rtc_#PpoWE)_O(1XQJ?`eC>*2 zJ&|mtHOin4Or9+-`6~UE%@}PK z%Oi6_L-k+wJAVw%vG%tO$kbX#dd@P0WF!Xw^a)UTd>)Yp1ugDaZ1$r@Fgd3|QqZp0 zQu-~e7&!P0_DO%y(;dVbq`2zz`&D@5vpuE^G0?=(P}L_fQV7#60MiJqQTV~6;f07wB02X(Pf`>@|R+|Y|py%O)mo|Eu4#%5|j~8+5gsdEO zxdEf+frJ9Zfc(a}MV|+1LiLQG#?oS)6)h&FH%F-&6DHQQ6sr;3T%quSm2~ws8pgWP zs5r=&B*Csf3@+baeTDgy*>xQmYB$ouuv?keo>LFhs!G~T{zU5N*e!wP`qFkOE+BmK z(L*zpqcT$Vyhxt~EDLGP-YfeeHw=*a0>KQGKxhvq(=1i-dDLXV3Zr<@$_zEf4rz{j;11FawvOTsEe|zgw{TZ>8t~1j@91;znm508wpd~eu%fqHI_Xj){O`X$)WW_*`hxQML?pA z*1(5uqHvTtXAmw)$dejTSdRMrGjn?Buv&vYeoceGy4HzFLPykjLjr6ZWBRvId3{WZ zpO#aahmJptCWic*HCU=fw(N&?t`0CnM5DK@J=%l3B925Hk9;O3iEeYgw0%M#L6Vak-J8HfC3C_v0r4mvpqJk$=p7E9Nd8 zM&p`Z$B~9HsM}qwOY`#RAq*8UwNxF?ceodBMCn4~Dzk()$S$-{&jwQcy=NGEX>$Io z&dC{8IaUUvffIiWy@xGaXsaDxj{zfBf>|!mz}}pFzJOaWU0;_UZ}x(Y`$Ccx?sY?JMu5WcEk-se9` zw_>OF*c;8sm!SdwND@~;Ldr>%8o3A}euY$ea7QK-N}J#qTH|+C)X#76If-UQ>M_bj z)I?rry5Yo?YVp$Ks1fK&9(8BxgoRYu@En+cm`N!d1Ap%<$6w8O>dp>TS#WJsvqitL zeZ!(sBCT;r@ssrAlckt?OvS8jG8`+g@5Q(K*h5o~!C^Yh$Q5C3R?!M_ zBR=5-q+mn8;{wlOVu#rgX32UzIe7{iHP>Kc*Db*Z%BI|IymG>RZ$#+5bakHbaws|i z9i!e9C<07zyqv55(!;1YBL6WNNGxXvMk9i4U2_mXgKEVn$3cTC$u9VTl(dkX#NmO& zrJuzTEV-wZaidHix4hlc5XpluFAtLnV);)GvgFn#l*y&?_)bI^qN_=mfy><`@(_#4 z^~!_|bfcxoEJsof&$Wd($cpD>BcOjYJ9aE@&vU91RnYfSg^Q7Dul|BU|CDNg+usvGqbeYu zo`MF8(s^Gi(33?T<|+QpOSO(`hw79Lo(fG+`UT6 zVG>2x?)<`xsP)?5)L2kCzE3OSwW~`oy%=j;ID!z!+i-xY{3FGQjxw8O-Aqo zHCITU2lUDs6WH=f$X1A8l)_w>I{V~rjPzdMXKOIY2;4x1zG#|;!IX}5kzCJtcoKnG z1(f+c3`<<)mHLDRdhkUxG)KRb2f;qJHA69LV67H^c5xRpC zn%Ed`iTelM@ZoilozDZlMT%UTU#Ii^_WYnY4Qs^HY|e(4;sm| z5r5S4R}mB)$r&3cB5n8l-#uNz=ah)mJ9_|3)={CU(r25b5$s!0wAU+|7@X)wmn3}6 zE5Z2^>dAJT@^-{C&4`*XkWR5YzdL=M3|awFOx{iz7{?45K>FJcv0&?qE)1;#*q8d~ zxB5{JH|N4D09+gtQ6<=ng9`-Eloyr%?$OtO_fE1zB+V51X4#-#99Jb#wh9N}$M3Ju z3l2A&2o%@45DkGM{mFXG&_;4QM((fhGxq6gH#R!&L|!{zzJE@$$X6*a#*KL2w#W=c z3pOY7{AdShW1+L}i99we$BTta3~Nd3s$M0ZlOl3iZo+evD7t3}9JpOENgfd=Hz{4n zPeyTig_mFYT4jdpIzNK=C`fh*x|xG@WxcQBxT;@=4@I#<&o0>@-#viclUwW#%VYW7 zrn)yD&LZlwN7C01mPcfxjMHL=Vh%weDR z0tTophMO#(0sE^T`tDIa>bZA6LRBpkX@%KuHLe%X4jVk7r28XG7um~Z%)pHs#NiPo zFyD#VL0Vq1624mgoxX(PL#thOFM&cW zQXc#D3q2OvOJ&tk&!v!-$*3a^1F7J?LXjB~nwimskpV-`a5dC}zVBA}? zez%Fh0o&T5?YNT*DR_yY>C`9372lyW=#WZGWX3lnhe8X_tLj9zObw~Pf+!gHj@d%a zn62rEv*YNsqK1fa;J-q~6XZLXijDYh8(`fhzi~U_m1R&FIYFsLseGK2h&x-(4i-sI zhbuNQnfe1YEuFZ*#(BIo1`ejH&j=BdvMPzG{EEa6W!Aw3nX5p73T@?YY-nri$to)u z@erUOKgpITxxQ$NlnAMwC}~e;qay+V38N_SvSCrJaR6=*(6U5Q^E{(LlnCc2NyGz-^3}wd`EkwlV|`JUn)M)-96VGkM2g7o!UM@ zFM(p{t!ucoj08yEz>l%_Ni~zUx|`Sal-T`D0>)X>LLS1qo+wVT4&U_g5?ot$N9S+c zle5?1sC>^+R=4FOh+mtl3hP+99>b$~m)6lg2MvqMgwWDvG+c3l6mMoZSg=5nS1#qc z4D&dk20GdoDRAHP;vP#Yvr%Ub2oO@8WW=B&r*j3v(`<3KUVot7%7Qn3ItqOD3>T@> zmb(v!D;?`9d{==GM8_nLq?g4(VpkD-cUju$l(X(>LaG0k3;uue!?Y}8r;!l0PJc$A z&#$C~6JYYb2X>f)uk=4QnDnO&AnhOJ%g$YI=~B`9A4H&$M*}8@8vg&_o5z0BvXtqh z?rYO@Wcpmn!4$dH*x2mQGL-ct?IVDV5vV-*((Cl`s9_{T3k{F21{I#TfYA?$S{xIDaLknt8~6TVCGkkm+K@v#j^12 z4D{{&VVp>8tGskJu($QbM?eP3Np5iH{PE)k^7l0DEAy2tPVdu(Qw%EuNuHSB{gJey zOYW?$i~UXZl-LU-`^E(6byD@73ZyCLT^aMp6<2}jHH+KNcg!lVYeFJmQ z45_$`gwJR<%+PxK4&SeA^E``jMa@MUq~Ro^Md(^Uv3NS07`L-(+_|x2^o#Y58_0Dv zLuexA|G0^GacaGQ%BgtuKZ>Nee~P4c9*DWdf$!J=F5JAMhwj9De6l67fi*H9ZoJLA zD@_ibn+87ja3i22+sskkwS8$xi%HvK`!Cy|x6E(1l&E&cKNI9CtW=1D=2;>a`|81k zyDmwD3>{l!D{B|s4>fd{l;Xb}dcQfoUmh=+1ifAjn*_aWU}lfSOYE~N_@ggiAuk@x zbwYtkm6G`C;i&8f1V+`L#=iE=@s(dL{F5N44C>Vb;8W3m7t=e_TGnF64Fb)gbkLGL z(u*m7J7O#6gt~tHS(;Y2g2do&IkFWCHvh+CTukm=$xLW2KV1C#OhcwC@Gw&LSDaTU zYk9xTpg`TF`p)*N{=q1ssr9$j+pUW9!IDCLRDFU`?^0ROv(P@1W-Kl9lfj0R^V~4Z z(nyPCpBGS7%^|&~Xxyi)k#J-hlw9|4s*p5g`0rPe8rlx}!Gj7E(zYJ_7<|G4eLB=@ z~yGkW{KuV z4V#a&dfx;9)2DNRLQ6i2%CEfQs=UqfPKB z%b?7t@q;W2c^fO_H?0z8wUjD({BDmpe) z{K!tbES=#Me}w>P;N1zw!G8o}KE{WY>Ie*IE5Oa3Vnwj^%M27=Ut!~d27N~9?J!?r z_#s=(YJILwqB4U4_<|+`S)0!xH7B;A$>dQ9UM9eqrm3Vi8-y$7;<>dv< z4xkclybQOW%A1PQeW;}ldv)Ons1f6!Tq9dxMWZmL$F?o=wlym)ySl~WZ_R@7dI#v? zU%6ikig{_qW=|s97fi=yEh?Rhd1ptHok645Hlq!FSEjpl?uu6X~kKGs&_4>Rb}d>w;*4tEhc26qH(k$A<&@5Rf=_n zd;)n=@*Y=wJwl!bn)!ul>J)rV92pInp+zh379ksMR|FX}ua;KvSfbyjHTDrTp@^wM z4>tFA>ecq>{mvmmZOBE#gVTzymi2>=F>uT5a@dzw6v|J)S*%Kaw$&#{;!D~J>g<6m ziI3Bw?jP>ZeHWv;TCM5CJpwgYN{3$xOXk>IB?hN8$8IYY(}=R|ye} z(_AHhv4dVJ!s0G0+5DFp=_}F+zY{Y$WNU}_He}goiJ7&%u)lXO`WNM zPKG-@W3~bPMx)%9WOutTaLumXov!oM;&BgKtSc=sR|*KtDxNxdQd{KoF;ebg_{SJCSkNEkHk-E z(Bs`IB2mHaM`RZ;sJ69&S2AR?g^8_b9tM+qc~_!F^}+nGclc& zBbgm@O1HLigDT@4PRIb1Wt9M*TAg`sAMZ0YbBK5UP#kV@aUOLaa!0cAe2)ubAN>2g z*Blk$iNK@zV#eiu(ecZ3?F~5a^{wwa`<|;t&QaA%FEf0T>ZitqV8q|k+^pi#i?Nfc z^nbn)3R>!HyF{>l*~I~M`T&u;h{A$~Nn7e5v;XX-PJwW9;tv)9}Nl+B@ zq4fQJ$1gEYb1o%xYaHGxBaJnln`xG4WF`{!vRL10)!IT&*IS))g0^z_3=q7N9Ue^D z2fai~dakv@vMlE-c!C22%q7P`?1QVM1nTrp?9!xkEm%D)hlcPP@!}oPu1op9$N6?= zq5Wt>2=+R)B>)uARckVemVHC7>HZ9&dB0sbO#DBUomEgAK+~?1;O=h0-7N%ncVAd+ zSs=JO1Y6wQ-7T=VJ1h{K01JcwA-Dz!LH~UJSLfo~oT_v8cGXN(*Hq0#zw=D@kIxY? zwqQQV$Mb@uluF3wev{KDx}F#JuF|qWE^Q%4Tzc<2F%I+ks!!1jxCbyREBW{L0L{8N z-)M&vMl~mmI0e#jf1VX7g}b)%=UDuDnu*Es|3Ev13Ab|TJ*L92PHd4r-iFfA+Eo<% zcc`2FLdUUD)U%_>zhqS&fR22>1hiOVazvP+3LZDk@X@WQf zZVK`Hbj5~wljuhDX7*XFQ3uImavsFP9ZniUf~IrQLX-q!W_XV4&`5l+wYja$6^P(O z1gbcND2lzE%QIs8c=wWRy9wacLYn~HQ!&B{{YPgH7XQG_UV=Wv$;ywDc;PV7t zx6t&zp8SyvwCQXU&~Za3)dwPbBUX>hUCTAOl_y% z&9w=PE;51L{tpY_BfDJ=uT>y}ubRxyfgO;gGj5g2jKXj$>kfCwbQ4Dk8g*%_%C%=K z01=ibZuq8r&I{(g}m~Hk{wG6&F~vcoH9!3VIbd*4cf4N z1PXfKBl7XHOnZGw{fL$kEh?UA$XtPe`uH@Rbxa&AjA;2y>)%d|fUU=|2S#fot5^

*1K$aGNdW_QjA#pfk&k;8!wO5{v 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

o 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 D3URY8 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/countdownwidget_preview.png b/android/app/src/main/res/drawable-nodpi/countdownwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2ef9baf14b5ce6beb09c33d7eea78163931656c8 GIT binary patch literal 8823 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/inboxwidget_preview.png b/android/app/src/main/res/drawable-nodpi/inboxwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef3d9928a77a8e38c5f279e3e831c6e8edf6b2c GIT binary patch literal 22302 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

#`ItrWoHNlNbTQb1 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Ÿ}`Mx+^9tf|3}or7BCvq4$a~p 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 S`|r~Wn3R~j=pSLj!2bo7!)&Vn literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/mailandnextwidget_preview.png b/android/app/src/main/res/drawable-nodpi/mailandnextwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..14f5c077373831f2bb2070ddc872018b085d610d GIT binary patch literal 20339 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 JPDHLkV1nvm4?F+> literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/mailsearchwidget_preview.png b/android/app/src/main/res/drawable-nodpi/mailsearchwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..b74ce6dfdf73eed8d3c9ae885cff65119240d3b6 GIT binary patch literal 12578 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 u6y}#>W^^`L)FH;|r=!UwQXKn2>vpP65?Dr2xxN literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/monthwidget_preview.png b/android/app/src/main/res/drawable-nodpi/monthwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..f386255dd040265a343764b831c3db9e11493e00 GIT binary patch literal 29056 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 WL#3W@iTYu<- z9w8$y3(Fhjm0!IhbJ7ayPR}o^>zW(Bb+oki7WTgkjs1RndGF}z4@oKtk4}yMoPBa} zH?;hAcJ<&B7!CQ_bAAV{8-MxUKa$e^oRM8z-PC96@QV#E;-}%Do*2B#tgj0F1N}WG<-g`!!Ovv>&Y-$0 z8hF9LpyU3>VCU9DUtwUVVU*;gwf$GlzQh^fEwA*0%fdt4p1$9pbOkVGPE@F|phjck zQiEXTMCWQ1FLbI|;v*4P4ewoh_g{$m9t!jLP_X+?&XD{YekY6;xyGShj*bTl4j_^> z^6^aW*#eKhGOw`aI~3C;xOkD3VxMvS0|jVY(abkeyF-~-vbS2NSv6>3QJ;yK6tp9MuvCsU zgocG3zmh1OLRkX#Mdn!Wc44fqwP|IKTymm~_VqH|-uK5O5>bt&hpBC78`U_9XJwNr z{@;gp@%EtM=Hl;Z~J# z$1}C2&DPeAg+DarB}s!j|*ReErvB*$&wG$XwTn{t5?X zUtwPS$pHgXOqZQ+87J!KENb7CvTwf3$@&B@d+HpbjDD z2gTL9l)T>sQIZ$RlHb1JLp%W%d&yPVa?E&cv+>s`j!%-2hB8I)K&9S?bp7Z0eV;PW zpF?tK=#Cl*Uccs?=ZpqD($8$6*;y^+0BvD4q!uZ9KKbuw)zAEhdRCF87nXw1^zXb+%_(C97+xM`@VH7g1RJ_X9U-sbO4Xl1h04NFDyd@P0 za+6gT_2-B_wx98eylqY1tV>CRarLH0hn@)#J@F~~!{@Jb9aEcg;4I0xQc?`|#@Q{t=(Na+g!Oq~B3nY*&R zP?i`Cb?;#z&B%?e-V4FKTy14vkKVKQd**{$6SA@XE?wgSDr4KA*b3Rxi1vcJy9YB& zqwb#1fxdCnZoa5((Kqw@UGO^o!oMQCXw2|VNMO(vzm8d`C=ucq6`l9|(dLs*4RJJu z^mCRjy9ix80HJAwqB4+c#STZi_A6 z-hN^Z-}KQIyNdhm0?*KIcXYHSq^`nden$CbQK)sT_>t(x_NM+gat@>CRRJ)e5~98C+mkDaHv6!^ zkSx=94Z|iq!VNZjTRTqrLYR7Ee@(iN>ELyCemQB9Tk2j>+OgAHy&19Mz9#)wLJdV{ zO{XSybTIudhf!CKi8lR(At3^AOPzGu9SkqI{KKO8G|bp-N;j&#cL%&6+`*%hjq+KD zM;tN*VFZJ{jf*viou8Oe?#klZ)L$87*EWnmZeydH?Wf-{1n7@9;kp%){ei268_8B2 z{uEBqAaet}{&B>MZ6R+%mew(Bqa;1Or7*jIP~T z2lrkuKe1d3KoUPv5@+0z%F$6`Yl|#6dGq-TC1{JK>niH;y5}VdKpM7y zoz)KyPTCQj*r-2_;<@@a(3$qe%@C0F0sXIuhWTMR*Ym?y`E>4Mp zAFGnapRMo%YU~en-|`E&yiguep=b#T_I0U_Fp(=pZFOvovd_%52eAa+Jf_mE+Xj!Qp#%v-;qg+NWV@+$W;Q zpMSK&>JVz-coM6bzWa+)04NZ#Vj?w<-w?LLU##~5zz)tj(iokIQTr_+`amtMCAf?? z$4B8ZPk)fyZ&S6tfXmA}blZk0T}Bz2kRYnvl&^A(J(pyGj0camdmlgZJaTz^kEFL| zAjp7riKLZc%E|%Ez{CtRc_j@^kT&3-`!7;>%MxZce_gsLR@+MmP_m3@ehGiLJNZY=9zm_V}#sn^l>7{*Kc;r`JEi}#{ zS!^s*YFfYWQ^SJmGMF>6KkF-JMd9J$ox|4>*+aCSCrhknPj|~xGcWON`9RE>HQA$M zIeBv+0q~_WhCN2}8Q?u1-iaZpB}s{=nys>?y5GBU!%64aUrRzT#!@_XJ^G2tn$pz~m|!2U#fL@pN{wh4qDOV#xj8spi=lxIR5euG6a?`#;BmM5gGZIgV+r!QIBIF(?qc1H zsHKJ|%@h`0ow@Rye*6L;v+f7=NZc3|aYf3-Q`fq>uWb2(h(%?t_MX1JJ1KN^5##B$ zjUHf+Mtvy<&6I(5g+1&yeXHHr)l<7h6f`r4wCCFWIiwm=OS$`{OsB5ePk{U}E0=PB z!0raQ@CU{BHT$05QOSN=9OuNt-3yW|`Cq;iE}|HYj;)iqBQ_0xn_Ut@qWPh2wVO8Q zr6%-u+#3F+G}@?PEVCvSX1~XWh|&0`l^H)z+#l>ki;S<$@~QTmhKd2R1=tCMTfZ@ zElWk$l0KC?7n~MB)4$=TK{f*<#4I1RJ`T38Lx2!qLX-$PD8^^aD^$K6r)uomOMGJd zRO4+)2gv;>q%FM?#peYBYLsKts^T5sXZA!w0P*-3tyqzKuPGZst>wcDM>%IvL%T57 z1I?AU;1hH{6@KH~*?W*@R>t+29PBw|I69@vndK2XdIiBR@5}*W!6riI>QG{>C2tg)f{+O({buR8x-( z1~J=4q-bmG_gg5z><521h57Cvf$0pU`}6r;+fJq%UdQOmUyFqKOK|i<*S8Lo@92fo zb&>vdNUIC;BEe$DKpjh&yUQt$f|xHJf!{>Of`qy>bq8^KVD4){yeu|LCY&`oE|fD6 z(9}+%YK$X6j}7-!0A>2+Te{)%F3%Nnz&NQTQBedh3EeakYxR%%D+o5llg7O)K8!S7 zcNNkqw&_OW2mbwE*Wv$K$s$xljr=!hh%Wd_D!4q{9|NqNW#2d=gI0RnQYOuhUEdG* zREC_ItjP@n7|uU+$$|y1=X>v{gvjQ@SgB8r%Mzy z=2IC7H0O`yLM7@9vMi0_HE?s%7ZuM1=vSE|*_&;h2#DuP8;NnU>r)wPxAq#VHAu>` zth>Fa`vNvbq_Ok4s9C+gPwz^9|A81dB)`eLNQVv;5gHdVJb>s_Z z-Qa1gQe^n~O4KEb=x0Uwn((FZn^H^AvN|l#ShdlzEM+OB5-{zmbjLi1)8>u>P|tdP zlNjpZ@!)mZQHqiwawpRO`29q9byBzY8b?w!O{)KWkSvYBRUco#Dx|c4pcPGPhm?ls zCRd&N4ln9YF_Yjv<%B1%{&nj5=Ug$;i1TN*OA zD?WjXIcKDU%mLW&t^^wkiV|60I3faB5UGui*L2=Gg&I~vk1@&9*bkI4Gs>xoznMdR zmJ1yQtR>uy<G*2XJ zhHtcu5W=II1oS_S8Yc6ufB~fOEgO3pYP?9A&S0Fm zVguu~A5V_)$cqIAzW1z1vK8dW@POBZ4XtvXT@%i2T@dkFr5#NfpF zyK8F#Q4%cHdCOPD@sKnUYE0&Lp z3YkKSliqmUl>tbUWEpM4V;L%IZ2KJ{K#0qHQs(r^9~S%B2=X;8S}7FyWq5fe0K880 zU6Qc-$2?sgQH{>z-?QYFicE@;hQg@@J$%g$R$vk2pJ;eecF4fOKeFkTw0)>dY2kCp zrk18@K;0-M)H0B-DqG}(W-ajeJ1(#z3m9XFc|?WpHj$R0Jm1tNLes>pt0Zk^j);$! zuc#A3&4k!xW9}ypTtOFHmF*l=O6PBG)S~pZJjq~{Ug81VQR(@GXsRxL65JU zBUK7<0AT)7TC=vf-SrGenTDRLPpCBsr|C?2DoqP)07w#i05&1bo=H$gDSQ$lQeWwi#Mgb3mjR zO4U!HjKS|7xM(TO?$19{dF^iIB}0v4jJ-9kxYerIv4E1H^q+q6rdN!OD=Uq2M!po$ zGw(Ii2mhF`S$eTb2T;tvUTxu*=X=zCr9lt!Xq>x) zpXM7{~v|CP-I^MVwUlvbYqm>9{I_Y> zmDcC0D^cyNIP9Glz@TZ?r#ANcgzTEu->Xp20pR?mfNFH4?5Ree5an}egX9PrSQ`h# zWT8$CI_J@{W-f0(oR(UC0<+u!H^eLY)~W}|0M5$GYw=&WabiVUsH-+07ub7d;$iOF~pRl!y}+J3Lg|Jp|k2R?5saGTZb zFE3@^<|;Rb3#pK44ukjNF?z=|W=au*=qB}&fLP~*(A3>L*~v>sdk6gD+VDfRFu6_d z+T8cE#vcbwUSfKThABKz4YfZlUWTUANr;B1yFy}<0~JD$HjPp*yw+WdS3UWhJxy6H zQy1xN_vV*hvQI-nAEE|A;ETQ`t={?(G}$X1{@8^(HtyoEkD2ldhCl!6vb8Dv5VXQG zwUz%;*Nl32m3(94uf5vUt4D5xl$bx>YH2@gY6444@Cf8ue8D)kipAwNQ8r?%jmItJ z;2=^%lpXOyS{u+g4X3Gnx?q3JqaA2hnzG#m*JirT({!Q%KLor|kO9u>pi>?O#>C>k)8 zxk>jJ{uu+16qVjBF|Mn7+1ZYfI)(tU#o4zz9F;yQ-XV$1s8x7Y1niq2b(_VzB}8kI zBsOh^X>ARekXP_Ot90EAzgr$CdtQ}lR!T`y_1dsbm=El84_F8H(s#; zUBjrhIr2yzd)CQkYzsQ@pIE`mMk>C!hYq33!&1!G+*RO>|54yfR5RQd+ms$t$*o7) zC)pnQkLM86H)%1U0u7O$NaBxebPA^z)M9^G&a|Gz{nxKP#2Q0vWJ+1LD))s7`7%1@ z?75`qCNAUn5Fv=C5s{_3CJ|fd+1{qT`p&#Mw@xt#_jr4PC_j`+7iLSG+9{ntLQux$ zt>ckSpD@U+zT}REpC!>?t+8d9frdTAM zZ|qNWoX^4>vQM9M-m&6w3#v@70dz8vlRF@T0_n#cwK^SfU&TA~9QNW6r?6hsGV3(( zqAHXxZkHl>XB*PEW_1{2-3=QQy0^UNLT|FUCdv9Hpz$n(18Frm^vUNlI_rW{OrE5x zH(I(_!fXrG`ZlS0?U|Y5C9J}z@b#-29wyKR2GSJn<>H|7kuwK9FFDw0s(yIXH>h{s z+Q-e)%ba0Sd9B09%9HSNcWPI63R|5N_;xo|XX?7Px;Wl>nJKmNH)dJ&nIURm--pB> zU@4OmX_fi%=kRUl^Mf3J-NYZ$;|4v_)y@rx3p=O_;b39{9Z#3P*;m2EpAYGMth%#t zeJMA+C)ZZX?O=zn!%L#b_MVI2@6+|FnsG6nNO}FgXEshwT-s56ycRSrmk(b++wtcX zStPwD5s?8WM#UEMA6cx^V)_N9m?6j(##>fzt09leD5{t}c3P zW~ch%e#M3~#X&O@CfcSIE0a2=J&t>91{H4Pb3xc5*^=Hl_9AY10M#kV^F42Gq%wFD z01z1YKWQ1uf7sZ6(=wTV?tjy=|9|m+lDGe6arg`b|0j#n&@BBwK;8eF7|aa9Aj41e zbOT)`WtCB9v;0d;)=Ah|Cxb*!HIS}VHo%CI-F2F#doY!I6-~}za`Lj!vbLKONGNO) z8~*5g8T6}8*t@xP+MH;pr1_!H5)T`349+B|7GN5+9wpYcz~2V#vwn5NN2J>-?w;Fz=$sBn@`U`A4$5`U zEL-i+E*hg?m)046vj1qD^OdIKCnhdpUiuY<9iHL$Iep2D{VOBb&x7Jk^J=QcG}!C& zUkl}^(gusd!;WdXH=BzsueEyd7{IU%kzR@PgenMS`O)vAOcO^A*@a>8jYmD>rQ@4s(6`g#X7gocL4Q)Zsn+m;^(v$-;;mZof?z##yy2^G{R54`ag~NEZvnLO}aT ziNSdLJJJpeOalNk&H`Ob;_8@fg(o@4+~_Orh3&3Iu~x#I`7N^S3dYxq=Bb%lGSpSb z6vSyh>9EnG91@imJZ?7t6%bw?ws;I)(U4)w8}|u7sQyKI7*yybv8FGZ!Zq!2Mi8pk zGxdO~p+3wMgeCgZ#{qRL5dPG&OXEl8s{ePrG(TUHAnrNRWK z_2E(=fzmPF=kJd*CP7?0Sft+NL2TXi;2o`92)yucVTOml%6QEX7=%o)y;fKjCFE1O9t(ItvQh9_)) zG3?|KCJ7UksgUn9;ze^N@Ym?u*!P&QxkUj)gc{`BfXZGEU$E08d*9jDusMzn%#%B# zF2;HKg;=$>>EKbsO^bLh*X#tHe>)%daD{>+N`|5;d^Vt3EB)^%T4N7=(IX zpm$yb#Sqf`z#>!~7dYR;ZC);aIYN@0U?kx)%OsZDxyF2=kA?}cghcT z3`h5SHOk&kXZuGHelhGFnA1ZJ*E^JMu*~BMivzEE#F6rPdN9G>Ngfc^C^EkyeI`n} z&hQThz7yL87IW~cz*~;RbN3|+Uj&uU*tW`C{hh1`kch+1_7S|K>!v-ClEP)W#iuv3 zQp2a;4Hjpa@*iI+JerBrBH4Dy7CJFbr{zKRqCnT?FX&Xmp&5IkqXtsKt$G@Ni%ZX5 z+R0YgzBsHc?vD?9d65Uhs<01~&e-w56HUiQ69eKi9$W$hIw6@Pm77v_3|B9uf1rdY zbDQtqc+*C?oL9OV;{;+L=lH z>)mE~?$ux)l%y26V7@i%uvL$APBqMBfMFYxvP;;&w)L!H0mxD`{TN$SEC*Vo&&f3! z-9P9Z&ysw94(ofpUTu(U7Ns_~8g+404Duyw-1xTS<+Xb3yN~{fm)GZxFvg>$X@&p> z)${HCL6G?~9pje1CBxy&yywb~RBM)L97u9jVW)dR+a*}|3$M&eO4d-SX>XoXIypmC zGJ(-!9{NMWhz7laF0d@yLvOs=kkarKsH6|IiLKc$WhGgRqPIAj)8^3`mrZ>7*JTu5 zt22e_D+fq`=-JGo8C9*u2h(29Es24J643g>3b8mY5VzhBrHsNuTOOAkWQ71%Q6*fQ zNqQ~LP(E4aGK585t*@2-AIdWix!Y0Ltlo&*`YG~ULoTl(M`g$^PJsYm*)Qi_Pf1dFwDVnO zC%{*mwrX$xaS5P=#>H9mLN(B%iONC`t%smr*_9!agg@mFm(AeY!9+cEdm$q*w|S0c zJ)-9xV0ONaeExmfurEht#ZlO|$K-{QOT;-`+^Z7A(l1r?xi2=eKsNkVPiU){H|Ohc y@!Pp)@;$!e0jA5u{zdo>g!db5%KH90>|m>Z`eBQI*}u^=7$tdCxvw(jk^cjG50bC| literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/outboxwidget_preview.png b/android/app/src/main/res/drawable-nodpi/outboxwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..e3530b98cc6fcde3e9b59b585326d9bd86d5ae20 GIT binary patch literal 22210 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/starredwidget_preview.png b/android/app/src/main/res/drawable-nodpi/starredwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe92bdd2aa51a8b46eae341e33d1ee1455bb105 GIT binary patch literal 18993 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 XSUXNnYa!xcY>1%()KI99dmHpWQe+2d literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/taskprogresswidget_preview.png b/android/app/src/main/res/drawable-nodpi/taskprogresswidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..db963368e5f4300a31455281bcd8ac1167c34645 GIT binary patch literal 7453 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/taskswidget_preview.png b/android/app/src/main/res/drawable-nodpi/taskswidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..758c181a629d5248939593cd12978d72a1b6f970 GIT binary patch literal 39025 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 W#)iJ~6^~mtM-TEuyH?Xa@_ztcFMYBA literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/todayeventswidget_preview.png b/android/app/src/main/res/drawable-nodpi/todayeventswidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..18ed45db1539ad9e548978e980936be6d10f1495 GIT binary patch literal 21401 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/todayhubwidget_preview.png b/android/app/src/main/res/drawable-nodpi/todayhubwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4edb42efff6f7edeb9b85f3d1f71fc34f0deccc9 GIT binary patch literal 41982 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 P^?0gd{J2ib{>}dY8?0%D literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/triagewidget_preview.png b/android/app/src/main/res/drawable-nodpi/triagewidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c6f1c9145431bc47f23a404ab94123c19f49a5 GIT binary patch literal 23121 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

#)XBdgHPo) zq2#~8Zw>?F08-to%hT@ca^?n;2pw&NWaz<(c7LiW^_*QIeK!9y>^C>_{&4(^YfQBD z)vs<*BW-%FRN6gu^ji(OP_!v3@6x_TI&x38liHK7Dk(r!OW<-M&N^8#_9BtN8# wv8=er7(^>p-bGxWa?1}t!c_>bUR>Y8Ph}m@<2UMVY``Si8V2gsYIc$T1Gbh63IG5A literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/unreadcountwidget_preview.png b/android/app/src/main/res/drawable-nodpi/unreadcountwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..19e9e6beeb5159ac4249805efa5a133a594d79b7 GIT binary patch literal 9430 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 Fm%hxpill}@>>$b)Yk1Svx{y$Ty4FrRm# zsH$n)3-)Wn%n3GTWW^VMem=Pb(Dl2)BUQTV`s^aj+=hC274ec>y>U@_r^?`jd2k|S zTm5jquArH$v_fMtst$Y=KjgmNyWpAI1IDoN|0I;jS6C21x zQ2}lpLEyby*0xkSO~>T4l_0Fi*hB&vf}Mm(;(%*;T&)7z)2jZn5o{m|0S6U^HuUtY z0JF*p=ZJ9~TE@QPkq0Lp9Z`tVvIv95Yic5F`EFc^m^6t&J>CiQ14_bZ&3e#30iYqj z;53F^Dn*OyD=u>fx_{+DBGRhg_2Ma2g@Ij^vypYZod)UIsio9G(<)szfSPkhv9yLK zp)EI9S9UVz<@Qq?+DTPpIGKwCIrb~ub>v@W8fglaW-R0yYGV!CsDZHlHK{EcQ+M}w z_xE>qHS%%3gRLIb280B2JZl?n&^WExH^{oCXZHx!WT=yQ)!_RCHeCh?=yfs$Y~4@8 zYDWbxBX&C%BtoBAK$0=A5!+h4UHnS1vanPy* z%gfxcBL(Ard4&9XIvXmaKXuU%(4740K~-S1%-eLz2%14R2|$WGya&jf zQ>qpK7lW?TI8|-;)K06b#oIyr=vF{hrlN)bxSVKP@lP1%&DYcvcS4<;w!nu4uqu4| z-H09R0n}Eh-hT(m)pn}rwf0_Mm@OeGC#&db@cckqvriaA{DnVUNgGS3HApy$?W3@EI))&YI0!j4QjgjS1#R zL$Mx!-f&j`+ncya(5H_#!Ngxff{)dIann6)HlThUQk9f~rNK4Ur}kn&*3P(k5ofg| zrmDbohw6-Yys4m$21E0SrwKo^IR4c@O8 zYYaY6WS>L+EE1PJf5ef6`*4rV2Bn9?iD-bVKwyWt3=n|ov>G4|R@VU~;ns?g#vN8; zuwxM8vIc918EOoE4lraJe}+VrI#Od`60K~Fz8lVC?(yquYAQQiG04uEYHDfFt+tY$ zd!lp4HVa{lu?mP3%tEZT4^nkCH73{UH!zW=Fk`ouRa~{{LIs3{v>s~6hW&peL!-pL8)*I&O&RK7gZ%W|J<`5}rvze#G*1Vei#~#45>hN>$6#JL3%|du137i0W7Svyj8uf5*rS-SpthT^If(?!k+5OD7{c3hrvNqD&+1+P9gvND< zEIJ1JxjYV`F(@L7$mUp$L&Xtv3=mn={*aX*vWV<)LROvUEk3dLpJ%*h%6#|gplRP4|(4Kvhoy1w<59` zO>oIYA{{DTg>+4)YVZn@_*FuQRH2X-pfZ-U{G6g7#SnmJ zegSv}4XN^9gnlE}Uba>1%Fd(WWYkr+ZEYqc7NjbXOUo7KP?-s?Z+THFU+SbtEF{3r zNmFJQW$>k_uHCtC5f!HkcdjW@0n6-yQdNq|R4TKOvi-=Z5VEJi%%&*jVurRD2L?%^ zfLxji4^*}_G0C5yc?414tIx^PO_Aq{Q3;d*k}@1tWh`0hNx$ERiG`$X!#NClqmH)J zF-8{5EDXQ|{7_IwTTvrRg9at%FjIp%+Bz9aY~C4pd4U=~6x30649>(MoA;wC)pQyZ z>d-yeALEJ5JN=)7IP(K_go!JXa1`|F2j!oMUG~$R&pk9k4}}87vX1vI-*AQ zR9*u8$DmY#9}enB68l|VLj9qk0O#JLjv}!?c}_+lJE1<>db$t%p4{a zP)ESTa^&QhybN^u{}mJyEJZ{ex`id`A5Z6HrZfL(fd$HtTGSx|3&dt-Vj~`{k{yIX z9hQkb@m*e4I{p1goNb3Xya|gZzB`?ltxlghDPaqlXLxtJ7yrefPu36B098 pTGW@aux81LlRtcS>P!Z>{(nvxx$0%kR__1+002ovPDHLkV1oE#^ql|z literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/vacationwidget_preview.png b/android/app/src/main/res/drawable-nodpi/vacationwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..55cbcf1fc03b7572e3f44c8e8efdfcdd0cb1b0a5 GIT binary patch literal 13264 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

7REYJh>knf^~MfJ-gWzbpfJ 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 F{{UzS<75B; literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-nodpi/weekwidget_preview.png b/android/app/src/main/res/drawable-nodpi/weekwidget_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2ad380dcd70830df57213df12516b065ee165054 GIT binary patch literal 13198 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 + + + Inbox + Newest messages with sender, time and subject. Taller sizes add avatars and a line of preview. + Triage + One unread message at a time with archive, delete and reply buttons. + Unread count + Unread count for the inbox, with the latest senders. + Latest message + Only the newest unread message. + Folder counts + Unread counts for up to four folders. + Shortcuts + Compose, calendar, contacts and files. + All accounts + The unified inbox across every signed-in account. + Starred + Starred messages, newest first. + Favourite people + The people you hear from most, with their unread count. + Search mail + Search bar with your recent searches. + Scheduled and outbox + Scheduled messages and anything waiting in the outbox. + Tag + Unread count for your busiest tag. + Last draft + Back into the draft you left. + Agenda + Upcoming events by day with time, colour and place. + This week + The week at a glance from 8:00 to 18:00. + Month + Month grid with a dot per calendar and the next two events. + Today + Today\'s date with the rest of today and tomorrow. + Next event + What\'s next, when and where. + Date and next two + Today\'s date with the next two events. + Up next + Countdown to the next event with join and running-late buttons. + Invitations + Pending invitations with accept, maybe and decline. + Free time + When you\'re free this week. + Tasks + Open tasks with tick boxes that work from the home screen. + Task progress + How many tasks are done. + Countdown + Days until your next all-day event. + Birthdays + Upcoming birthdays from your contacts. + Today overview + Next event, newest unread mail and tasks due, in one widget. + Mail and next event + Unread mail on one side, the next event on the other. + Recent files + Recently changed items in Files. + Recent attachments + The newest attachments from your mail. + Vacation responder + Vacation responder status with an on/off switch. + Storage + How much of your mailbox quota is used. + diff --git a/android/app/src/main/res/xml/widgetprovider_agendawidget.xml b/android/app/src/main/res/xml/widgetprovider_agendawidget.xml new file mode 100644 index 00000000..dbe5aaa1 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_agendawidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_allaccountswidget.xml b/android/app/src/main/res/xml/widgetprovider_allaccountswidget.xml new file mode 100644 index 00000000..6a7f0518 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_allaccountswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_attachmentswidget.xml b/android/app/src/main/res/xml/widgetprovider_attachmentswidget.xml new file mode 100644 index 00000000..8a5a3539 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_attachmentswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_birthdayswidget.xml b/android/app/src/main/res/xml/widgetprovider_birthdayswidget.xml new file mode 100644 index 00000000..050009b7 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_birthdayswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_countdownwidget.xml b/android/app/src/main/res/xml/widgetprovider_countdownwidget.xml new file mode 100644 index 00000000..cb6f174f --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_countdownwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_datenextwidget.xml b/android/app/src/main/res/xml/widgetprovider_datenextwidget.xml new file mode 100644 index 00000000..2c97b57e --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_datenextwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_favouritepeoplewidget.xml b/android/app/src/main/res/xml/widgetprovider_favouritepeoplewidget.xml new file mode 100644 index 00000000..5195a43f --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_favouritepeoplewidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_foldercountswidget.xml b/android/app/src/main/res/xml/widgetprovider_foldercountswidget.xml new file mode 100644 index 00000000..d6acc336 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_foldercountswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_freetimewidget.xml b/android/app/src/main/res/xml/widgetprovider_freetimewidget.xml new file mode 100644 index 00000000..dfb312ec --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_freetimewidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_inboxwidget.xml b/android/app/src/main/res/xml/widgetprovider_inboxwidget.xml new file mode 100644 index 00000000..5602c37a --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_inboxwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_invitationswidget.xml b/android/app/src/main/res/xml/widgetprovider_invitationswidget.xml new file mode 100644 index 00000000..8a19f0f2 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_invitationswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_lastdraftwidget.xml b/android/app/src/main/res/xml/widgetprovider_lastdraftwidget.xml new file mode 100644 index 00000000..d6868790 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_lastdraftwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_latestmessagewidget.xml b/android/app/src/main/res/xml/widgetprovider_latestmessagewidget.xml new file mode 100644 index 00000000..b3f29e33 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_latestmessagewidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_mailandnextwidget.xml b/android/app/src/main/res/xml/widgetprovider_mailandnextwidget.xml new file mode 100644 index 00000000..5e36edbe --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_mailandnextwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_mailsearchwidget.xml b/android/app/src/main/res/xml/widgetprovider_mailsearchwidget.xml new file mode 100644 index 00000000..7fb3e15e --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_mailsearchwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_mailshortcutswidget.xml b/android/app/src/main/res/xml/widgetprovider_mailshortcutswidget.xml new file mode 100644 index 00000000..d0dbca8f --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_mailshortcutswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_monthwidget.xml b/android/app/src/main/res/xml/widgetprovider_monthwidget.xml new file mode 100644 index 00000000..0e298659 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_monthwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_nexteventwidget.xml b/android/app/src/main/res/xml/widgetprovider_nexteventwidget.xml new file mode 100644 index 00000000..6f6a8e8c --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_nexteventwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_outboxwidget.xml b/android/app/src/main/res/xml/widgetprovider_outboxwidget.xml new file mode 100644 index 00000000..8635b1df --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_outboxwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_recentfileswidget.xml b/android/app/src/main/res/xml/widgetprovider_recentfileswidget.xml new file mode 100644 index 00000000..afa8712b --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_recentfileswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_starredwidget.xml b/android/app/src/main/res/xml/widgetprovider_starredwidget.xml new file mode 100644 index 00000000..a69ef5d7 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_starredwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_storagewidget.xml b/android/app/src/main/res/xml/widgetprovider_storagewidget.xml new file mode 100644 index 00000000..98fd3fd9 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_storagewidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_tagwidget.xml b/android/app/src/main/res/xml/widgetprovider_tagwidget.xml new file mode 100644 index 00000000..4e9275f6 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_tagwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_taskprogresswidget.xml b/android/app/src/main/res/xml/widgetprovider_taskprogresswidget.xml new file mode 100644 index 00000000..3a15f164 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_taskprogresswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_taskswidget.xml b/android/app/src/main/res/xml/widgetprovider_taskswidget.xml new file mode 100644 index 00000000..ecb6a9a4 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_taskswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_todayeventswidget.xml b/android/app/src/main/res/xml/widgetprovider_todayeventswidget.xml new file mode 100644 index 00000000..961a96be --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_todayeventswidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_todayhubwidget.xml b/android/app/src/main/res/xml/widgetprovider_todayhubwidget.xml new file mode 100644 index 00000000..c053e67a --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_todayhubwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_triagewidget.xml b/android/app/src/main/res/xml/widgetprovider_triagewidget.xml new file mode 100644 index 00000000..0d731a32 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_triagewidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_unreadcountwidget.xml b/android/app/src/main/res/xml/widgetprovider_unreadcountwidget.xml new file mode 100644 index 00000000..c39dcd8d --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_unreadcountwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_upnextwidget.xml b/android/app/src/main/res/xml/widgetprovider_upnextwidget.xml new file mode 100644 index 00000000..cc956c56 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_upnextwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_vacationwidget.xml b/android/app/src/main/res/xml/widgetprovider_vacationwidget.xml new file mode 100644 index 00000000..18a0ee3f --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_vacationwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/android/app/src/main/res/xml/widgetprovider_weekwidget.xml b/android/app/src/main/res/xml/widgetprovider_weekwidget.xml new file mode 100644 index 00000000..6541f415 --- /dev/null +++ b/android/app/src/main/res/xml/widgetprovider_weekwidget.xml @@ -0,0 +1,16 @@ + + + + diff --git a/index.ts b/index.ts index c68d2075..e1ae8026 100644 --- a/index.ts +++ b/index.ts @@ -1,13 +1,22 @@ import { createElement } from 'react'; import { AppRegistry } from 'react-native'; import { registerRootComponent } from 'expo'; +import { registerWidgetTaskHandler } from 'react-native-android-widget'; import { pushBackgroundTask } from './src/lib/push-background-task'; +import { widgetTaskHandler } from './src/widgets/task-handler'; +import { refreshWidgetsInBackground } from './src/widgets/sync'; // Runs in a fresh headless JS runtime when BulwarkPushTaskService is started // from BulwarkMessagingService on an FCM data message. Must be registered -// before the native service tries to invoke the task. -AppRegistry.registerHeadlessTask('BulwarkPushTask', () => pushBackgroundTask); +// before the native service tries to invoke the task. New mail also refreshes +// any home-screen widgets (a no-op when none are placed). +AppRegistry.registerHeadlessTask('BulwarkPushTask', () => async (data: Parameters[0]) => { + await Promise.allSettled([pushBackgroundTask(data), refreshWidgetsInBackground()]); +}); + +// Home-screen widgets (Android): every widget event runs this headless task. +registerWidgetTaskHandler(widgetTaskHandler); // A headless push task evaluates this file too, so App is required when the // UI first renders instead of imported above: importing it here would load diff --git a/locales/rn/en.json b/locales/rn/en.json index ecbfe47f..cabbed7d 100644 --- a/locales/rn/en.json +++ b/locales/rn/en.json @@ -1038,5 +1038,188 @@ "severity_deprecated": "Required", "severity_security": "Security", "title": "App updates" + }, + "widgets": { + "attachments": { + "empty": "No recent attachments", + "from_mail": "from mail", + "title": "Attachments", + "unknown_sender": "Unknown sender" + }, + "birthdays": { + "empty": "No birthdays coming up", + "empty_body": "Birthdays come from your contacts.", + "in_days": "{count, plural, one {in # day} other {in # days}}", + "send_wishes": "Send wishes", + "title": "Birthdays", + "wishes_subject": "Happy birthday!" + }, + "calendar": { + "agenda": "Agenda", + "agenda_more": "{day}: {events}", + "all_day": "All day", + "join": "Join", + "join_named": "Join {name}", + "more_this_week": "{count, plural, one {# more this week} other {# more this week}}", + "no_more_today": "No more events today", + "nothing_planned": "Nothing on the calendar", + "now": "Now", + "open": "Open", + "running_late": "Running late", + "running_late_body": "I'm running a few minutes late for {title}.", + "running_late_subject": "Running late: {title}", + "today": "Today", + "tomorrow": "Tomorrow", + "unit_days": "{count, plural, one {day} other {days}}", + "unit_hours": "{count, plural, one {hour} other {hours}}", + "unit_minutes": "{count, plural, one {min} other {min}}", + "unsupported": "Calendar isn't available on this server", + "untitled": "(no title)", + "video_call": "Video call" + }, + "countdown": { + "days": "{count, plural, one {day} other {days}}", + "empty": "No upcoming events" + }, + "draft": { + "edited_at": "Edited {when}", + "edited_minutes": "{count, plural, one {Edited # min ago} other {Edited # min ago}}", + "edited_now": "Edited just now", + "empty": "No drafts", + "empty_body": "Messages you start and do not send wait here.", + "keep_writing": "Keep writing", + "title": "Drafts" + }, + "files": { + "empty": "No files yet", + "recent": "Recently changed", + "unsupported": "Files aren't available on this server" + }, + "free": { + "busy_until": "Busy until {time}", + "free_rest": "Free for the rest of the day", + "free_until": "Free until {time}", + "mail": "Mail my free times", + "mail_subject": "My free times this week", + "no_calendar": "No calendar on this account", + "then": "then {title}", + "then_free": "then free" + }, + "hub": { + "all_clear": "You're all caught up", + "mail_unread": "Mail · {count} unread", + "next": "Next", + "next_on": "Next · {day}", + "no_events": "No upcoming events", + "now": "Now", + "tasks_due": "Tasks · {count} due" + }, + "invites": { + "accept": "Accept", + "decline": "Decline", + "empty": "No invitations waiting", + "label": "Invitation · {name}", + "label_plain": "Invitation", + "maybe": "Maybe", + "position": "{index} of {count}" + }, + "mail": { + "all_accounts": "All accounts", + "all_caught_up": "All caught up", + "archive": "Archive", + "delete": "Delete", + "empty_all_accounts": "Your inboxes are empty", + "empty_inbox": "Your inbox is empty", + "folders": "Folders", + "in_outbox": "{count, plural, one {# change waiting} other {# changes waiting}}", + "in_outbox_short": "{count} waiting", + "inbox": "Inbox", + "more_unread": "+{count} more unread", + "no_starred": "No starred mail", + "no_starred_body": "Star a message to keep it here.", + "no_subject": "(no subject)", + "no_unread": "No unread messages in your inbox.", + "position": "{index} of {count}", + "reply": "Reply", + "scheduled": "Scheduled", + "starred": "Starred", + "unread": "unread" + }, + "people": { + "empty": "No favourites yet", + "empty_body": "The people you hear from most show up here.", + "favourites": "Favourites" + }, + "relative": { + "days": "{count, plural, one {in # day} other {in # days}}", + "hours": "in {count} h", + "minutes": "in {count} min", + "now": "now" + }, + "scheduled": { + "day_at": "{day}, {time}", + "empty": "Nothing scheduled", + "empty_body": "Messages you schedule to send later show up here.", + "no_recipient": "(no recipient)", + "sending": "Sending now", + "to": "To: {name}", + "today_at": "Today, {time}", + "tomorrow_at": "Tomorrow, {time}", + "waiting": "Waiting for network", + "waiting_body": "Changes you made offline go out when you are back online." + }, + "search": { + "no_recent": "Your recent searches show up here.", + "placeholder": "Search mail…", + "recent": "Recent searches" + }, + "shortcuts": { + "calendar": "Calendar", + "compose": "Compose", + "contacts": "Contacts", + "files": "Files" + }, + "state": { + "error": "Couldn't show this widget", + "loading": "Loading…", + "open_app": "Open the app once if this stays empty.", + "open_to_load": "Open Bulwark to load this", + "signed_out": "Sign in to Bulwark" + }, + "storage": { + "no_limit": "No storage limit", + "title": "Storage", + "unavailable": "No quota information", + "used_of": "{used} of {total}" + }, + "tag": { + "empty": "No tags yet", + "empty_body": "Tags you add in the app show up here.", + "messages": "{count, plural, one {message} other {messages}}", + "total": "{count, plural, one {# message} other {# messages}}" + }, + "tasks": { + "all_done": "All done", + "empty": "No open tasks", + "mark_complete": "Mark as done", + "mark_incomplete": "Mark as not done", + "no_title": "(no title)", + "off": "Tasks are off", + "off_body": "Turn on tasks in the app's calendar settings", + "open_count": "{count} open", + "overdue": "Overdue", + "still_open": "{count} still open", + "title": "Tasks", + "today": "Today", + "tomorrow": "Tomorrow" + }, + "vacation": { + "active": "Active", + "inactive": "Inactive", + "subject": "Subject: {subject}", + "title": "Vacation Responder", + "unsupported": "Vacation replies aren't available", + "until": "Until {date}" + } } } diff --git a/package-lock.json b/package-lock.json index 0880af09..533444d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,6 +37,7 @@ "postal-mime": "^3.0.0", "react": "19.1.0", "react-native": "0.81.5", + "react-native-android-widget": "0.22.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", "react-native-sse": "^1.2.1", @@ -9004,6 +9005,22 @@ } } }, + "node_modules/react-native-android-widget": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/react-native-android-widget/-/react-native-android-widget-0.22.1.tgz", + "integrity": "sha512-BBMuqShRrxV23Z09Rn5zNHJaPegCnH3DhhZQgXbhw2GMh45Gez0RbwKTIWHftuW4nLrqWy6esz8XwecUZLiZKA==", + "license": "MIT", + "peerDependencies": { + "expo": ">=54.0.0", + "react": "*", + "react-native": "*" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + } + } + }, "node_modules/react-native-is-edge-to-edge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.3.1.tgz", diff --git a/package.json b/package.json index 5d9fb4e1..02c2662e 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,8 @@ "bump": "node scripts/bump-version.mjs", "sync-locales": "node scripts/sync-locales.mjs", "i18n:harvest": "node scripts/harvest-rn-keys.mjs", - "i18n:check": "node scripts/harvest-rn-keys.mjs --check" + "i18n:check": "node scripts/harvest-rn-keys.mjs --check", + "widgets:sync": "node scripts/sync-android-widgets.mjs" }, "dependencies": { "@react-native-async-storage/async-storage": "2.2.0", @@ -45,6 +46,7 @@ "postal-mime": "^3.0.0", "react": "19.1.0", "react-native": "0.81.5", + "react-native-android-widget": "0.22.1", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.16.0", "react-native-sse": "^1.2.1", diff --git a/scripts/sync-android-widgets.mjs b/scripts/sync-android-widgets.mjs new file mode 100644 index 00000000..28678dc6 --- /dev/null +++ b/scripts/sync-android-widgets.mjs @@ -0,0 +1,193 @@ +// Generate the Android side of the home-screen widgets from +// src/widgets/catalog.json. Run from the RN repo root: +// node scripts/sync-android-widgets.mjs [--check] +// +// android/ is committed and hand-maintained (no `expo prebuild`), so the +// react-native-android-widget config plugin never runs for it. This script +// does the same job: one RNWidgetProvider subclass per widget (the library +// uses the class name as the widget name), a provider XML per widget, the +// picker labels and descriptions, and the manifest receivers between the +// BEGIN/END WIDGETS markers. With --check it only reports drift and exits 1. +import { readFile, writeFile, readdir, unlink, mkdir } from 'node:fs/promises'; +import { existsSync } from 'node:fs'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const ROOT = join(dirname(fileURLToPath(import.meta.url)), '..'); +const CATALOG = join(ROOT, 'src', 'widgets', 'catalog.json'); +const MAIN = join(ROOT, 'android', 'app', 'src', 'main'); +const PACKAGE = 'com.anonymous.bulwarkmobile'; +const KOTLIN = join(MAIN, 'java', ...PACKAGE.split('.'), 'widget', 'WidgetProviders.kt'); +const XML_DIR = join(MAIN, 'res', 'xml'); +const STRINGS = join(MAIN, 'res', 'values', 'widget_strings.xml'); +// Optional picker previews: src/widgets/previews/.png is copied to +// res/drawable-nodpi and set as the widget's previewImage. +const PREVIEWS = join(ROOT, 'src', 'widgets', 'previews'); +const PREVIEW_DIR = join(MAIN, 'res', 'drawable-nodpi'); +const MANIFEST = join(MAIN, 'AndroidManifest.xml'); +const CHECK_ONLY = process.argv.includes('--check'); + +// Android's sizing table: n cells is roughly 70n - 30 dp in either direction. +const dp = (cells) => 70 * cells - 30; +// Launchers refresh at most every 30 minutes; the app pushes fresher data +// itself whenever it has some (see src/widgets/sync.ts). +const UPDATE_PERIOD_MS = 30 * 60 * 1000; + +const escapeXml = (s) => + s.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, "\\'"); +const resName = (name) => `widgetprovider_${name.toLowerCase()}`; + +const hasPreview = (w) => existsSync(join(PREVIEWS, `${w.name}.png`)); +const previewRes = (w) => `${w.name.toLowerCase()}_preview`; + +function providerXml(w) { + const preview = hasPreview(w) ? `\n android:previewImage="@drawable/${previewRes(w)}"` : ''; + return ` + + + +`; +} + +function kotlinFile(widgets) { + const classes = widgets.map((w) => `class ${w.name} : RNWidgetProvider()`).join('\n'); + return `// Generated by scripts/sync-android-widgets.mjs from src/widgets/catalog.json. +// react-native-android-widget names a widget after its provider class, so each +// widget needs its own subclass; the JS side (src/widgets/task-handler.tsx) +// renders by that name. +package ${PACKAGE}.widget + +import com.reactnativeandroidwidget.RNWidgetProvider + +${classes} +`; +} + +function stringsFile(widgets) { + const lines = widgets.flatMap((w) => [ + ` ${escapeXml(w.label)}`, + ` ${escapeXml(w.description)}`, + ]); + return ` + + +${lines.join('\n')} + +`; +} + +function manifestBlock(widgets) { + const receivers = widgets.map( + (w) => ` + + + + + + `, + ); + return ` + +${receivers.join('\n')} + `; +} + +function withManifestBlock(manifest, block) { + const begin = manifest.indexOf(' '; + const end = manifest.indexOf(endMarker); + if (begin !== -1 && end !== -1) { + return manifest.slice(0, begin) + block + manifest.slice(end + endMarker.length); + } + const close = manifest.lastIndexOf(' '); + if (close === -1) throw new Error('AndroidManifest.xml has no '); + return manifest.slice(0, close) + block + '\n' + manifest.slice(close); +} + +const { widgets } = JSON.parse(await readFile(CATALOG, 'utf8')); +const names = new Set(); +for (const w of widgets) { + if (!/^[A-Z][A-Za-z0-9]*Widget$/.test(w.name)) throw new Error(`Bad widget name ${w.name}`); + if (names.has(w.name)) throw new Error(`Duplicate widget name ${w.name}`); + names.add(w.name); +} + +const outputs = new Map(); +outputs.set(KOTLIN, kotlinFile(widgets)); +outputs.set(STRINGS, stringsFile(widgets)); +for (const w of widgets) outputs.set(join(XML_DIR, `${resName(w.name)}.xml`), providerXml(w)); +outputs.set(MANIFEST, withManifestBlock(await readFile(MANIFEST, 'utf8'), manifestBlock(widgets))); + +// Provider XML for widgets that were removed from the catalog. +const stale = existsSync(XML_DIR) + ? (await readdir(XML_DIR)) + .filter((f) => f.startsWith('widgetprovider_')) + .map((f) => join(XML_DIR, f)) + .filter((f) => !outputs.has(f)) + : []; + +// Preview images are binary; compare them byte for byte. +const binaryOutputs = new Map(); +for (const w of widgets) { + if (hasPreview(w)) binaryOutputs.set(join(PREVIEW_DIR, `${previewRes(w)}.png`), await readFile(join(PREVIEWS, `${w.name}.png`))); +} +const stalePreviews = existsSync(PREVIEW_DIR) + ? (await readdir(PREVIEW_DIR)) + .filter((f) => /widget_preview\.png$/.test(f)) + .map((f) => join(PREVIEW_DIR, f)) + .filter((f) => !binaryOutputs.has(f)) + : []; +stale.push(...stalePreviews); + +let drift = stale.length; +for (const [path, bytes] of binaryOutputs) { + const current = existsSync(path) ? await readFile(path) : null; + if (current && current.equals(bytes)) continue; + drift++; + if (CHECK_ONLY) { + console.log(`out of date: ${path}`); + } else { + await mkdir(dirname(path), { recursive: true }); + await writeFile(path, bytes); + console.log(`wrote ${path}`); + } +} +// Checkouts with core.autocrlf have CRLF files: compare without line endings +// and write back in whatever the file already uses. +const lf = (text) => text.replace(/\r\n/g, '\n'); +for (const [path, content] of outputs) { + const current = existsSync(path) ? await readFile(path, 'utf8') : null; + if (current !== null && lf(current) === lf(content)) continue; + drift++; + if (CHECK_ONLY) { + console.log(`out of date: ${path}`); + } else { + await mkdir(dirname(path), { recursive: true }); + await writeFile(path, current?.includes('\r\n') ? lf(content).replace(/\n/g, '\r\n') : lf(content)); + console.log(`wrote ${path}`); + } +} +for (const path of stale) { + if (CHECK_ONLY) console.log(`stale: ${path}`); + else { + await unlink(path); + console.log(`removed ${path}`); + } +} + +if (CHECK_ONLY && drift > 0) { + console.error(`${drift} widget file(s) out of date; run node scripts/sync-android-widgets.mjs`); + process.exit(1); +} +console.log(drift === 0 ? 'Android widget files are up to date.' : `${widgets.length} widgets synced.`); diff --git a/src/lib/reply-compose.ts b/src/lib/reply-compose.ts new file mode 100644 index 00000000..dc762589 --- /dev/null +++ b/src/lib/reply-compose.ts @@ -0,0 +1,50 @@ +import type { Email } from '../api/types'; +import type { RootStackParamList } from '../navigation/types'; +import { pickEmailBody, plainTextBody } from './email-body'; + +/** + * Composer params for a reply / reply-all / forward of `source`. Shared by + * the thread viewer and the `mail/message/?action=reply` deep link (the + * triage widget). Null when there is nobody to reply to. + */ +export function replyComposeParams( + mode: 'reply' | 'replyAll' | 'forward', + source: Email, + ownerAccountId?: string, +): NonNullable | null { + const from = source.from?.[0]; + if (!from && mode !== 'forward') return null; + // Quote the HTML part when there is one so layout and inline images + // survive (#163). RFC 8621 §4.1.4: an HTML-only message exposes the same + // part in `textBody` and `htmlBody`, so the text part is only a real + // alternative when its partId differs - otherwise the composer would be + // handed raw HTML source (#649, native #46). + const picked = pickEmailBody(source); + const quoteHtml = picked.html ?? undefined; + const body = !quoteHtml || picked.text ? plainTextBody(source) : undefined; + return { + mode, + replyTo: { + from: from ?? { email: '' }, + to: source.to, + cc: source.cc, + // RFC 5322: a reply goes to Reply-To when the sender set one. + replyToAddresses: source.replyTo, + subject: source.subject ?? '', + body, + htmlBody: quoteHtml, + receivedAt: source.receivedAt, + sentAt: source.sentAt, + // Threading needs the RFC Message-ID, never the JMAP object id (#234). + messageId: source.messageId ?? undefined, + references: source.references ?? undefined, + // Forward carries the original attachments as blob refs; cid-embedded + // inline images are already part of the quoted HTML. + attachments: mode === 'forward' + ? (source.attachments ?? []).filter((a) => !(a.disposition === 'inline' && a.cid)) + : undefined, + originalEmailId: source.id, + jmapAccountId: ownerAccountId, + }, + }; +} diff --git a/src/navigation/__tests__/linking.test.ts b/src/navigation/__tests__/linking.test.ts index 07a64684..a701f962 100644 --- a/src/navigation/__tests__/linking.test.ts +++ b/src/navigation/__tests__/linking.test.ts @@ -2,6 +2,7 @@ import { describe, it, expect, vi } from 'vitest'; import { handleDeepLink, parseDeepLink, shareToDeepLink } from '../linking'; import { usePendingSettingsTab } from '../pending-settings-tab'; import { usePendingCalendarOpen } from '../pending-calendar-open'; +import { usePendingMailSearch } from '../pending-mail-search'; describe('parseDeepLink', () => { it('parses app-scheme mail links', () => { @@ -75,6 +76,18 @@ describe('parseDeepLink', () => { }); }); + it('parses the widget links: reply, draft, unified views, scheduled and search', () => { + expect(parseDeepLink('bulwarkmobile://mail/message/M1?account=a%40b&jmapAccount=team&action=reply')).toEqual({ + kind: 'message', emailId: 'M1', accountId: 'a@b', jmapAccountId: 'team', action: 'reply', + }); + expect(parseDeepLink('bulwarkmobile://mail/draft/D1')).toEqual({ kind: 'draft', emailId: 'D1', accountId: undefined }); + expect(parseDeepLink('bulwarkmobile://mail/unified?view=starred')).toEqual({ kind: 'unified', view: 'starred' }); + expect(parseDeepLink('bulwarkmobile://mail/unified?role=drafts&view=bogus')).toEqual({ kind: 'unified', role: 'drafts' }); + expect(parseDeepLink('bulwarkmobile://mail/scheduled')).toEqual({ kind: 'scheduled' }); + expect(parseDeepLink('bulwarkmobile://mail/search?q=from%3Aada')).toEqual({ kind: 'search', query: 'from:ada' }); + expect(parseDeepLink('bulwarkmobile://mail/search')).toEqual({ kind: 'search', query: '' }); + }); + it('rejects unknown links', () => { expect(parseDeepLink('bulwarkmobile://whatever')).toBeNull(); expect(parseDeepLink('garbage')).toBeNull(); @@ -166,6 +179,40 @@ describe('handleDeepLink', () => { })); }); + it('opens a group-mailbox message in its JMAP account and hands replies to the composer opener', async () => { + const navigation = nav(); + const resolveThreadId = vi.fn(async () => 'T1'); + await handleDeepLink( + { kind: 'message', emailId: 'M1', jmapAccountId: 'team' }, + { navigation: navigation as never, resolveThreadId }, + ); + expect(resolveThreadId).toHaveBeenCalledWith('M1', 'team'); + expect(navigation.navigate).toHaveBeenCalledWith('EmailThread', { emailId: 'M1', threadId: 'T1', jmapAccountId: 'team' }); + + const openReply = vi.fn(async () => true); + const ok = await handleDeepLink( + { kind: 'message', emailId: 'M2', action: 'reply' }, + { navigation: nav() as never, resolveThreadId, openReply }, + ); + expect(ok).toBe(true); + expect(openReply).toHaveBeenCalledWith('M2', undefined); + }); + + it('opens drafts, unified views, scheduled mail and searches', async () => { + const openDraft = vi.fn(async () => true); + const navigation = nav(); + const deps = { navigation: navigation as never, resolveThreadId: async () => 'T', openDraft }; + expect(await handleDeepLink({ kind: 'draft', emailId: 'D1' }, deps)).toBe(true); + expect(openDraft).toHaveBeenCalledWith('D1', undefined); + await handleDeepLink({ kind: 'unified', view: 'starred' }, deps); + expect(navigation.navigate).toHaveBeenCalledWith('UnifiedInbox', { view: 'starred' }); + await handleDeepLink({ kind: 'scheduled' }, deps); + expect(navigation.navigate).toHaveBeenCalledWith('Scheduled'); + await handleDeepLink({ kind: 'search', query: 'from:ada' }, deps); + expect(usePendingMailSearch.getState().consume()).toBe('from:ada'); + expect(navigation.navigate).toHaveBeenCalledWith('MainTabs', { screen: 'Mail' }); + }); + it('refuses when the linked account is not signed in', async () => { const navigation = nav(); const ok = await handleDeepLink( diff --git a/src/navigation/linking.ts b/src/navigation/linking.ts index 14a8bf48..9149f94d 100644 --- a/src/navigation/linking.ts +++ b/src/navigation/linking.ts @@ -8,13 +8,25 @@ import { parseMailtoUrl } from '../lib/mailto'; import type { RootStackParamList } from './types'; import { setPendingSettingsTab } from './pending-settings-tab'; import { setPendingCalendarOpen } from './pending-calendar-open'; +import { setPendingMailSearch } from './pending-mail-search'; export const APP_SCHEME = 'bulwarkmobile'; +const UNIFIED_ROLES = ['inbox', 'sent', 'drafts', 'junk', 'archive', 'trash'] as const; +const UNIFIED_VIEWS = ['all', 'unread', 'starred'] as const; +type UnifiedRole = typeof UNIFIED_ROLES[number]; +type UnifiedView = typeof UNIFIED_VIEWS[number]; + export type DeepLink = - | { kind: 'message'; emailId: string; accountId?: string } + // `jmapAccountId`: the JMAP account owning a message in a group/shared + // mailbox (`?jmapAccount=`); `action: 'reply'` opens a reply to it. + | { kind: 'message'; emailId: string; accountId?: string; jmapAccountId?: string; action?: 'reply' } + | { kind: 'draft'; emailId: string; accountId?: string; jmapAccountId?: string } | { kind: 'thread'; threadId: string; accountId?: string } | { kind: 'folder'; ref: string; accountId?: string } + | { kind: 'unified'; role?: UnifiedRole; view?: UnifiedView } + | { kind: 'scheduled' } + | { kind: 'search'; query: string } // `jmapAccountId`: the JMAP account owning the event (`?account=`), for // one on a calendar shared with the user. | { kind: 'calendar'; eventId?: string; date?: string; jmapAccountId?: string } @@ -82,7 +94,30 @@ export function parseDeepLink(url: string): DeepLink | null { switch (area) { case 'mail': { - if (kind === 'message' && value) return { kind: 'message', emailId: decodeSegment(value), accountId }; + const jmapAccountId = search.get('jmapAccount') ?? undefined; + if (kind === 'message' && value) { + return { + kind: 'message', + emailId: decodeSegment(value), + accountId, + ...(jmapAccountId ? { jmapAccountId } : {}), + ...(search.get('action') === 'reply' ? { action: 'reply' as const } : {}), + }; + } + if (kind === 'draft' && value) { + return { kind: 'draft', emailId: decodeSegment(value), accountId, ...(jmapAccountId ? { jmapAccountId } : {}) }; + } + if (kind === 'unified') { + const role = search.get('role'); + const view = search.get('view'); + return { + kind: 'unified', + ...(role && (UNIFIED_ROLES as readonly string[]).includes(role) ? { role: role as UnifiedRole } : {}), + ...(view && (UNIFIED_VIEWS as readonly string[]).includes(view) ? { view: view as UnifiedView } : {}), + }; + } + if (kind === 'scheduled') return { kind: 'scheduled' }; + if (kind === 'search') return { kind: 'search', query: search.get('q') ?? '' }; if (kind === 'thread' && value) return { kind: 'thread', threadId: decodeSegment(value), accountId }; if (kind === 'folder' && value) return { kind: 'folder', ref: decodeSegment(value), accountId }; // Legacy `?email=` from the webmail's older service worker. @@ -131,8 +166,13 @@ export function parseDeepLink(url: string): DeepLink | null { export interface DeepLinkNavigator { navigation: NavigationContainerRefWithCurrent; // Resolve a message id to its thread (EmailThread needs both). Returns - // null when the message cannot be loaded. - resolveThreadId: (emailId: string) => Promise; + // null when the message cannot be loaded. `jmapAccountId` names the + // group/shared account holding it, when it is not the user's own. + resolveThreadId: (emailId: string, jmapAccountId?: string) => Promise; + // Open the composer on a reply to / on a server draft of this message. + // Resolve false when the message cannot be loaded. + openReply?: (emailId: string, jmapAccountId?: string) => Promise; + openDraft?: (emailId: string, jmapAccountId?: string) => Promise; // Switch to the account a permalink names (`?account=`); resolves false // when that account is not signed in on this device. switchAccount?: (accountId: string) => Promise; @@ -149,11 +189,33 @@ export async function handleDeepLink(link: DeepLink, nav: DeepLinkNavigator): Pr switch (link.kind) { case 'message': { - const threadId = await nav.resolveThreadId(link.emailId); + if (link.action === 'reply' && nav.openReply) { + return nav.openReply(link.emailId, link.jmapAccountId); + } + const threadId = await nav.resolveThreadId(link.emailId, link.jmapAccountId); if (!threadId) return false; - navigation.navigate('EmailThread', { emailId: link.emailId, threadId }); + navigation.navigate('EmailThread', { + emailId: link.emailId, + threadId, + ...(link.jmapAccountId ? { jmapAccountId: link.jmapAccountId } : {}), + }); return true; } + case 'draft': + return nav.openDraft ? nav.openDraft(link.emailId, link.jmapAccountId) : false; + case 'unified': + navigation.navigate('UnifiedInbox', { + ...(link.role ? { role: link.role } : {}), + ...(link.view ? { view: link.view } : {}), + }); + return true; + case 'scheduled': + navigation.navigate('Scheduled'); + return true; + case 'search': + setPendingMailSearch(link.query); + navigation.navigate('MainTabs', { screen: 'Mail' } as never); + return true; case 'thread': // The reader keys on the message; without one, open the list. navigation.navigate('MainTabs', { screen: 'Mail' } as never); diff --git a/src/navigation/pending-mail-search.ts b/src/navigation/pending-mail-search.ts new file mode 100644 index 00000000..1f5677ae --- /dev/null +++ b/src/navigation/pending-mail-search.ts @@ -0,0 +1,25 @@ +import { create } from 'zustand'; + +// A `mail/search` deep link (the search widget) arrives before the mail list +// is mounted, or while it shows a folder. The query is parked here and +// consumed by EmailListScreen, which runs it like a submitted search; an +// empty query just opens the search field. +interface PendingMailSearchState { + query: string | null; + set: (query: string | null) => void; + consume: () => string | null; +} + +export const usePendingMailSearch = create((set, get) => ({ + query: null, + set: (query) => set({ query }), + consume: () => { + const query = get().query; + if (query !== null) set({ query: null }); + return query; + }, +})); + +export function setPendingMailSearch(query: string | null): void { + usePendingMailSearch.getState().set(query); +} diff --git a/src/screens/EmailListScreen.tsx b/src/screens/EmailListScreen.tsx index 969a31f1..9a399042 100644 --- a/src/screens/EmailListScreen.tsx +++ b/src/screens/EmailListScreen.tsx @@ -49,6 +49,7 @@ import { isPermanentDelete, confirmPermanentDelete } from '../lib/delete-confirm import { draftContextFromEmail, isDraftEmail } from '../lib/draft-context'; import { getFullEmail, emptyMailbox as apiEmptyMailbox } from '../api/email'; import type { RootStackParamList } from '../navigation/types'; +import { usePendingMailSearch } from '../navigation/pending-mail-search'; import type { Attachment, Email } from '../api/types'; function getSenderName(email: Email, unknownLabel: string): string { @@ -824,6 +825,17 @@ export default function EmailListScreen({ onEmailPress, onComposePress }: EmailL if (value.trim()) addRecentSearch(value); setSearchFocused(false); }, [setSearchQuery, addRecentSearch]); + // A search handed over by a deep link (the search widget): run it, or with + // no query just put the cursor in the search field. + const searchInputRef = React.useRef(null); + const pendingSearch = usePendingMailSearch((s) => s.query); + React.useEffect(() => { + if (pendingSearch === null) return; + const query = usePendingMailSearch.getState().consume(); + if (query === null) return; + if (query.trim()) submitSearch(query); + else setTimeout(() => searchInputRef.current?.focus(), 300); + }, [pendingSearch, submitSearch]); // People whose name/address matches what is being typed (#845); picking // one turns the search into a `from:` filter like the webmail. const contactSuggestions = React.useMemo(() => { @@ -1120,6 +1132,7 @@ export default function EmailListScreen({ onEmailPress, onComposePress }: EmailL { const source = target ?? email; if (!source) return; - const from = source.from?.[0]; - if (!from && mode !== 'forward') return; - // Quote the HTML part when there is one so layout and inline images - // survive (#163). RFC 8621 §4.1.4: an HTML-only message exposes the same - // part in `textBody` and `htmlBody`, so the text part is only a real - // alternative when its partId differs - otherwise the composer would be - // handed raw HTML source (#649, native #46). - const picked = pickEmailBody(source); - const quoteHtml = picked.html ?? undefined; - const body = !quoteHtml || picked.text ? plainTextBody(source) : undefined; - navigation.navigate('Compose', { - mode, - replyTo: { - from: from ?? { email: '' }, - to: source.to, - cc: source.cc, - // RFC 5322: a reply goes to Reply-To when the sender set one. - replyToAddresses: source.replyTo, - subject: source.subject ?? '', - body, - htmlBody: quoteHtml, - receivedAt: source.receivedAt, - sentAt: source.sentAt, - // Threading needs the RFC Message-ID, never the JMAP object id (#234). - messageId: source.messageId ?? undefined, - references: source.references ?? undefined, - // Forward carries the original attachments as blob refs; cid-embedded - // inline images are already part of the quoted HTML. - attachments: mode === 'forward' - ? (source.attachments ?? []).filter((a) => !(a.disposition === 'inline' && a.cid)) - : undefined, - originalEmailId: source.id, - jmapAccountId: ownerAccountId, - }, - }); + const params = replyComposeParams(mode, source, ownerAccountId); + if (params) navigation.navigate('Compose', params); }, [email, navigation, ownerAccountId]); // Forward the raw message as a message/rfc822 attachment (webmail 1.8.1). diff --git a/src/stores/email-store.ts b/src/stores/email-store.ts index 47d51270..f1009c4f 100644 --- a/src/stores/email-store.ts +++ b/src/stores/email-store.ts @@ -552,8 +552,11 @@ export function spansAccounts(state: Pick */ export function spannedAccounts(mailboxes: Mailbox[]): Array { const out: Array = [undefined]; + // The drawer renders the persisted mailboxes before the session is back, + // and `accountId` throws while the client is not connected. + const own = jmapClient.isConnected ? jmapClient.accountId : undefined; for (const m of mailboxes) { - if (m.isShared && m.accountId && m.accountId !== jmapClient.accountId && !out.includes(m.accountId)) { + if (m.isShared && m.accountId && m.accountId !== own && !out.includes(m.accountId)) { out.push(m.accountId); } } diff --git a/src/widgets/__tests__/derive.test.ts b/src/widgets/__tests__/derive.test.ts new file mode 100644 index 00000000..154ff5cd --- /dev/null +++ b/src/widgets/__tests__/derive.test.ts @@ -0,0 +1,117 @@ +import { describe, expect, it } from 'vitest'; +import { + agendaDays, + busyBlocks, + countdownTarget, + dueKind, + eventsOnDay, + freeTime, + monthGrid, + nextEvent, + sortTasks, + startOfWeek, +} from '../derive'; +import type { EventItem, TaskItem } from '../snapshot'; + +// Monday 28 September 2026, 09:05 local time. +const NOW = new Date(2026, 8, 28, 9, 5).getTime(); +const at = (day: number, h: number, m = 0) => new Date(2026, 8, day, h, m).getTime(); + +function ev(id: string, start: number, end: number, extra: Partial = {}): EventItem { + return { + id, + serverId: id, + title: id, + start, + end, + allDay: false, + color: '#22c55e', + calendarName: 'Work', + participants: [], + ...extra, + }; +} + +const standup = ev('standup', at(28, 9, 30), at(28, 10)); +const dentist = ev('dentist', at(29, 10), at(29, 11), { color: '#3b82f6' }); +const lunch = ev('lunch', at(30, 12, 30), at(30, 13, 30)); +const party = ev('party', new Date(2026, 9, 1).getTime(), new Date(2026, 9, 2).getTime(), { allDay: true, color: '#3b82f6' }); +const review = ev('review', new Date(2026, 9, 1, 14).getTime(), new Date(2026, 9, 1, 16).getTime()); +const trip = ev('trip', new Date(2026, 9, 4).getTime(), new Date(2026, 9, 5).getTime(), { allDay: true, color: '#3b82f6' }); +const earlier = ev('earlier', at(28, 7), at(28, 8)); +const EVENTS = [earlier, standup, dentist, lunch, party, review, trip]; + +describe('calendar views', () => { + it('finds the next timed event and whether it is running', () => { + expect(nextEvent(EVENTS, NOW)?.event.id).toBe('standup'); + expect(nextEvent(EVENTS, NOW)?.running).toBe(false); + expect(nextEvent(EVENTS, at(28, 9, 45))?.running).toBe(true); + }); + + it('lists a day with all-day events first', () => { + const thursday = new Date(2026, 9, 1).getTime(); + expect(eventsOnDay(EVENTS, thursday).map((e) => e.id)).toEqual(['party', 'review']); + }); + + it('drops finished events from today in the agenda', () => { + const days = agendaDays(EVENTS, NOW, 3); + expect(days.map((d) => d.events.map((e) => e.id))).toEqual([['standup'], ['dentist'], ['lunch']]); + }); + + it('starts the week on the configured day', () => { + expect(new Date(startOfWeek(NOW, 1)).getDate()).toBe(28); + expect(new Date(startOfWeek(NOW, 0)).getDate()).toBe(27); + }); + + it('builds the month as whole weeks with dots and today', () => { + const weeks = monthGrid(EVENTS, NOW, 1); + expect(weeks).toHaveLength(5); + expect(weeks[0][0].day).toBe(31); + expect(weeks[0][0].inMonth).toBe(false); + const today = weeks.flat().find((c) => c.isToday); + expect(today?.day).toBe(28); + expect(today?.dots).toEqual(['#22c55e']); + }); + + it('places busy blocks inside working hours', () => { + const [block] = busyBlocks(EVENTS, new Date(2026, 8, 29).getTime()); + expect(block.from).toBeCloseTo(0.2); + expect(block.to).toBeCloseTo(0.3); + }); + + it('works out free time and the longest gap left today', () => { + const free = freeTime(EVENTS, NOW); + expect(free.busyNow).toBe(false); + expect(free.next?.id).toBe('standup'); + expect(free.longestGap).toEqual({ from: at(28, 10), to: at(28, 18) }); + }); + + it('counts down to the next all-day or multi-day event', () => { + expect(countdownTarget(EVENTS, NOW)?.id).toBe('party'); + }); +}); + +describe('tasks', () => { + const task = (id: string, due: number | undefined, done = false, dueHasTime = false): TaskItem => ({ + id, serverId: id, title: id, due, dueHasTime, done, calendarName: 'Personal', color: '#3b82f6', + }); + + it('classifies due dates', () => { + expect(dueKind(task('a', at(26, 0)), NOW)).toBe('overdue'); + expect(dueKind(task('b', at(28, 0)), NOW)).toBe('today'); + expect(dueKind(task('c', at(28, 8), false, true), NOW)).toBe('overdue'); + expect(dueKind(task('d', at(29, 0)), NOW)).toBe('tomorrow'); + expect(dueKind(task('e', undefined), NOW)).toBe('none'); + }); + + it('puts overdue first and done last', () => { + const sorted = sortTasks([ + task('done', at(20, 0), true), + task('later', new Date(2026, 9, 3).getTime()), + task('none', undefined), + task('today', at(28, 0)), + task('overdue', at(26, 0)), + ], NOW); + expect(sorted.map((t) => t.id)).toEqual(['overdue', 'today', 'later', 'none', 'done']); + }); +}); diff --git a/src/widgets/__tests__/jmap.test.ts b/src/widgets/__tests__/jmap.test.ts new file mode 100644 index 00000000..132b14b2 --- /dev/null +++ b/src/widgets/__tests__/jmap.test.ts @@ -0,0 +1,63 @@ +import { describe, expect, it } from 'vitest'; +import type { Email, Mailbox } from '../../api/types'; +import { folderCounts, rankPeople, toMailItem } from '../jmap'; + +function email(id: string, from: string, name: string, seen: boolean, receivedAt = '2026-09-28T08:00:00Z'): Email { + return { + id, + threadId: `t-${id}`, + mailboxIds: { inbox: true }, + keywords: seen ? { $seen: true } : {}, + receivedAt, + from: [{ email: from, name }], + subject: `Subject ${id}`, + preview: ' line one\n line two ', + hasAttachment: false, + size: 1, + } as Email; +} + +describe('toMailItem', () => { + it('maps a list email to what the widgets draw', () => { + const item = toMailItem(email('1', 'sofia.russo@example.com', 'Sofia Russo', false), 'acc', { threadSize: 2 }); + expect(item).toMatchObject({ + id: '1', + accountId: 'acc', + fromName: 'Sofia Russo', + initials: 'SR', + unread: true, + threadSize: 2, + preview: 'line one line two', + }); + // Same hue as the webmail's Avatar for this name. + expect(item.color).toBe('#6826d9'); + }); +}); + +describe('rankPeople', () => { + it('ranks senders by volume, skips the user and no-reply senders, and counts unread', () => { + const people = rankPeople([ + email('1', 'ada@example.com', 'Ada', false), + email('2', 'ada@example.com', 'Ada', true), + email('3', 'bob@example.com', 'Bob', false), + email('4', 'me@example.com', 'Me', false), + email('5', 'noreply@shop.example', 'Shop', false), + ], ['Me@example.com']); + expect(people.map((p) => [p.email, p.unread])).toEqual([['ada@example.com', 1], ['bob@example.com', 1]]); + }); +}); + +describe('folderCounts', () => { + it('orders the roles like the sidebar and finds junk by role or name', () => { + const boxes = [ + { id: 'j', name: 'Spam', role: 'junk', unreadEmails: 3, totalEmails: 3 }, + { id: 'i', name: 'Inbox', role: 'inbox', unreadEmails: 10, totalEmails: 23 }, + { id: 'd', name: 'Drafts', role: 'drafts', unreadEmails: 0, totalEmails: 2 }, + ] as Mailbox[]; + expect(folderCounts(boxes).map((f) => [f.role, f.unread, f.total])).toEqual([ + ['inbox', 10, 23], + ['drafts', 0, 2], + ['junk', 3, 3], + ]); + }); +}); diff --git a/src/widgets/__tests__/layouts.test.ts b/src/widgets/__tests__/layouts.test.ts new file mode 100644 index 00000000..c7b24767 --- /dev/null +++ b/src/widgets/__tests__/layouts.test.ts @@ -0,0 +1,125 @@ +import { describe, expect, it, vi } from 'vitest'; + +// The package entry pulls in the native module, so hand the layouts the plain +// widget components and run them through the library's own tree builder: it +// is what throws on the device when a layout returns null, puts null in a +// mapped list or uses a Fragment. Colours are checked on the way in, because +// the library quietly turns any it cannot parse (a name, `transparent`) into +// white. +vi.mock('react-native-android-widget', async () => { + const COLOR = /^(#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})|rgba\(.*\))$/i; + const checkColors = (widget: string, style: Record = {}) => { + for (const [key, value] of Object.entries(style)) { + if (/colou?r$/i.test(key) && !(typeof value === 'string' && COLOR.test(value))) { + throw new Error(`${widget} ${key}: ${JSON.stringify(value)} is not a colour the widget renderer reads`); + } + } + }; + type Widget = { __name__: string; convertProps: (props: { style?: Record }) => unknown }; + const checked = (module: Record) => { + for (const value of Object.values(module)) { + if (typeof value !== 'function' || !('__name__' in value)) continue; + const widget = value as unknown as Widget; + const convert = widget.convertProps; + widget.convertProps = (props) => { + checkColors(widget.__name__, props.style); + return convert(props); + }; + } + return module; + }; + // The compiled SvgWidget requires react-native (past the stub) to resolve + // bundled images; the widgets only draw inline SVG strings, so rebuild it + // from the library's own style and click converters. + const { convertCommonStyle } = await import('react-native-android-widget/lib/commonjs/widgets/utils/style.utils' as string); + const { convertClickAction } = await import('react-native-android-widget/lib/commonjs/widgets/utils/click-action' as string); + function SvgWidget() { + return null; + } + SvgWidget.__name__ = 'SvgWidget'; + SvgWidget.convertProps = (props: { style?: object; svg: unknown }) => { + if (typeof props.svg !== 'string') throw new Error('widgets draw inline SVG strings only'); + return { ...convertCommonStyle(props.style ?? {}), ...convertClickAction(props), svgString: props.svg }; + }; + return { + ...checked(await import('react-native-android-widget/lib/commonjs/widgets/FlexWidget' as string)), + ...checked(await import('react-native-android-widget/lib/commonjs/widgets/ListWidget' as string)), + ...checked(await import('react-native-android-widget/lib/commonjs/widgets/OverlapWidget' as string)), + ...checked(await import('react-native-android-widget/lib/commonjs/widgets/TextWidget' as string)), + ...checked({ SvgWidget }), + getWidgetInfo: vi.fn(async () => []), + requestWidgetUpdate: vi.fn(async () => undefined), + }; +}); + +import { createElement } from 'react'; +import { FlexWidget } from 'react-native-android-widget'; +import catalog from '../catalog.json'; +import { renderFor } from '../render'; +import { PREVIEW_NOW, sampleSnapshot } from '../sample-snapshot'; +import { emptySnapshot, type WidgetSnapshot } from '../snapshot'; + +const { buildWidgetTree } = (await import( + 'react-native-android-widget/lib/commonjs/api/build-widget-tree' as string +)) as { buildWidgetTree: (tree: unknown) => { type: string } }; + +// Launcher cells to dp, roughly what a phone launcher reports. +const dp = (cells: number) => cells * 90 - 15; + +function build(name: string, s: WidgetSnapshot, cols: number, rows: number, local = {}) { + const trees = renderFor(name, s, { width: dp(cols), height: dp(rows), widgetId: 1 }, local, PREVIEW_NOW); + for (const tree of 'light' in trees ? [trees.light, trees.dark] : [trees]) { + expect(buildWidgetTree(tree).type).toBeTruthy(); + } +} + +const sizes = (w: (typeof catalog.widgets)[number]) => [ + [w.minCols, w.minRows], + [w.cols, w.rows], + [4, 4], + [5, 5], +]; + +describe('widget layouts', () => { + it('uses a builder that rejects what the device rejects', () => { + const Nothing = () => null; + expect(() => buildWidgetTree(createElement(Nothing))).toThrow(); + expect(() => buildWidgetTree(createElement(FlexWidget, null, createElement(FlexWidget), [null]))).toThrow(); + expect(() => buildWidgetTree(createElement(FlexWidget, { style: { backgroundColor: 'teal' } } as never))).toThrow(); + }); + + const sample = { ...sampleSnapshot(PREVIEW_NOW), theme: 'system' as const }; + const empty: WidgetSnapshot = { + ...emptySnapshot(), + generatedAt: PREVIEW_NOW, + appDataAt: PREVIEW_NOW, + signedIn: true, + theme: 'system', + accounts: [{ id: 'a', label: 'Work', color: '#2563eb', unread: 0 }], + activeAccountId: 'a', + calendar: { supported: true, events: [], invitations: [], birthdays: [] }, + tasks: { supported: true, items: [] }, + files: { supported: true, items: [] }, + }; + + it.each(catalog.widgets.map((w) => [w.name, w] as const))('%s builds with demo data at every size', (name, w) => { + for (const [cols, rows] of sizes(w)) build(name, sample, cols, rows); + }); + + it.each(catalog.widgets.map((w) => [w.name, w] as const))('%s builds with nothing to show', (name, w) => { + for (const [cols, rows] of sizes(w)) build(name, empty, cols, rows); + }); + + it('builds the signed-out, loading and not-loaded-yet states', () => { + for (const w of catalog.widgets) { + build(w.name, { ...emptySnapshot(), generatedAt: PREVIEW_NOW }, w.cols, w.rows); + build(w.name, emptySnapshot(), w.cols, w.rows); + build(w.name, { ...sample, appDataAt: 0 }, w.cols, w.rows); + } + }); + + it('builds the triage card on a message that is gone', () => { + build('TriageWidget', sample, 4, 2, { triageId: 'no-such-message' }); + build('TriageWidget', { ...sample, mail: { ...sample.mail, inbox: [] } }, 4, 2, { triageId: 'm1' }); + }); +}); diff --git a/src/widgets/actions.ts b/src/widgets/actions.ts new file mode 100644 index 00000000..ec506ddc --- /dev/null +++ b/src/widgets/actions.ts @@ -0,0 +1,163 @@ +// Buttons that act without opening the app: archive / delete / next on the +// triage card, RSVP on the invitation card, ticking a task. Each one updates +// the stored snapshot first so every widget redraws at once, then makes the +// JMAP call, then refreshes from the server; a failed call is undone by that +// refresh. + +import { jmapClient } from '../api/jmap-client'; +import type { JMAPClient } from '../api/jmap-client'; +import { noteLocalChange, refreshSnapshot, singletonServes } from './build'; +import { markRead, moveTo, openClient, rsvp, setTaskDone } from './jmap'; +import { loadLocal, saveLocal } from './local-state'; +import { updateAllWidgets } from './render'; +import { emptySnapshot, loadSnapshot, saveSnapshot, type MailItem, type WidgetSnapshot } from './snapshot'; + +async function clientFor(registryAccountId: string | null | undefined): Promise { + if (!registryAccountId) return null; + if (singletonServes(registryAccountId)) return jmapClient; + return openClient(registryAccountId); +} + +async function applyLocally(mutate: (s: WidgetSnapshot) => void): Promise { + noteLocalChange(); + const s = (await loadSnapshot()) ?? emptySnapshot(); + mutate(s); + await saveSnapshot(s); + await updateAllWidgets(s); + return s; +} + +function withoutMessage(s: WidgetSnapshot, id: string): void { + const removed = s.mail.inbox.find((m) => m.id === id); + const drop = (list: MailItem[]) => list.filter((m) => m.id !== id); + s.mail.inbox = drop(s.mail.inbox); + s.mail.unified = drop(s.mail.unified); + s.mail.starred = drop(s.mail.starred); + const inbox = s.mail.folders.find((f) => f.role === 'inbox'); + if (inbox && removed) { + inbox.total = Math.max(0, inbox.total - 1); + if (removed.unread) inbox.unread = Math.max(0, inbox.unread - 1); + } +} + +async function afterServerCall(ok: boolean): Promise { + if (!ok) console.warn('[widgets] action was not applied on the server'); + const fresh = await refreshSnapshot({ after: 'change' }); + await updateAllWidgets(fresh); +} + +type Data = Record; +const str = (v: unknown): string | undefined => (typeof v === 'string' && v ? v : undefined); + +export async function handleWidgetAction(name: string, data: Data, widgetId: number): Promise { + switch (name) { + case 'refresh': + await afterServerCall(true); + return; + + case 'triageNext': { + const s = (await loadSnapshot()) ?? emptySnapshot(); + const unread = s.mail.inbox.filter((m) => m.unread); + if (unread.length === 0) return; + const index = unread.findIndex((m) => m.id === data.id); + const next = unread[(index + 1) % unread.length]; + const local = await loadLocal(widgetId); + await saveLocal(widgetId, { ...local, triageId: next.id }); + await updateAllWidgets(s); + return; + } + + case 'archive': + case 'trash': + case 'markRead': { + const id = str(data.id); + if (!id) return; + if (name === 'markRead') { + await applyLocally((s) => { + const hit = s.mail.inbox.find((m) => m.id === id); + const inbox = s.mail.folders.find((f) => f.role === 'inbox'); + if (hit?.unread && inbox) inbox.unread = Math.max(0, inbox.unread - 1); + for (const list of [s.mail.inbox, s.mail.unified, s.mail.starred]) { + for (const m of list) if (m.id === id) m.unread = false; + } + }); + } else { + // The triage card moves on to the next unread message, not back to + // the first one. + const before = (await loadSnapshot()) ?? emptySnapshot(); + const unread = before.mail.inbox.filter((m) => m.unread); + const index = unread.findIndex((m) => m.id === id); + const next = index >= 0 ? unread[index + 1] ?? unread[index - 1] : undefined; + if (typeof data.widgetId === 'number') { + await saveLocal(data.widgetId, { ...(await loadLocal(data.widgetId)), triageId: next?.id ?? null }); + } + await applyLocally((s) => withoutMessage(s, id)); + } + let ok = false; + try { + const client = await clientFor(str(data.accountId)); + if (client) { + ok = name === 'markRead' + ? await markRead(client, id, str(data.jmapAccountId)) + : await moveTo(client, id, name, str(data.jmapAccountId)); + } + } catch (err) { + console.warn(`[widgets] ${name} failed`, err); + } + await afterServerCall(ok); + return; + } + + case 'rsvp': { + const id = str(data.id); + const status = data.status; + if (!id || (status !== 'accepted' && status !== 'tentative' && status !== 'declined')) return; + const before = (await loadSnapshot()) ?? emptySnapshot(); + const invitation = before.calendar.invitations.find((i) => i.id === id); + if (!invitation) return; + await applyLocally((s) => { + s.calendar.invitations = s.calendar.invitations.filter((i) => i.id !== id); + for (const e of s.calendar.events) if (e.serverId === invitation.serverId) e.myStatus = status; + }); + let ok = false; + try { + const client = await clientFor(before.activeAccountId); + if (client) ok = await rsvp(client, invitation.serverId, invitation.participantId, status, invitation.jmapAccountId); + } catch (err) { + console.warn('[widgets] rsvp failed', err); + } + await afterServerCall(ok); + return; + } + + case 'toggleTask': { + const id = str(data.id); + if (!id) return; + const before = (await loadSnapshot()) ?? emptySnapshot(); + const task = before.tasks.items.find((t) => t.id === id); + if (!task) return; + const done = !task.done; + await applyLocally((s) => { + for (const t of s.tasks.items) if (t.id === id) t.done = done; + }); + let ok = false; + try { + const client = await clientFor(before.activeAccountId); + if (client) ok = await setTaskDone(client, task.serverId, done, task.jmapAccountId); + // In the live app the snapshot's tasks come from the calendar store, + // which did not see this change; reload it so the refresh keeps it. + if (ok && before.activeAccountId && singletonServes(before.activeAccountId)) { + const { useCalendarStore } = require('../stores/calendar-store') as typeof import('../stores/calendar-store'); + await useCalendarStore.getState().fetchTasks(); + } + } catch (err) { + console.warn('[widgets] task toggle failed', err); + } + await afterServerCall(ok); + return; + } + + default: + console.warn(`[widgets] unknown action ${name}`); + } +} diff --git a/src/widgets/build.ts b/src/widgets/build.ts new file mode 100644 index 00000000..29aad5ed --- /dev/null +++ b/src/widgets/build.ts @@ -0,0 +1,484 @@ +// Builds the widget snapshot. Mail comes from JMAP on a client of the widgets' +// own (./jmap.ts) and works from a cold headless start. Calendar, tasks, +// birthdays, files and scheduled sends reuse the app's helpers, which are +// bound to the `jmapClient` singleton; they only run when that singleton is +// already connected to the active account (the app's JS runtime is alive). +// Otherwise those parts carry over from the previous snapshot, and the +// time-dependent views are still recomputed when a widget draws. + +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { jmapClient } from '../api/jmap-client'; +import { CAPABILITIES, type CalendarEvent, type ContactCard } from '../api/types'; +import { generateAccountId } from '../lib/account-utils'; +import { generateEmailAvatarColor, getEmailInitials } from '../lib/avatar-utils'; +import { getEventEndDate, getEventStartDate } from '../lib/calendar-utils'; +import { getUserParticipantId, getUserStatus } from '../lib/calendar-participants'; +import { getBirthday, getContactDisplayName, getDateParts } from '../lib/contact-utils'; +import { notificationLocale } from '../lib/push-background-task'; +import { useSettingsStore } from '../stores/settings-store'; +import { useKeywordsStore, keywordToken } from '../stores/keywords-store'; +import { LIGHT_COLORS } from '../theme/tokens'; +import { addDays, startOfDay } from './format'; +import { startOfWeek } from './derive'; +import { fetchInboxPreview, fetchMailSection, openClient, type MailSection } from './jmap'; +import { normalizeHex } from './theme'; +import { + emptySnapshot, + loadSnapshot, + saveSnapshot, + type AccountSummary, + type Birthday, + type EventItem, + type FileItem, + type Invitation, + type ScheduledItem, + type TagCount, + type TaskItem, + type WidgetSnapshot, +} from './snapshot'; + +interface RegistryAccount { + id: string; + email?: string; + displayName?: string; + username?: string; + avatarColor?: string; +} + +export async function readRegistry(): Promise<{ accounts: RegistryAccount[]; activeAccountId: string | null }> { + try { + const raw = await AsyncStorage.getItem('account-registry'); + const state = raw ? (JSON.parse(raw) as { state?: { accounts?: RegistryAccount[]; activeAccountId?: string | null } }).state : null; + const accounts = Array.isArray(state?.accounts) ? state!.accounts! : []; + const active = state?.activeAccountId && accounts.some((a) => a.id === state.activeAccountId) + ? state.activeAccountId + : accounts[0]?.id ?? null; + return { accounts, activeAccountId: active }; + } catch { + return { accounts: [], activeAccountId: null }; + } +} + +async function readRecentSearches(): Promise { + try { + const raw = await AsyncStorage.getItem('search-history-storage'); + const list = raw ? (JSON.parse(raw) as { state?: { recentSearches?: unknown } }).state?.recentSearches : null; + return Array.isArray(list) ? list.filter((s): s is string => typeof s === 'string').slice(0, 8) : []; + } catch { + return []; + } +} + +async function readPendingChanges(accountId: string): Promise { + try { + const raw = await AsyncStorage.getItem(`webmail:outbox:v1:${accountId}`); + const list = raw ? JSON.parse(raw) : null; + return Array.isArray(list) ? list.length : 0; + } catch { + return 0; + } +} + +/** True when the app's singleton is signed in to `registryAccountId` (live runtime). */ +export function singletonServes(registryAccountId: string): boolean { + if (!jmapClient.isConnected) return false; + const { username, serverUrl } = jmapClient; + return !!username && !!serverUrl && generateAccountId(username, serverUrl) === registryAccountId; +} + +function tagColor(color: string): string { + const tags = LIGHT_COLORS.tags; + return (color in tags ? tags[color as keyof typeof tags] : tags.gray).dot; +} + +function tagCounts(section: MailSection): TagCount[] { + const { keywords } = useKeywordsStore.getState(); + const out: TagCount[] = []; + for (const kw of keywords) { + const counts = section.tagCounts.get(keywordToken(kw.id)); + if (!counts || counts.total === 0) continue; + out.push({ + keyword: keywordToken(kw.id), + name: kw.label, + color: tagColor(kw.color), + unread: counts.unread, + total: counts.total, + ...(counts.latest ? { latestFrom: counts.latest.fromName, latestAt: counts.latest.receivedAt } : {}), + }); + } + return out.sort((a, b) => b.unread - a.unread || b.total - a.total); +} + +// ── App-backed sections (live runtime only) ────────────────────────────── + +function participantAddress(p: { email?: string; calendarAddress?: string; sendTo?: Record }): string { + const raw = p.email || p.calendarAddress || p.sendTo?.imip || ''; + return raw.replace(/^mailto:/i, ''); +} + +function toEventItem( + event: CalendarEvent, + calendarsById: Map, + selfEmails: string[], +): EventItem { + const calId = Object.keys(event.calendarIds ?? {}).find((id) => event.calendarIds[id]); + const cal = calId ? calendarsById.get(calId) : undefined; + const start = getEventStartDate(event).getTime(); + const end = Math.max(start, getEventEndDate(event).getTime()); + const location = Object.values(event.locations ?? {}).find((l) => l?.name)?.name; + const video = Object.values(event.virtualLocations ?? {}).find((v) => /^https?:\/\//i.test(v?.uri ?? '')); + const self = new Set(selfEmails.map((e) => e.toLowerCase())); + // Other people only: "who is coming" and the running-late mail leave the + // user out. + const participants = Object.values(event.participants ?? {}) + .filter((p) => !self.has(participantAddress(p).toLowerCase())) + .map((p) => { + const email = participantAddress(p); + const name = p.name?.trim() || email; + return { + name, + email, + initials: getEmailInitials(p.name ?? '', email) || '?', + color: normalizeHex(generateEmailAvatarColor(p.name ?? '', email)), + }; + }) + .filter((p) => p.name); + const organizer = Object.values(event.participants ?? {}).find((p) => p.roles?.owner); + const status = getUserStatus(event, selfEmails); + // A timed event from midnight to midnight is a whole-day event in all but + // name (some clients write holidays that way); show it as all-day rather + // than as "00:00 - 00:00". + const wholeDays = !event.showWithoutTime + && start === startOfDay(start) + && end > start + && end === startOfDay(end); + return { + id: event.id, + serverId: event.originalId || event.id, + ...(event.accountId ? { jmapAccountId: event.accountId } : {}), + title: event.title || '', + start, + end, + allDay: !!event.showWithoutTime || wholeDays, + color: normalizeHex(event.color || cal?.color), + calendarName: cal?.name ?? '', + ...(location ? { location } : {}), + ...(video ? { videoUrl: video.uri, videoName: video.name || '' } : {}), + participants, + ...(status === 'needs-action' || status === 'accepted' || status === 'tentative' || status === 'declined' + ? { myStatus: status } + : {}), + ...(organizer ? { organizerName: organizer.name || participantAddress(organizer) } : {}), + }; +} + +async function buildCalendar(now: number, selfEmails: string[], previous: WidgetSnapshot): Promise { + const calendarsSupported = jmapClient.hasAccountCapability(CAPABILITIES.CALENDARS); + if (!calendarsSupported) return { supported: false, events: [], invitations: [], birthdays: await buildBirthdays(now) }; + const { useCalendarStore, loadEventsInRange } = require('../stores/calendar-store') as typeof import('../stores/calendar-store'); + // Always refetch: the persisted list can predate a calendar deleted and + // re-created on the server under the same id, which would put events under + // the old name and colour. + try { + await useCalendarStore.getState().fetchCalendars(); + } catch { + // fall back to the cached list + } + const { calendars, hiddenCalendarIds } = useCalendarStore.getState(); + const visible = calendars.filter((c) => !hiddenCalendarIds.includes(c.id)); + const byId = new Map(calendars.map((c) => [c.id, { name: c.name, color: c.color }])); + + const first = new Date(now); + first.setDate(1); + const rangeStart = startOfWeek(first.getTime(), useSettingsStore.getState().calendarFirstDayOfWeek === 0 ? 0 : 1); + const rangeEnd = Math.max(addDays(startOfDay(now), 36), addDays(rangeStart, 42)); + let raw: CalendarEvent[]; + try { + raw = visible.length === 0 + ? [] + : await loadEventsInRange(calendars, visible.map((c) => c.id), new Date(rangeStart).toISOString(), new Date(rangeEnd).toISOString()); + } catch (err) { + console.warn('[widgets] calendar refresh failed', err); + return { ...previous.calendar, birthdays: await buildBirthdays(now) }; + } + const live = raw.filter((e) => e.status !== 'cancelled'); + const events = live + .map((e) => toEventItem(e, byId, selfEmails)) + .filter((e) => e.end >= rangeStart && e.start < rangeEnd) + .sort((a, b) => a.start - b.start); + + // One entry per series: answering an invitation answers the whole event. + const invitations: Invitation[] = []; + const seen = new Set(); + for (const e of live) { + if (getUserStatus(e, selfEmails) !== 'needs-action') continue; + const participantId = getUserParticipantId(e, selfEmails); + const key = e.originalId || e.id; + if (!participantId || seen.has(key)) continue; + const item = toEventItem(e, byId, selfEmails); + if (item.end < now) continue; + seen.add(key); + invitations.push({ ...item, participantId }); + } + + return { + supported: true, + events, + invitations: invitations.sort((a, b) => a.start - b.start).slice(0, 10), + birthdays: await buildBirthdays(now), + }; +} + +async function buildBirthdays(now: number): Promise { + const { useContactsStore } = require('../stores/contacts-store') as typeof import('../stores/contacts-store'); + // The Contacts tab loads the address book lazily; the widget may be first. + if (jmapClient.isConnected) { + try { + await useContactsStore.getState().fetchContactsIfStale(); + } catch { + // use whatever is cached + } + } + const contacts: ContactCard[] = useContactsStore.getState().contacts ?? []; + const today = startOfDay(now); + const out: Birthday[] = []; + for (const contact of contacts) { + const date = getBirthday(contact); + if (!date) continue; + const { month, day } = getDateParts(date); + if (!month || !day) continue; + const thisYear = new Date(new Date(today).getFullYear(), month - 1, day).getTime(); + const next = thisYear >= today ? thisYear : new Date(new Date(today).getFullYear() + 1, month - 1, day).getTime(); + const name = getContactDisplayName(contact); + const email = Object.values(contact.emails ?? {})[0]?.address; + out.push({ + name, + ...(email ? { email } : {}), + initials: getEmailInitials(name, email) || '?', + color: normalizeHex(generateEmailAvatarColor(name, email)), + date: next, + }); + } + return out.sort((a, b) => a.date - b.date).slice(0, 20); +} + +async function buildTasks(previous: WidgetSnapshot): Promise { + if (!useSettingsStore.getState().enableCalendarTasks) return { supported: false, items: [] }; + const { useCalendarStore } = require('../stores/calendar-store') as typeof import('../stores/calendar-store'); + try { + const store = useCalendarStore.getState(); + if (store.tasks.length === 0) await store.fetchTasks(); + const { tasks, calendars } = useCalendarStore.getState(); + const byId = new Map(calendars.map((c) => [c.id, c])); + const items: TaskItem[] = tasks + .filter((t) => t.progress !== 'cancelled') + .map((t) => { + const calId = Object.keys(t.calendarIds ?? {}).find((id) => t.calendarIds[id]); + const cal = calId ? byId.get(calId) : undefined; + // A LocalDateTime without an offset parses as device-local time. + const due = t.due ? Date.parse(t.due) : NaN; + return { + id: t.id, + serverId: t.originalId || t.id, + ...(t.accountId ? { jmapAccountId: t.accountId } : {}), + title: t.title || '', + ...(Number.isFinite(due) ? { due } : {}), + dueHasTime: !!t.due && !t.showWithoutTime && !/T00:00(:00)?$/.test(t.due), + done: t.progress === 'completed', + calendarName: cal?.name ?? '', + color: normalizeHex(t.color || cal?.color), + }; + }); + return { supported: true, items: items.slice(0, 40) }; + } catch { + return previous.tasks; + } +} + +async function buildFiles(previous: WidgetSnapshot): Promise { + const files = require('../api/files') as typeof import('../api/files'); + if (!files.supportsFiles()) return { supported: false, items: [] }; + try { + const nodes = await files.getAllFileNodes(); + const items: FileItem[] = nodes + .filter((n) => !!n.name) + .map((n) => ({ + id: n.id, + name: n.name, + isFolder: files.isFolder(n), + size: n.size ?? 0, + modified: Date.parse(n.modified || n.created || '') || 0, + type: n.type || '', + })) + .sort((a, b) => b.modified - a.modified) + .slice(0, 6); + return { supported: true, items }; + } catch { + return previous.files; + } +} + +async function buildScheduled(previous: WidgetSnapshot): Promise { + try { + if (!jmapClient.hasDelayedSend()) return []; + const { listScheduledEmails } = require('../api/email') as typeof import('../api/email'); + const list = await listScheduledEmails(); + return list.slice(0, 6).map((s) => { + const to = s.to?.[0]; + return { + id: s.emailSubmissionId, + to: to?.name || to?.email || '', + subject: s.subject ?? '', + sendAt: Date.parse(s.sendAt) || 0, + }; + }); + } catch { + return previous.mail.scheduled; + } +} + +// ── Assembly ───────────────────────────────────────────────────────────── + +async function buildSnapshot(previous: WidgetSnapshot): Promise { + const now = Date.now(); + const { accounts, activeAccountId } = await readRegistry(); + if (!activeAccountId) return { ...emptySnapshot(), generatedAt: now }; + + const settings = useSettingsStore.getState(); + if (!settings.hydrated) await settings.hydrate(); + const keywordsState = useKeywordsStore.getState(); + if (!keywordsState.hydrated) await keywordsState.hydrate(); + const { theme, timeFormat, calendarFirstDayOfWeek } = useSettingsStore.getState(); + + const live = singletonServes(activeAccountId); + const client = live ? jmapClient : await openClient(activeAccountId); + const next: WidgetSnapshot = { + ...previous, + version: 1, + generatedAt: now, + signedIn: true, + theme, + locale: await notificationLocale(), + hour12: timeFormat === '12h', + weekStart: calendarFirstDayOfWeek === 0 ? 0 : 1, + activeAccountId, + }; + if (previous.activeAccountId !== activeAccountId) { + // Nothing of another account's data may linger in a widget. + const blank = emptySnapshot(); + next.mail = blank.mail; + next.calendar = blank.calendar; + next.tasks = blank.tasks; + next.files = blank.files; + next.vacation = null; + next.quota = null; + next.appDataAt = 0; + } + if (!client) return next; + + const keywordTokens = useKeywordsStore.getState().keywords.map((k) => keywordToken(k.id)); + const section = await fetchMailSection(client, activeAccountId, keywordTokens); + + const others = accounts.filter((a) => a.id !== activeAccountId); + const previews = await Promise.all(others.map(async (a) => { + try { + const c = await openClient(a.id); + return c ? { account: a, ...(await fetchInboxPreview(c, a.id)) } : null; + } catch { + return null; + } + })); + const inboxUnread = section.folders.find((f) => f.role === 'inbox')?.unread ?? 0; + const summaries: AccountSummary[] = accounts.map((a) => { + const preview = previews.find((p) => p?.account.id === a.id); + return { + id: a.id, + label: a.displayName || a.email || a.username || a.id, + color: normalizeHex(a.avatarColor), + unread: a.id === activeAccountId ? inboxUnread : preview?.unread ?? 0, + }; + }); + const unified = [ + ...section.inbox.slice(0, 6), + ...previews.flatMap((p) => p?.items ?? []), + ].sort((a, b) => b.receivedAt - a.receivedAt).slice(0, 8); + + next.accounts = summaries; + next.mail = { + ...next.mail, + folders: section.folders, + inbox: section.inbox, + unified, + starred: section.starred, + starredCount: section.starredCount, + drafts: section.drafts, + draftCount: section.draftCount, + favourites: section.favourites, + recentSearches: await readRecentSearches(), + tags: tagCounts(section), + attachments: section.attachments, + pendingChanges: await readPendingChanges(activeAccountId), + }; + next.vacation = section.vacation; + next.quota = section.quota; + + if (live) { + const [calendar, tasks, files, scheduled] = await Promise.all([ + buildCalendar(now, section.selfEmails, next), + buildTasks(next), + buildFiles(next), + buildScheduled(next), + ]); + next.calendar = calendar; + next.tasks = tasks; + next.files = files; + next.mail.scheduled = scheduled; + next.appDataAt = now; + } + return next; +} + +let inflight: Promise | null = null; +let localChanges = 0; + +/** + * A widget button just edited the stored snapshot. A refresh that started + * before it read the server before the change, so its result is dropped + * rather than saved over the edit. + */ +export function noteLocalChange(): void { + localChanges++; +} + +/** + * Fetch fresh data and store it. Concurrent callers share one run: every + * placed widget gets its own update broadcast, and they would otherwise each + * start a refresh. On failure the previous snapshot is returned unchanged. + * + * `after` is for callers that just changed something on the server (a widget + * button): a run already in flight may have read the server before that + * change, so they wait for it and start (or join) the next one instead. + */ +export async function refreshSnapshot(opts?: { after?: 'change' }): Promise { + if (opts?.after === 'change' && inflight) { + await inflight.catch(() => undefined); + return refreshSnapshot(); + } + if (inflight) return inflight; + inflight = (async () => { + const changesAtStart = localChanges; + const previous = (await loadSnapshot()) ?? emptySnapshot(); + try { + const next = await buildSnapshot(previous); + if (localChanges !== changesAtStart) return (await loadSnapshot()) ?? next; + await saveSnapshot(next); + return next; + } catch (err) { + console.warn('[widgets] refresh failed', err); + return previous; + } finally { + inflight = null; + } + })(); + return inflight; +} diff --git a/src/widgets/catalog.json b/src/widgets/catalog.json new file mode 100644 index 00000000..319c0bfd --- /dev/null +++ b/src/widgets/catalog.json @@ -0,0 +1,40 @@ +{ + "$comment": "Home-screen widgets. scripts/sync-android-widgets.mjs turns this into the Android provider classes, provider XML, labels and manifest receivers; run it after editing. cols/rows are launcher cells (Android 2x2 is roughly the iOS small widget, 4x2 medium, 4x4 large).", + "widgets": [ + { "name": "InboxWidget", "label": "Inbox", "description": "Newest messages with sender, time and subject. Taller sizes add avatars and a line of preview.", "cols": 4, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail" }, + { "name": "TriageWidget", "label": "Triage", "description": "One unread message at a time with archive, delete and reply buttons.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "mail" }, + { "name": "UnreadCountWidget", "label": "Unread count", "description": "Unread count for the inbox, with the latest senders.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail" }, + { "name": "LatestMessageWidget", "label": "Latest message", "description": "Only the newest unread message.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail" }, + { "name": "FolderCountsWidget", "label": "Folder counts", "description": "Unread counts for up to four folders.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail" }, + { "name": "MailShortcutsWidget", "label": "Shortcuts", "description": "Compose, calendar, contacts and files.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail", "static": true }, + { "name": "AllAccountsWidget", "label": "All accounts", "description": "The unified inbox across every signed-in account.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "mail" }, + { "name": "StarredWidget", "label": "Starred", "description": "Starred messages, newest first.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "mail" }, + { "name": "FavouritePeopleWidget", "label": "Favourite people", "description": "The people you hear from most, with their unread count.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "mail" }, + { "name": "MailSearchWidget", "label": "Search mail", "description": "Search bar with your recent searches.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 1, "board": "mail" }, + { "name": "OutboxWidget", "label": "Scheduled and outbox", "description": "Scheduled messages and anything waiting in the outbox.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "mail" }, + { "name": "TagWidget", "label": "Tag", "description": "Unread count for your busiest tag.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail" }, + { "name": "LastDraftWidget", "label": "Last draft", "description": "Back into the draft you left.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "mail" }, + + { "name": "AgendaWidget", "label": "Agenda", "description": "Upcoming events by day with time, colour and place.", "cols": 4, "rows": 4, "minCols": 3, "minRows": 2, "board": "calendar" }, + { "name": "WeekWidget", "label": "This week", "description": "The week at a glance from 8:00 to 18:00.", "cols": 4, "rows": 2, "minCols": 4, "minRows": 2, "board": "calendar" }, + { "name": "MonthWidget", "label": "Month", "description": "Month grid with a dot per calendar and the next two events.", "cols": 4, "rows": 4, "minCols": 3, "minRows": 3, "board": "calendar" }, + { "name": "TodayEventsWidget", "label": "Today", "description": "Today's date with the rest of today and tomorrow.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "calendar" }, + { "name": "NextEventWidget", "label": "Next event", "description": "What's next, when and where.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "calendar" }, + { "name": "DateNextWidget", "label": "Date and next two", "description": "Today's date with the next two events.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "calendar" }, + { "name": "UpNextWidget", "label": "Up next", "description": "Countdown to the next event with join and running-late buttons.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "calendar" }, + + { "name": "InvitationsWidget", "label": "Invitations", "description": "Pending invitations with accept, maybe and decline.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "plans" }, + { "name": "FreeTimeWidget", "label": "Free time", "description": "When you're free this week.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "plans" }, + { "name": "TasksWidget", "label": "Tasks", "description": "Open tasks with tick boxes that work from the home screen.", "cols": 4, "rows": 4, "minCols": 3, "minRows": 2, "board": "plans" }, + { "name": "TaskProgressWidget", "label": "Task progress", "description": "How many tasks are done.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "plans" }, + { "name": "CountdownWidget", "label": "Countdown", "description": "Days until your next all-day event.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "plans" }, + { "name": "BirthdaysWidget", "label": "Birthdays", "description": "Upcoming birthdays from your contacts.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "plans" }, + + { "name": "TodayHubWidget", "label": "Today overview", "description": "Next event, newest unread mail and tasks due, in one widget.", "cols": 4, "rows": 4, "minCols": 3, "minRows": 3, "board": "hubs" }, + { "name": "MailAndNextWidget", "label": "Mail and next event", "description": "Unread mail on one side, the next event on the other.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "hubs" }, + { "name": "RecentFilesWidget", "label": "Recent files", "description": "Recently changed items in Files.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "hubs" }, + { "name": "AttachmentsWidget", "label": "Recent attachments", "description": "The newest attachments from your mail.", "cols": 4, "rows": 2, "minCols": 3, "minRows": 2, "board": "hubs" }, + { "name": "VacationWidget", "label": "Vacation responder", "description": "Vacation responder status with an on/off switch.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "hubs" }, + { "name": "StorageWidget", "label": "Storage", "description": "How much of your mailbox quota is used.", "cols": 2, "rows": 2, "minCols": 2, "minRows": 2, "board": "hubs" } + ] +} diff --git a/src/widgets/clicks.ts b/src/widgets/clicks.ts new file mode 100644 index 00000000..b88f2a6c --- /dev/null +++ b/src/widgets/clicks.ts @@ -0,0 +1,60 @@ +// What a tap on part of a widget does. Either it opens the app on a deep link +// (handled by src/navigation/linking.ts, no JS needed in the widget), or it +// names an action the widget task performs in the background (./actions.ts). + +import { APP_SCHEME } from '../navigation/linking'; +import type { EventItem, MailItem } from './snapshot'; + +export interface WidgetClick { + clickAction?: string; + clickActionData?: Record; +} + +export type WidgetActionName = + | 'archive' + | 'trash' + | 'markRead' + | 'triageNext' + | 'rsvp' + | 'toggleTask' + | 'refresh'; + +export function action(name: WidgetActionName, data: Record = {}): WidgetClick { + return { clickAction: name, clickActionData: data }; +} + +export function open(uri: string): WidgetClick { + return { clickAction: 'OPEN_URI', clickActionData: { uri } }; +} + +const base = `${APP_SCHEME}://`; +const enc = encodeURIComponent; + +function query(params: Record): string { + const parts = Object.entries(params) + .filter(([, v]) => v !== undefined && v !== '') + .map(([k, v]) => `${k}=${enc(v!)}`); + return parts.length ? `?${parts.join('&')}` : ''; +} + +export const links = { + inbox: () => `${base}mail/folder/inbox`, + message: (m: Pick) => + `${base}mail/message/${enc(m.id)}${query({ account: m.accountId, jmapAccount: m.jmapAccountId })}`, + reply: (m: Pick) => + `${base}mail/message/${enc(m.id)}${query({ account: m.accountId, jmapAccount: m.jmapAccountId, action: 'reply' })}`, + draft: (m: Pick) => + `${base}mail/draft/${enc(m.id)}${query({ account: m.accountId, jmapAccount: m.jmapAccountId })}`, + unified: (params: { view?: 'all' | 'unread' | 'starred'; role?: string } = {}) => + `${base}mail/unified${query({ view: params.view, role: params.role })}`, + scheduled: () => `${base}mail/scheduled`, + search: (q = '') => `${base}mail/search${query({ q })}`, + compose: (params: { to?: string; subject?: string; body?: string } = {}) => + `${base}compose${query({ to: params.to, subject: params.subject, body: params.body })}`, + calendar: () => `${base}calendar`, + event: (e: Pick) => + `${base}calendar/event/${enc(e.serverId)}${query({ account: e.jmapAccountId })}`, + contacts: () => `${base}contacts`, + files: () => `${base}files`, + settings: (tab?: string) => `${base}settings${tab ? `/${enc(tab)}` : ''}`, +}; diff --git a/src/widgets/derive.ts b/src/widgets/derive.ts new file mode 100644 index 00000000..71e8682a --- /dev/null +++ b/src/widgets/derive.ts @@ -0,0 +1,209 @@ +// Views that depend on the current time, computed when a widget draws rather +// than when the snapshot was fetched. Pure functions of (snapshot, now), so +// they are unit-tested without the widget runtime. + +import { addDays, startOfDay } from './format'; +import type { EventItem, TaskItem, WidgetSnapshot } from './snapshot'; + +const DAY = 86400000; + +/** Events overlapping [dayStart, dayStart + 1 day), all-day first, then by start. */ +export function eventsOnDay(events: EventItem[], dayStart: number): EventItem[] { + const dayEnd = addDays(dayStart, 1); + return events + .filter((e) => e.start < dayEnd && (e.end > dayStart || (e.end === e.start && e.start >= dayStart))) + .sort((a, b) => (a.allDay === b.allDay ? a.start - b.start : a.allDay ? -1 : 1)); +} + +/** Timed events that have not ended yet, soonest first. */ +export function upcomingTimed(events: EventItem[], now: number): EventItem[] { + return events.filter((e) => !e.allDay && e.end > now).sort((a, b) => a.start - b.start); +} + +/** The next timed event (running or upcoming) and whether it has started. */ +export function nextEvent(events: EventItem[], now: number): { event: EventItem; running: boolean } | null { + const [event] = upcomingTimed(events, now); + if (!event) return null; + return { event, running: event.start <= now }; +} + +export interface AgendaDay { + dayStart: number; + events: EventItem[]; +} + +/** + * Days from today with at least one event still relevant (today drops the + * events that already ended), up to `maxDays` days with events. + */ +export function agendaDays(events: EventItem[], now: number, maxDays: number, horizonDays = 14): AgendaDay[] { + const out: AgendaDay[] = []; + const today = startOfDay(now); + for (let i = 0; i < horizonDays && out.length < maxDays; i++) { + const day = addDays(today, i); + const list = eventsOnDay(events, day).filter((e) => i > 0 || e.allDay || e.end > now); + if (list.length > 0) out.push({ dayStart: day, events: list }); + } + return out; +} + +/** Start of the week containing `ms` for the given first weekday (0 Sun, 1 Mon). */ +export function startOfWeek(ms: number, weekStart: 0 | 1): number { + const day = startOfDay(ms); + const dow = new Date(day).getDay(); + const diff = (dow - weekStart + 7) % 7; + return addDays(day, -diff); +} + +export interface MonthCell { + dayStart: number; + day: number; + inMonth: boolean; + isToday: boolean; + /** Distinct calendar colours with events that day, at most three. */ + dots: string[]; +} + +/** The month containing `now` as whole weeks (5 or 6 rows). */ +export function monthGrid(events: EventItem[], now: number, weekStart: 0 | 1): MonthCell[][] { + const first = new Date(now); + first.setDate(1); + first.setHours(0, 0, 0, 0); + const month = first.getMonth(); + const today = startOfDay(now); + let cursor = startOfWeek(first.getTime(), weekStart); + const weeks: MonthCell[][] = []; + do { + const week: MonthCell[] = []; + for (let i = 0; i < 7; i++) { + const d = new Date(cursor); + const dots: string[] = []; + for (const e of eventsOnDay(events, cursor)) { + if (!dots.includes(e.color)) dots.push(e.color); + if (dots.length === 3) break; + } + week.push({ + dayStart: cursor, + day: d.getDate(), + inMonth: d.getMonth() === month, + isToday: cursor === today, + dots, + }); + cursor = addDays(cursor, 1); + } + weeks.push(week); + } while (new Date(cursor).getMonth() === month); + return weeks; +} + +export interface BusyBlock { + /** Fraction of the visible window, 0..1. */ + from: number; + to: number; + color: string; +} + +/** + * Timed events of one day clipped to [startHour, endHour) as fractions of that + * window - the week and free-time bars. + */ +export function busyBlocks(events: EventItem[], dayStart: number, startHour = 8, endHour = 18): BusyBlock[] { + const winStart = dayStart + startHour * 3600000; + const winEnd = dayStart + endHour * 3600000; + const span = winEnd - winStart; + return eventsOnDay(events, dayStart) + .filter((e) => !e.allDay && e.end > winStart && e.start < winEnd) + .map((e) => ({ + from: (Math.max(e.start, winStart) - winStart) / span, + to: (Math.min(e.end, winEnd) - winStart) / span, + color: e.color, + })); +} + +export interface FreeTime { + /** The next timed event today, if any. */ + next: EventItem | null; + /** True when an event is running right now. */ + busyNow: boolean; + /** Longest free stretch left today inside working hours, if any. */ + longestGap: { from: number; to: number } | null; +} + +export function freeTime(events: EventItem[], now: number, startHour = 8, endHour = 18): FreeTime { + const today = startOfDay(now); + const winEnd = today + endHour * 3600000; + const timed = eventsOnDay(events, today).filter((e) => !e.allDay); + const busyNow = timed.some((e) => e.start <= now && e.end > now); + const next = timed.find((e) => e.start > now) ?? null; + + let cursor = Math.max(now, today + startHour * 3600000); + let longest: { from: number; to: number } | null = null; + for (const e of timed.filter((x) => x.end > cursor).sort((a, b) => a.start - b.start)) { + if (e.start > cursor) { + const gap = { from: cursor, to: Math.min(e.start, winEnd) }; + if (gap.to > gap.from && (!longest || gap.to - gap.from > longest.to - longest.from)) longest = gap; + } + cursor = Math.max(cursor, e.end); + if (cursor >= winEnd) break; + } + if (cursor < winEnd) { + const gap = { from: cursor, to: winEnd }; + if (!longest || gap.to - gap.from > longest.to - longest.from) longest = gap; + } + return { next, busyNow, longestGap: longest }; +} + +export type DueKind = 'overdue' | 'today' | 'tomorrow' | 'later' | 'none'; + +export function dueKind(task: TaskItem, now: number): DueKind { + if (task.due === undefined) return 'none'; + const today = startOfDay(now); + const dueDay = startOfDay(task.due); + if (task.dueHasTime ? task.due < now : dueDay < today) return 'overdue'; + if (dueDay === today) return 'today'; + if (dueDay === addDays(today, 1)) return 'tomorrow'; + return 'later'; +} + +/** Open tasks first (overdue, then by due date, undated last), completed after. */ +export function sortTasks(tasks: TaskItem[], now: number): TaskItem[] { + const rank: Record = { overdue: 0, today: 1, tomorrow: 2, later: 3, none: 4 }; + return [...tasks].sort((a, b) => { + if (a.done !== b.done) return a.done ? 1 : -1; + const ra = rank[dueKind(a, now)]; + const rb = rank[dueKind(b, now)]; + if (ra !== rb) return ra - rb; + return (a.due ?? Number.MAX_SAFE_INTEGER) - (b.due ?? Number.MAX_SAFE_INTEGER); + }); +} + +/** Tasks that count for "today": overdue, due today, or completed today-ish. */ +export function tasksDueNow(tasks: TaskItem[], now: number): TaskItem[] { + return tasks.filter((t) => { + const kind = dueKind(t, now); + return kind === 'overdue' || kind === 'today'; + }); +} + +/** + * The event a countdown should point at: the next all-day or multi-day event + * that starts after today, else the next timed event on a later day. + */ +export function countdownTarget(events: EventItem[], now: number): EventItem | null { + const tomorrow = addDays(startOfDay(now), 1); + const later = events.filter((e) => e.start >= tomorrow).sort((a, b) => a.start - b.start); + return later.find((e) => e.allDay || e.end - e.start >= DAY) ?? later[0] ?? null; +} + +export function daysUntil(ms: number, now: number): number { + return Math.round((startOfDay(ms) - startOfDay(now)) / DAY); +} + +/** Birthdays in the next `days` days, soonest first. */ +export function upcomingBirthdays(snapshot: WidgetSnapshot, now: number, days = 45) { + const today = startOfDay(now); + const until = addDays(today, days); + return snapshot.calendar.birthdays + .filter((b) => b.date >= today && b.date < until) + .sort((a, b) => a.date - b.date); +} diff --git a/src/widgets/format.ts b/src/widgets/format.ts new file mode 100644 index 00000000..54402ebc --- /dev/null +++ b/src/widgets/format.ts @@ -0,0 +1,132 @@ +// Strings and date formatting for widget layouts. Widgets render in a headless +// task with no React tree, so this uses the plain translate() lookup instead +// of the useTranslation hook. Keys live under `widgets.` in locales/rn/*.json +// (added by `npm run i18n:harvest`); each call repeats the English text as +// the fallback so a missing key never shows up raw on the home screen. + +import { isSupportedLocale, translate, type LocaleCode, type MessageParams } from '../i18n'; + +export interface Fmt { + locale: string; + hour12: boolean; + t: (key: string, fallback: string, params?: MessageParams) => string; + /** Clock time in the user's 12h/24h setting. */ + time: (ms: number) => string; + weekdayShort: (ms: number) => string; + weekdayLong: (ms: number) => string; + monthLong: (ms: number) => string; + /** "Sep 28" */ + dayMonth: (ms: number) => string; + /** "Mon, Sep 28" */ + weekdayDayMonth: (ms: number) => string; + /** "Sep 28, 2026" */ + fullDate: (ms: number) => string; + /** Time today, weekday this week, date otherwise - the list's receivedAt style. */ + listDate: (ms: number, now: number) => string; + /** "in 25 min", "in 2 h", "now". */ + relative: (ms: number, now: number) => string; + bytes: (n: number) => string; +} + +function safeFormat(locale: string, options: Intl.DateTimeFormatOptions): (ms: number) => string { + let formatter: Intl.DateTimeFormat | null = null; + try { + formatter = new Intl.DateTimeFormat(locale, options); + } catch { + try { + formatter = new Intl.DateTimeFormat('en', options); + } catch { + formatter = null; + } + } + return (ms: number) => { + const d = new Date(ms); + if (formatter) { + try { + return formatter.format(d); + } catch { + // fall through + } + } + return d.toDateString(); + }; +} + +const pad = (n: number) => String(n).padStart(2, '0'); + +export function startOfDay(ms: number): number { + const d = new Date(ms); + d.setHours(0, 0, 0, 0); + return d.getTime(); +} + +export function addDays(ms: number, days: number): number { + const d = new Date(ms); + d.setDate(d.getDate() + days); + return d.getTime(); +} + +export function sameDay(a: number, b: number): boolean { + return startOfDay(a) === startOfDay(b); +} + +export function makeFmt(locale: string, hour12: boolean): Fmt { + const lang: LocaleCode = isSupportedLocale(locale) ? locale : 'en'; + const t = (key: string, fallback: string, params?: MessageParams) => + translate(lang, key, fallback, params); + + const weekdayShort = safeFormat(locale, { weekday: 'short' }); + const weekdayLong = safeFormat(locale, { weekday: 'long' }); + const monthLong = safeFormat(locale, { month: 'long' }); + const dayMonth = safeFormat(locale, { month: 'short', day: 'numeric' }); + const weekdayDayMonth = safeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric' }); + const fullDate = safeFormat(locale, { year: 'numeric', month: 'short', day: 'numeric' }); + + const time = (ms: number) => { + const d = new Date(ms); + const h = d.getHours(); + const m = pad(d.getMinutes()); + if (!hour12) return `${pad(h)}:${m}`; + const suffix = h < 12 ? 'AM' : 'PM'; + return `${h % 12 === 0 ? 12 : h % 12}:${m} ${suffix}`; + }; + + return { + locale, + hour12, + t, + time, + weekdayShort, + weekdayLong, + monthLong, + dayMonth, + weekdayDayMonth, + fullDate, + listDate: (ms, now) => { + if (sameDay(ms, now)) return time(ms); + const days = Math.round((startOfDay(now) - startOfDay(ms)) / 86400000); + if (days > 0 && days < 7) return weekdayShort(ms); + return dayMonth(ms); + }, + relative: (ms, now) => { + const minutes = Math.round((ms - now) / 60000); + if (minutes <= 0) return t('widgets.relative.now', 'now'); + if (minutes < 60) return t('widgets.relative.minutes', 'in {count} min', { count: minutes }); + const hours = Math.round(minutes / 60); + if (hours < 24) return t('widgets.relative.hours', 'in {count} h', { count: hours }); + const days = Math.round((startOfDay(ms) - startOfDay(now)) / 86400000); + return t('widgets.relative.days', '{count, plural, one {in # day} other {in # days}}', { count: days }); + }, + bytes: (n) => { + if (!Number.isFinite(n) || n <= 0) return '0 B'; + const units = ['B', 'KB', 'MB', 'GB', 'TB']; + let v = n; + let i = 0; + while (v >= 1024 && i < units.length - 1) { + v /= 1024; + i++; + } + return `${v >= 10 || i === 0 ? Math.round(v) : v.toFixed(1)} ${units[i]}`; + }, + }; +} diff --git a/src/widgets/icons.ts b/src/widgets/icons.ts new file mode 100644 index 00000000..88ae2455 --- /dev/null +++ b/src/widgets/icons.ts @@ -0,0 +1,100 @@ +// Tabler Icons (MIT), the set the webmail draws since it moved off Lucide. +// Path data is copied from @tabler/icons tabler-nodes-outline.json so the +// widgets use the same glyphs as the web UI. Widgets render them through +// SvgWidget, which rasterises an SVG string. + +const OUTLINE = { + mail: '', + inbox: '', + send: '', + file: '', + fileText: '', + fileSpreadsheet: '', + presentation: '', + photo: '', + folder: '', + calendarClock: '', + calendar: '', + calendarPlain: '', + archive: '', + trash: '', + ban: '', + search: '', + edit: '', + addressBook: '', + server: '', + paperclip: '', + star: '', + message: '', + mapPin: '', + video: '', + clock: '', + check: '', + plus: '', + chevronLeft: '', + chevronRight: '', + users: '', + lock: '', + cake: '', + beach: '', + reply: '', + checklist: '', + upload: '', + refresh: '', + tag: '', +} as const; + +const FILLED = { + star: '', + tag: '', +} as const; + +export type IconName = keyof typeof OUTLINE; +export type FilledIconName = keyof typeof FILLED; + +/** Splits `#rrggbbaa` into an SVG colour plus opacity; rgba() is passed through. */ +function paint(color: string): { value: string; opacity: string } { + const m = /^#([0-9a-f]{6})([0-9a-f]{2})$/i.exec(color); + if (m) return { value: `#${m[1]}`, opacity: (parseInt(m[2], 16) / 255).toFixed(3) }; + return { value: color, opacity: '1' }; +} + +/** Outline Tabler icon as an SVG string (24 x 24 viewBox, stroke 2 like the web UI). */ +export function icon(name: IconName, color: string, strokeWidth = 2): string { + const { value, opacity } = paint(color); + return ( + `` + + `${OUTLINE[name]}` + ); +} + +/** Filled Tabler icon (star, tag) as an SVG string. */ +export function filledIcon(name: FilledIconName, color: string): string { + const { value, opacity } = paint(color); + return ( + `${FILLED[name]}` + ); +} + +/** + * A progress ring (quota, task progress, countdown). `fraction` is clamped to + * 0..1; the arc starts at 12 o'clock like the webmail's quota ring. + */ +export function ring(fraction: number, track: string, fill: string, strokeWidth = 6): string { + const f = Math.max(0, Math.min(1, Number.isFinite(fraction) ? fraction : 0)); + const r = 32 - strokeWidth / 2; + const c = 2 * Math.PI * r; + const t = paint(track); + const p = paint(fill); + const arc = f > 0 + ? `` + : ''; + return ( + `` + + `` + + `${arc}` + ); +} diff --git a/src/widgets/jmap.ts b/src/widgets/jmap.ts new file mode 100644 index 00000000..1891802c --- /dev/null +++ b/src/widgets/jmap.ts @@ -0,0 +1,450 @@ +// JMAP access for the widgets. Every call goes through a JMAPClient instance +// of its own, never the app's `jmapClient` singleton: the widget task can run +// inside the live React Native instance, where re-binding the singleton would +// send the UI's requests with another account's credentials. The api/* +// helpers are all bound to the singleton, so the few calls the widgets need +// are written out here. + +import { AuthenticationError, JMAPClient, NetworkError } from '../api/jmap-client'; +import { CAPABILITIES, type Attachment, type Email, type Mailbox } from '../api/types'; +import { realAttachments } from '../lib/list-attachments'; +import { findArchiveMailbox, findJunkMailbox, findTrashMailbox } from '../lib/mailbox-tree'; +import { generateEmailAvatarColor, getEmailInitials } from '../lib/avatar-utils'; +import { normalizeHex } from './theme'; +import type { AttachmentGroup, FolderCount, MailItem, Person, QuotaState, VacationState } from './snapshot'; + +type Call = [string, Record, string]; + +const LIST_PROPERTIES = [ + 'id', 'threadId', 'mailboxIds', 'keywords', 'receivedAt', 'from', 'subject', 'preview', 'hasAttachment', +]; +const MAILBOX_PROPERTIES = ['id', 'name', 'role', 'parentId', 'unreadEmails', 'totalEmails', 'sortOrder']; +const NEWEST_FIRST = [{ property: 'receivedAt', isAscending: false }]; + +/** A client for one signed-in account, or null when it has no stored credentials. */ +export async function openClient(registryAccountId: string): Promise { + const client = new JMAPClient(); + try { + return (await client.loadAccount(registryAccountId)) ? client : null; + } catch (err) { + // A revoked password must not log the user out from a widget: the app + // handles that when it next opens. Offline is expected; skip quietly. + if (err instanceof AuthenticationError || err instanceof NetworkError) return null; + throw err; + } +} + +function responseOf(res: { methodResponses: Array<[string, any, string]> }, callId: string): any { + const hit = res.methodResponses.find((r) => r[2] === callId && r[0] !== 'error'); + return hit ? hit[1] : null; +} + +export function toMailItem( + email: Email, + registryAccountId: string, + opts?: { jmapAccountId?: string; threadSize?: number }, +): MailItem { + const from = email.from?.[0]; + const name = from?.name?.trim() || from?.email || ''; + return { + id: email.id, + threadId: email.threadId, + accountId: registryAccountId, + ...(opts?.jmapAccountId ? { jmapAccountId: opts.jmapAccountId } : {}), + fromName: name, + fromEmail: from?.email ?? '', + initials: getEmailInitials(from?.name ?? '', from?.email) || '?', + color: normalizeHex(generateEmailAvatarColor(from?.name ?? '', from?.email)), + subject: email.subject ?? '', + preview: (email.preview ?? '').replace(/\s+/g, ' ').trim(), + receivedAt: Date.parse(email.receivedAt) || 0, + unread: !email.keywords?.$seen, + starred: !!email.keywords?.$flagged, + hasAttachment: !!email.hasAttachment, + threadSize: Math.max(1, opts?.threadSize ?? 1), + }; +} + +const ROLE_ORDER: FolderCount['role'][] = ['inbox', 'drafts', 'scheduled', 'sent', 'archive', 'junk', 'trash']; + +export function folderCounts(mailboxes: Mailbox[]): FolderCount[] { + const out: FolderCount[] = []; + for (const role of ROLE_ORDER) { + const box = role === 'junk' + ? findJunkMailbox(mailboxes) + : role === 'trash' + ? findTrashMailbox(mailboxes) + : role === 'archive' + ? findArchiveMailbox(mailboxes) + : mailboxes.find((m) => m.role === role); + if (box) out.push({ role, name: box.name, unread: box.unreadEmails ?? 0, total: box.totalEmails ?? 0 }); + } + return out; +} + +/** The people who wrote most among recent inbox mail, with their unread count. */ +export function rankPeople(emails: Email[], selfEmails: string[], limit = 4): Person[] { + const self = new Set(selfEmails.map((e) => e.toLowerCase())); + const byEmail = new Map(); + for (const email of emails) { + const from = email.from?.[0]; + const address = from?.email?.toLowerCase(); + if (!address || self.has(address) || /(^|[.+-])(no-?reply|notifications?|mailer-daemon)@/.test(address)) continue; + const entry = byEmail.get(address) ?? { + name: from?.name?.trim() || address, + email: address, + initials: getEmailInitials(from?.name ?? '', address) || '?', + color: normalizeHex(generateEmailAvatarColor(from?.name ?? '', address)), + unread: 0, + lastAt: 0, + count: 0, + }; + entry.count++; + if (!email.keywords?.$seen) entry.unread++; + entry.lastAt = Math.max(entry.lastAt, Date.parse(email.receivedAt) || 0); + byEmail.set(address, entry); + } + return [...byEmail.values()] + .sort((a, b) => b.count - a.count || b.lastAt - a.lastAt) + .slice(0, limit) + .map(({ count: _count, ...person }) => person); +} + +export interface MailSection { + mailboxes: Mailbox[]; + folders: FolderCount[]; + inbox: MailItem[]; + starred: MailItem[]; + starredCount: number; + drafts: MailItem[]; + draftCount: number; + favourites: Person[]; + attachments: AttachmentGroup[]; + tagCounts: Map; + quota: QuotaState | null; + vacation: VacationState | null; + selfEmails: string[]; +} + +/** + * Everything mail-related the widgets show for one account, in three + * requests: mailboxes, then the lists (inbox, starred, drafts, attachments, + * sender ranking, tag counts), then quota and vacation where supported. + */ +export async function fetchMailSection( + client: JMAPClient, + registryAccountId: string, + tagKeywords: string[], +): Promise { + const accountId = client.accountId; + + const boxesRes = await client.request([ + ['Mailbox/get', { accountId, properties: MAILBOX_PROPERTIES }, 'm'], + ['Identity/get', { accountId, properties: ['email'] }, 'i'], + ], [CAPABILITIES.CORE, CAPABILITIES.MAIL, CAPABILITIES.SUBMISSION]); + const mailboxes = (responseOf(boxesRes, 'm')?.list ?? []) as Mailbox[]; + const selfEmails = [ + client.username ?? '', + ...((responseOf(boxesRes, 'i')?.list ?? []) as Array<{ email?: string }>).map((i) => i.email ?? ''), + ].filter(Boolean); + + const inbox = mailboxes.find((m) => m.role === 'inbox'); + const drafts = mailboxes.find((m) => m.role === 'drafts'); + const excluded = [findTrashMailbox(mailboxes), findJunkMailbox(mailboxes)] + .filter((m): m is Mailbox => !!m) + .map((m) => m.id); + + const calls: Call[] = []; + const getList = (queryId: string, getId: string, properties = LIST_PROPERTIES) => { + calls.push(['Email/get', { + accountId, + '#ids': { resultOf: queryId, name: 'Email/query', path: '/ids' }, + properties, + }, getId]); + }; + if (inbox) { + calls.push(['Email/query', { + accountId, filter: { inMailbox: inbox.id }, sort: NEWEST_FIRST, collapseThreads: true, limit: 12, + }, 'qi']); + getList('qi', 'gi'); + calls.push(['Thread/get', { + accountId, '#ids': { resultOf: 'gi', name: 'Email/get', path: '/list/*/threadId' }, + }, 'ti']); + calls.push(['Email/query', { + accountId, filter: { inMailbox: inbox.id }, sort: NEWEST_FIRST, limit: 60, + }, 'qp']); + getList('qp', 'gp', ['id', 'from', 'keywords', 'receivedAt']); + calls.push(['Email/query', { + accountId, + filter: { operator: 'AND', conditions: [{ inMailbox: inbox.id }, { hasAttachment: true }] }, + // Read receipts and invitations also count as attachments to the + // server; ask for a few more and keep the ones with real files. + sort: NEWEST_FIRST, collapseThreads: true, limit: 10, + }, 'qa']); + calls.push(['Email/get', { + accountId, + '#ids': { resultOf: 'qa', name: 'Email/query', path: '/ids' }, + properties: ['id', 'from', 'receivedAt', 'attachments'], + bodyProperties: ['name', 'type', 'disposition', 'cid', 'size'], + }, 'ga']); + } + calls.push(['Email/query', { + accountId, + filter: excluded.length + ? { operator: 'AND', conditions: [{ hasKeyword: '$flagged' }, { inMailboxOtherThan: excluded }] } + : { hasKeyword: '$flagged' }, + sort: NEWEST_FIRST, collapseThreads: true, limit: 6, calculateTotal: true, + }, 'qs']); + getList('qs', 'gs'); + if (drafts) { + calls.push(['Email/query', { + accountId, filter: { inMailbox: drafts.id }, sort: NEWEST_FIRST, limit: 1, calculateTotal: true, + }, 'qd']); + getList('qd', 'gd'); + } + const listRes = await client.request(calls); + + const threadSizes = new Map( + ((responseOf(listRes, 'ti')?.list ?? []) as Array<{ id: string; emailIds: string[] }>) + .map((t) => [t.id, t.emailIds?.length ?? 1]), + ); + const inboxEmails = (responseOf(listRes, 'gi')?.list ?? []) as Email[]; + const inboxItems = inboxEmails + .map((e) => toMailItem(e, registryAccountId, { threadSize: threadSizes.get(e.threadId) })) + .sort((a, b) => b.receivedAt - a.receivedAt); + const starred = ((responseOf(listRes, 'gs')?.list ?? []) as Email[]) + .map((e) => toMailItem(e, registryAccountId)) + .sort((a, b) => b.receivedAt - a.receivedAt); + const draftItems = ((responseOf(listRes, 'gd')?.list ?? []) as Email[]).map((e) => toMailItem(e, registryAccountId)); + const attachments: AttachmentGroup[] = ((responseOf(listRes, 'ga')?.list ?? []) as Array; + }>) + .map((e) => ({ + emailId: e.id, + accountId: registryAccountId, + fromName: e.from?.[0]?.name || e.from?.[0]?.email || '', + receivedAt: Date.parse(e.receivedAt) || 0, + files: realAttachments(e.attachments as Attachment[] | undefined) + .map((a) => ({ name: a.name ?? '', type: a.type || 'application/octet-stream' })), + })) + .filter((g) => g.files.length > 0) + .sort((a, b) => b.receivedAt - a.receivedAt) + .slice(0, 3); + + const tagCounts = await fetchTagCounts(client, tagKeywords, excluded, registryAccountId); + const { quota, vacation } = await fetchAccountStatus(client); + + return { + mailboxes, + folders: folderCounts(mailboxes), + inbox: inboxItems, + starred, + starredCount: responseOf(listRes, 'qs')?.total ?? starred.length, + drafts: draftItems, + draftCount: responseOf(listRes, 'qd')?.total ?? draftItems.length, + favourites: rankPeople((responseOf(listRes, 'gp')?.list ?? []) as Email[], selfEmails), + attachments, + tagCounts, + quota, + vacation, + selfEmails, + }; +} + +async function fetchTagCounts( + client: JMAPClient, + keywords: string[], + excluded: string[], + registryAccountId: string, +): Promise { + const out: MailSection['tagCounts'] = new Map(); + const wanted = keywords.slice(0, 8); + if (wanted.length === 0) return out; + const accountId = client.accountId; + const base = (keyword: string) => + excluded.length ? [{ hasKeyword: keyword }, { inMailboxOtherThan: excluded }] : [{ hasKeyword: keyword }]; + const calls: Call[] = []; + wanted.forEach((keyword, i) => { + calls.push(['Email/query', { + accountId, + filter: { operator: 'AND', conditions: base(keyword) }, + sort: NEWEST_FIRST, limit: 1, calculateTotal: true, + }, `t${i}`]); + calls.push(['Email/get', { + accountId, + '#ids': { resultOf: `t${i}`, name: 'Email/query', path: '/ids' }, + properties: LIST_PROPERTIES, + }, `l${i}`]); + calls.push(['Email/query', { + accountId, + filter: { operator: 'AND', conditions: [...base(keyword), { notKeyword: '$seen' }] }, + limit: 0, calculateTotal: true, + }, `u${i}`]); + }); + const max = Math.max(3, client.getMaxCallsInRequest() - (client.getMaxCallsInRequest() % 3)); + for (let start = 0; start < calls.length; start += max) { + const res = await client.request(calls.slice(start, start + max)); + wanted.forEach((keyword, i) => { + const total = responseOf(res, `t${i}`)?.total; + if (total === undefined) return; + const latest = (responseOf(res, `l${i}`)?.list ?? [])[0] as Email | undefined; + out.set(keyword, { + total, + unread: responseOf(res, `u${i}`)?.total ?? 0, + latest: latest ? toMailItem(latest, registryAccountId) : undefined, + }); + }); + } + return out; +} + +async function fetchAccountStatus(client: JMAPClient): Promise<{ quota: QuotaState | null; vacation: VacationState | null }> { + const accountId = client.accountId; + const calls: Call[] = []; + const using: string[] = [CAPABILITIES.CORE]; + if (client.hasAccountCapability(CAPABILITIES.QUOTA)) { + calls.push(['Quota/get', { accountId }, 'q']); + using.push(CAPABILITIES.QUOTA); + } + if (client.hasAccountCapability(CAPABILITIES.VACATION)) { + calls.push(['VacationResponse/get', { accountId, ids: ['singleton'] }, 'v']); + using.push(CAPABILITIES.MAIL, CAPABILITIES.VACATION); + } + if (calls.length === 0) return { quota: null, vacation: null }; + try { + const res = await client.request(calls, using); + const quotas = (responseOf(res, 'q')?.list ?? []) as Array<{ + resourceType?: string; scope?: string; used?: number; hardLimit?: number; limit?: number; types?: string[]; + }>; + const coversMail = (q: (typeof quotas)[number]) => !q.types?.length || q.types.some((t) => t === 'Email' || t === 'Mail'); + const mailQuota = quotas.find((q) => q.resourceType === 'octets' && coversMail(q)) + ?? quotas.find((q) => q.resourceType === 'mail' || q.scope === 'mail'); + const limit = mailQuota ? mailQuota.hardLimit ?? mailQuota.limit ?? 0 : 0; + const v = (responseOf(res, 'v')?.list ?? [])[0] as + | { isEnabled?: boolean; fromDate?: string | null; toDate?: string | null; subject?: string | null } + | undefined; + return { + quota: mailQuota && limit > 0 ? { used: mailQuota.used ?? 0, limit } : null, + vacation: v + ? { + enabled: !!v.isEnabled, + ...(v.fromDate ? { from: Date.parse(v.fromDate) } : {}), + ...(v.toDate ? { to: Date.parse(v.toDate) } : {}), + ...(v.subject ? { subject: v.subject } : {}), + } + : null, + }; + } catch { + return { quota: null, vacation: null }; + } +} + +/** Newest inbox messages of one account, for the all-accounts widget. */ +export async function fetchInboxPreview(client: JMAPClient, registryAccountId: string, limit = 5): Promise<{ + items: MailItem[]; + unread: number; +}> { + const accountId = client.accountId; + const boxes = await client.request([ + ['Mailbox/query', { accountId, filter: { role: 'inbox' } }, 'mq'], + ['Mailbox/get', { + accountId, + '#ids': { resultOf: 'mq', name: 'Mailbox/query', path: '/ids' }, + properties: MAILBOX_PROPERTIES, + }, 'mg'], + ]); + const inbox = (responseOf(boxes, 'mg')?.list ?? [])[0] as Mailbox | undefined; + if (!inbox) return { items: [], unread: 0 }; + const res = await client.request([ + ['Email/query', { accountId, filter: { inMailbox: inbox.id }, sort: NEWEST_FIRST, collapseThreads: true, limit }, 'q'], + ['Email/get', { accountId, '#ids': { resultOf: 'q', name: 'Email/query', path: '/ids' }, properties: LIST_PROPERTIES }, 'g'], + ]); + return { + items: ((responseOf(res, 'g')?.list ?? []) as Email[]).map((e) => toMailItem(e, registryAccountId)), + unread: inbox.unreadEmails ?? 0, + }; +} + +// ── Actions ────────────────────────────────────────────────────────────── + +function emailAccount(client: JMAPClient, jmapAccountId?: string): string { + return jmapAccountId ?? client.accountId; +} + +async function setEmail(client: JMAPClient, accountId: string, update: Record>): Promise { + const res = await client.request([['Email/set', { accountId, update }, 's']]); + const body = responseOf(res, 's'); + return !!body && !body.notUpdated; +} + +export async function markRead(client: JMAPClient, emailId: string, jmapAccountId?: string): Promise { + return setEmail(client, emailAccount(client, jmapAccountId), { [emailId]: { 'keywords/$seen': true } }); +} + +/** + * Move a message out of its mailboxes into the archive (or trash). Reads the + * message's current mailboxes first so the patch only drops those. + */ +export async function moveTo( + client: JMAPClient, + emailId: string, + target: 'archive' | 'trash', + jmapAccountId?: string, +): Promise { + const accountId = emailAccount(client, jmapAccountId); + const res = await client.request([ + ['Mailbox/get', { accountId, properties: MAILBOX_PROPERTIES }, 'm'], + ['Email/get', { accountId, ids: [emailId], properties: ['id', 'mailboxIds'] }, 'e'], + ]); + const mailboxes = (responseOf(res, 'm')?.list ?? []) as Mailbox[]; + const email = (responseOf(res, 'e')?.list ?? [])[0] as Pick | undefined; + const destination = target === 'archive' ? findArchiveMailbox(mailboxes) : findTrashMailbox(mailboxes); + if (!email || !destination) return false; + const patch: Record = { [`mailboxIds/${destination.id}`]: true }; + for (const id of Object.keys(email.mailboxIds ?? {})) { + if (id !== destination.id) patch[`mailboxIds/${id}`] = null; + } + if (target === 'trash') patch['keywords/$seen'] = true; + return setEmail(client, accountId, { [emailId]: patch }); +} + +export async function rsvp( + client: JMAPClient, + eventId: string, + participantId: string, + status: 'accepted' | 'tentative' | 'declined', + jmapAccountId?: string, +): Promise { + const accountId = jmapAccountId ?? client.getPrimaryAccountId(CAPABILITIES.CALENDARS); + const res = await client.request([ + ['CalendarEvent/set', { + accountId, + update: { [eventId]: { [`participants/${participantId}/participationStatus`]: status } }, + sendSchedulingMessages: true, + }, 's'], + ], [CAPABILITIES.CORE, CAPABILITIES.CALENDARS]); + const body = responseOf(res, 's'); + return !!body && !body.notUpdated; +} + +/** Same flip as calendar-store's toggleTaskComplete; progressUpdated is left to the server. */ +export async function setTaskDone( + client: JMAPClient, + taskId: string, + done: boolean, + jmapAccountId?: string, +): Promise { + const accountId = jmapAccountId ?? client.getPrimaryAccountId(CAPABILITIES.CALENDARS); + const res = await client.request([ + ['CalendarEvent/set', { + accountId, + update: { + [taskId]: done + ? { progress: 'completed', percentComplete: 100 } + : { progress: 'needs-action', percentComplete: 0 }, + }, + }, 's'], + ], [CAPABILITIES.CORE, CAPABILITIES.CALENDARS]); + const body = responseOf(res, 's'); + return !!body && !body.notUpdated; +} diff --git a/src/widgets/layouts/calendar.tsx b/src/widgets/layouts/calendar.tsx new file mode 100644 index 00000000..ced4a0fe --- /dev/null +++ b/src/widgets/layouts/calendar.tsx @@ -0,0 +1,1061 @@ +// Board "Calendar": the agenda, this week, the month grid, today, the next +// event, the date with the next two events and the up-next countdown. They +// copy the webmail's agenda, week and month views as the mockup drew them. +// +// RemoteViews have no absolute positioning, so everything that sits at a +// computed place (week blocks, the now line) is built from spacers whose dp +// heights come from the widget size the launcher reports. + +import React from 'react'; +import { FlexWidget, OverlapWidget, SvgWidget, TextWidget, type ColorProp } from 'react-native-android-widget'; +import { links, open } from '../clicks'; +import { + agendaDays, + busyBlocks, + daysUntil, + eventsOnDay, + monthGrid, + nextEvent, + startOfWeek, + type AgendaDay, + type BusyBlock, + type MonthCell, +} from '../derive'; +import { addDays, sameDay, startOfDay, type Fmt } from '../format'; +import { ring, type IconName } from '../icons'; +import { AGENDA_ROW_HEIGHT, AgendaRow, DAY_BAND_HEIGHT, DayBand } from '../parts'; +import { Avatar, Button, Dot, EventChip, Fab, Header, Icon, Placeholder, Spacer, Surface, Txt } from '../primitives'; +import type { EventItem, WidgetSnapshot } from '../snapshot'; +import { chipBackground, normalizeHex, type WidgetPalette } from '../theme'; +import type { Layout } from './types'; + +/** Surface's 1dp frame; Android adds a border to the padding, so it eats space. */ +const FRAME = 1; +const HOUR = 3600000; +const GRID_START_HOUR = 8; +const GRID_END_HOUR = 18; + +// --------------------------------------------------------------------------- +// Shared helpers + +function unsupportedText(f: Fmt): string { + return f.t('widgets.calendar.unsupported', "Calendar isn't available on this server"); +} + +function nothingText(f: Fmt): string { + return f.t('widgets.calendar.nothing_planned', 'Nothing on the calendar'); +} + +function Unsupported({ p, f }: { p: WidgetPalette; f: Fmt }) { + return ( + + + + ); +} + +function NothingPlanned({ p, f }: { p: WidgetPalette; f: Fmt }) { + return ( + + + + ); +} + +/** Appends an alpha byte to a `#rrggbb` palette colour; other forms pass through. */ +function withAlpha(color: ColorProp, alpha: string): ColorProp { + return /^#[0-9a-f]{6}$/i.test(color) ? (`${color}${alpha}` as ColorProp) : color; +} + +function upper(text: string, locale: string): string { + try { + return text.toLocaleUpperCase(locale); + } catch { + return text.toUpperCase(); + } +} + +function capitalize(text: string, locale: string): string { + if (!text) return text; + return upper(text.charAt(0), locale) + text.slice(1); +} + +function eventTitle(f: Fmt, e: EventItem): string { + return e.title || f.t('widgets.calendar.untitled', '(no title)'); +} + +function timeRange(f: Fmt, e: EventItem): string { + return `${f.time(e.start)} – ${f.time(e.end)}`; +} + +/** Nothing for today, the weekday for the coming six days, a date after that. */ +function dayPrefix(f: Fmt, ms: number, now: number): string { + const diff = daysUntil(ms, now); + if (diff <= 0) return ''; + return diff < 7 ? f.weekdayShort(ms) : f.dayMonth(ms); +} + +/** "Tue 09:30 – 10:00" for another day, the bare range for today. */ +function whenRange(f: Fmt, e: EventItem, now: number): string { + const prefix = dayPrefix(f, e.start, now); + return prefix ? `${prefix} ${timeRange(f, e)}` : timeRange(f, e); +} + +/** How the month view's chips label an event: "09:30", "Tue 10:00", "All day". */ +function chipTime(f: Fmt, e: EventItem, now: number): string { + const today = startOfDay(now); + const prefix = dayPrefix(f, Math.max(e.start, today), now); + if (e.allDay) return prefix || f.t('widgets.calendar.all_day', 'All day'); + if (e.start < today) return f.t('widgets.calendar.now', 'Now'); + return prefix ? `${prefix} ${f.time(e.start)}` : f.time(e.start); +} + +/** "Today", "Tomorrow", the weekday this week, else weekday and date. */ +function dayLabel(f: Fmt, dayStart: number, now: number): string { + const diff = daysUntil(dayStart, now); + if (diff === 0) return f.t('widgets.calendar.today', 'Today'); + if (diff === 1) return f.t('widgets.calendar.tomorrow', 'Tomorrow'); + return diff > 1 && diff < 7 ? f.weekdayLong(dayStart) : f.weekdayDayMonth(dayStart); +} + +/** + * Events still ahead or running, soonest first, all-day events leading their + * day. An all-day event that began before today is not "next" any more, so a + * week-long trip does not hold the top spot all week. + */ +function upcoming(events: EventItem[], now: number): EventItem[] { + const today = startOfDay(now); + const day = (e: EventItem) => startOfDay(Math.max(e.start, today)); + return events + .filter((e) => (e.allDay ? e.start >= today : e.end > now)) + .sort((a, b) => day(a) - day(b) || (a.allDay === b.allDay ? a.start - b.start : a.allDay ? -1 : 1)); +} + +/** Video link or place, as the agenda row shows it. */ +function placeOf(f: Fmt, e: EventItem): { icon: IconName; text: string } | null { + if (e.videoUrl) return { icon: 'video', text: e.videoName || f.t('widgets.calendar.video_call', 'Video call') }; + if (e.location) return { icon: 'mapPin', text: e.location }; + return null; +} + +/** The signed-in addresses, where an account label is one. */ +function selfAddresses(s: WidgetSnapshot): Set { + return new Set( + s.accounts.map((a) => a.label.trim().toLowerCase()).filter((label) => label.includes('@')), + ); +} + +function monthYear(f: Fmt, ms: number): string { + try { + return new Intl.DateTimeFormat(f.locale, { month: 'long', year: 'numeric' }).format(new Date(ms)); + } catch { + return `${f.monthLong(ms)} ${new Date(ms).getFullYear()}`; + } +} + +// --------------------------------------------------------------------------- +// Agenda (4x4, down to 3x2) + +const AGENDA_FOOTER_HEIGHT = 30; + +interface AgendaPlan { + sections: AgendaDay[]; + /** The first day with rows that did not fit, summarised in the footer. */ + hidden: AgendaDay | null; +} + +function planAgenda(days: AgendaDay[], room: number): AgendaPlan { + const full = days.reduce((h, d) => h + DAY_BAND_HEIGHT + d.events.length * AGENDA_ROW_HEIGHT, 0); + const budget = full <= room ? room : room - AGENDA_FOOTER_HEIGHT; + const sections: AgendaDay[] = []; + let used = 0; + for (const day of days) { + const fit = Math.floor((budget - used - DAY_BAND_HEIGHT) / AGENDA_ROW_HEIGHT); + const take = Math.max(0, Math.min(day.events.length, fit)); + if (take > 0) { + sections.push({ dayStart: day.dayStart, events: day.events.slice(0, take) }); + used += DAY_BAND_HEIGHT + take * AGENDA_ROW_HEIGHT; + } + if (take < day.events.length) { + return { sections, hidden: { dayStart: day.dayStart, events: day.events.slice(take) } }; + } + } + return { sections, hidden: null }; +} + +export const AgendaLayout: Layout = ({ s, p, f, now, height }) => { + if (!s.calendar.supported) return ; + const compact = height < 220; + const headerHeight = compact ? 38 : 44; + const header = ( +

} + /> + ); + const days = agendaDays(s.calendar.events, now, 14); + if (days.length === 0) { + return ( + + {header} + + + ); + } + // Header bar plus its 1dp rule. + const room = height - 2 * FRAME - headerHeight - 1; + const { sections, hidden } = planAgenda(days, room); + const rows: React.JSX.Element[] = []; + sections.forEach((day, d) => { + rows.push(); + day.events.forEach((e, i) => { + const last = !hidden && d === sections.length - 1 && i === day.events.length - 1; + rows.push(); + }); + }); + return ( + + {header} + {rows} + {hidden ? ( + + eventTitle(f, e)).join(', '), + })} + color={p.muted} + size={13} + /> + + ) : null} + + ); +}; + +// --------------------------------------------------------------------------- +// This week (4x2) + +const WEEK_PAD = 10; +const WEEK_LABEL_HEIGHT = 16; +const WEEK_DAY_SIZE = 24; +const WEEK_STRIP_HEIGHT = 20; +const WEEK_GAP = 4; +const WEEK_BLOCK_MIN = 4; +const WEEK_MAX_LANES = 3; +const WEEK_LANE_GAP = 1; + +interface StripSegment { + span: number; + event: EventItem | null; +} + +/** All-day events across the week; a multi-day event becomes one wide chip. */ +function allDaySegments(events: EventItem[], days: number[]): StripSegment[] { + const segments: StripSegment[] = []; + let previousId: string | null = null; + for (const day of days) { + const list = eventsOnDay(events, day).filter((e) => e.allDay); + const keepId: string | null = previousId; + const event: EventItem | null = list.find((e) => e.id === keepId) ?? list[0] ?? null; + const last = segments[segments.length - 1]; + if (last && (last.event?.id ?? null) === (event?.id ?? null)) last.span += 1; + else segments.push({ span: 1, event }); + previousId = event?.id ?? null; + } + return segments; +} + +interface PlacedBlock { + /** dp from the top of the grid. */ + top: number; + height: number; + color: string; +} + +/** + * Stacks one day's busy blocks into side-by-side lanes, the way the week view + * splits overlapping events. Once the lanes run out, a block starts where the + * lane that frees up first ends. + */ +function laneBlocks(blocks: BusyBlock[], gridHeight: number): PlacedBlock[][] { + const lanes: Array<{ end: number; items: PlacedBlock[] }> = []; + for (const b of [...blocks].sort((x, y) => x.from - y.from || y.to - x.to)) { + let top = b.from * gridHeight; + let lane = lanes.find((l) => l.end <= top + 0.5); + if (!lane && lanes.length < WEEK_MAX_LANES) { + lane = { end: 0, items: [] }; + lanes.push(lane); + } + if (!lane) { + lane = lanes.reduce((a, c) => (c.end < a.end ? c : a)); + top = lane.end; + } + top = Math.max(top, lane.end); + const bottom = Math.min(gridHeight, Math.max(b.to * gridHeight, top + WEEK_BLOCK_MIN)); + if (bottom - top < WEEK_BLOCK_MIN) top = Math.max(lane.end, bottom - WEEK_BLOCK_MIN); + if (bottom - top <= 0) continue; + lane.items.push({ top, height: bottom - top, color: b.color }); + lane.end = bottom; + } + return lanes.map((l) => l.items); +} + +function BlockLanes({ lanes, width, height }: { lanes: PlacedBlock[][]; width: number; height: number }) { + const count = Math.max(1, lanes.length); + const laneWidth = Math.max(1, (width - 4 - (count - 1) * WEEK_LANE_GAP) / count); + const columns: React.JSX.Element[] = []; + lanes.forEach((items, l) => { + if (l > 0) columns.push(); + const parts: React.JSX.Element[] = []; + let cursor = 0; + items.forEach((b, j) => { + if (b.top > cursor) parts.push(); + const color = normalizeHex(b.color); + parts.push( + , + ); + cursor = b.top + b.height; + }); + columns.push( + + {parts} + , + ); + }); + return ( + + {columns} + + ); +} + +/** The red now line with its dot, `top` dp down the grid. */ +function NowLine({ p, top, width, height }: { p: WidgetPalette; top: number; width: number; height: number }) { + const offset = Math.max(0, Math.min(height - 6, top - 3)); + return ( + + + + + + + + ); +} + +export const WeekLayout: Layout = ({ s, p, f, now, width, height }) => { + if (!s.calendar.supported) return ; + const events = s.calendar.events; + const first = startOfWeek(now, s.weekStart); + const days = Array.from({ length: 7 }, (_, i) => addDays(first, i)); + const colWidth = (width - 2 * FRAME - 2 * WEEK_PAD) / 7; + const segments = allDaySegments(events, days); + const strip = segments.some((seg) => seg.event !== null); + const gridHeight = Math.max( + 0, + height - 2 * FRAME - WEEK_PAD - WEEK_LABEL_HEIGHT - 2 - WEEK_DAY_SIZE - WEEK_GAP + - (strip ? WEEK_STRIP_HEIGHT + WEEK_GAP : 0) - 1, + ); + const windowStart = startOfDay(now) + GRID_START_HOUR * HOUR; + const nowFraction = (now - windowStart) / ((GRID_END_HOUR - GRID_START_HOUR) * HOUR); + + const headCells = days.map((day) => { + const isToday = sameDay(day, now); + return ( + + + + {isToday ? ( + + + + ) : ( + + + + )} + + ); + }); + + const stripCells = segments.map((seg, i) => { + const e = seg.event; + const color = e ? normalizeHex(e.color) : null; + return ( + + {e && color ? ( + + + + ) : null} + + ); + }); + + const gridColumns = days.map((day, i) => { + const ruled = i < days.length - 1; + const inner = colWidth - (ruled ? 1 : 0); + const lanes = laneBlocks(busyBlocks(events, day, GRID_START_HOUR, GRID_END_HOUR), gridHeight); + const blocks = ; + const showNow = sameDay(day, now) && nowFraction >= 0 && nowFraction <= 1; + return ( + + {showNow ? ( + + {blocks} + + + ) : blocks} + + ); + }); + + return ( + + {headCells} + + {strip ? ( + {stripCells} + ) : null} + {strip ? : null} + + {gridColumns} + + + ); +}; + +// --------------------------------------------------------------------------- +// Month (4x4) + +const MONTH_PAD = 8; +const MONTH_LABEL_HEIGHT = 18; +const MONTH_GRID_TOP = 4; +const MONTH_CHIP_HEIGHT = 24; +const MONTH_CELL_MIN = 30; +const MONTH_CELL_MAX = 48; +/** Rule above the chips: 6dp margin, 1dp border, 6dp padding. */ +const MONTH_CHIPS_TOP = 13; +const MONTH_CHIPS_BOTTOM = 8; + +function NavButton({ p, iconName }: { p: WidgetPalette; iconName: IconName }) { + return ( + + + + ); +} + +function MonthDay({ + p, + cell, + width, + height, + circle, + showDots, +}: { + p: WidgetPalette; + cell: MonthCell; + width: number; + height: number; + circle: number; + showDots: boolean; +}) { + const color = cell.isToday ? p.primaryFg : cell.inMonth ? p.fg : withAlpha(p.muted, 'b3'); + const dots: React.JSX.Element[] = []; + if (showDots) { + cell.dots.forEach((c, i) => { + if (i > 0) dots.push(); + dots.push(); + }); + } + return ( + + + = 22 ? 14 : 13, fontWeight: cell.isToday ? '700' : '400' }} + /> + + {dots.length > 0 ? : null} + {dots.length > 0 ? {dots} : null} + + ); +} + +export const MonthLayout: Layout = ({ s, p, f, now, width, height }) => { + if (!s.calendar.supported) return ; + const weeks = monthGrid(s.calendar.events, now, s.weekStart); + const next = upcoming(s.calendar.events, now); + const headerHeight = height >= 340 ? 44 : 38; + const cellWidth = (width - 2 * FRAME - 2 * MONTH_PAD) / 7; + const chipsHeight = (n: number) => + n === 0 ? 0 : MONTH_CHIPS_TOP + n * MONTH_CHIP_HEIGHT + (n - 1) * 4 + MONTH_CHIPS_BOTTOM; + const gridRoom = (n: number) => + height - 2 * FRAME - headerHeight - MONTH_LABEL_HEIGHT - MONTH_GRID_TOP - chipsHeight(n); + // Two chips when the weeks still get a comfortable row, else one, else none. + let chips = Math.min(2, next.length); + while (chips > 0 && gridRoom(chips) / weeks.length < MONTH_CELL_MIN) chips -= 1; + const cellHeight = Math.max(18, Math.min(MONTH_CELL_MAX, Math.floor(gridRoom(chips) / weeks.length))); + const circle = Math.min(26, Math.max(16, cellHeight - 12)); + const showDots = cellHeight - circle >= 8; + + const chipRows: React.JSX.Element[] = []; + next.slice(0, chips).forEach((e, i) => { + if (i > 0) chipRows.push(); + chipRows.push( + , + ); + }); + + return ( + + + + + + + + + + + {weeks[0].map((cell) => ( + + + + ))} + + + {weeks.map((week) => ( + + {week.map((cell) => ( + + ))} + + ))} + {chipRows.length > 0 ? ( + + {chipRows} + + ) : null} + + ); +}; + +// --------------------------------------------------------------------------- +// Today (4x2) + +const TODAY_PAD = 14; +const TODAY_CHIP = 24; +const TODAY_GAP = 4; +const TODAY_LINE = 16; +/** 6dp extra space, the "Tomorrow" label and one chip, with their gaps. */ +const TOMORROW_BLOCK = 6 + TODAY_GAP + TODAY_LINE + TODAY_GAP + TODAY_CHIP; + +function chipLabel(f: Fmt, e: EventItem): string { + return e.allDay ? f.t('widgets.calendar.all_day', 'All day') : f.time(e.start); +} + +function TodayColumn({ + s, + p, + f, + now, + height, +}: { + s: WidgetSnapshot; + p: WidgetPalette; + f: Fmt; + now: number; + height: number; +}) { + if (!s.calendar.supported) { + return ( + + + + ); + } + const events = s.calendar.events; + const today = startOfDay(now); + const todayList = eventsOnDay(events, today).filter((e) => e.allDay || e.end > now); + const tomorrowList = eventsOnDay(events, addDays(today, 1)); + + // The "N more this week" line is always reserved; chips share the rest. + const room = height - 2 * FRAME - 2 * TODAY_PAD - TODAY_LINE; + const row = TODAY_CHIP + TODAY_GAP; + let withTomorrow = tomorrowList.length > 0; + let slots = Math.floor((room - (withTomorrow ? TOMORROW_BLOCK : 0) + TODAY_GAP) / row); + if (slots < 1 && withTomorrow && todayList.length > 0) { + withTomorrow = false; + slots = Math.floor((room + TODAY_GAP) / row); + } + const shown = todayList.slice(0, Math.max(1, slots)); + + const shownIds = new Set(shown.map((e) => e.id)); + if (withTomorrow) shownIds.add(tomorrowList[0].id); + const weekEnd = addDays(startOfWeek(now, s.weekStart), 7); + const rest = new Set(); + for (let day = today; day < weekEnd; day = addDays(day, 1)) { + for (const e of eventsOnDay(events, day)) { + if (day === today && !e.allDay && e.end <= now) continue; + if (!shownIds.has(e.id)) rest.add(e.id); + } + } + const more = rest.size; + + if (todayList.length === 0 && tomorrowList.length === 0 && more === 0) { + return ( + + + + ); + } + + const items: React.JSX.Element[] = []; + if (shown.length === 0) { + items.push( + , + ); + } + shown.forEach((e, i) => { + if (i > 0) items.push(); + items.push( + , + ); + }); + if (withTomorrow) { + const e = tomorrowList[0]; + items.push(); + items.push( + , + ); + items.push(); + items.push( + , + ); + } + return ( + + {items} + + {more > 0 ? ( + + ) : null} + + ); +} + +export const TodayEventsLayout: Layout = ({ s, p, f, now, height }) => { + // The date block is ~108dp tall at 40sp; a short 4x2 gets a smaller number + // and, if still tight, loses the month line. + const room = height - 2 * FRAME - 2 * TODAY_PAD; + const big = room >= 108 ? 40 : 32; + const showMonth = room >= 3 * 18 + Math.ceil(big * 1.33); + return ( + + + + + + {showMonth ? : null} + + + + + ); +}; + +// --------------------------------------------------------------------------- +// Next event (2x2) + +export const NextEventLayout: Layout = ({ s, p, f, now, height }) => { + if (!s.calendar.supported) return ; + const next = nextEvent(s.calendar.events, now); + if (!next) return ; + const { event: e, running } = next; + const when = running ? f.t('widgets.calendar.now', 'Now') : capitalize(f.relative(e.start, now), f.locale); + // Status line, gap, one title line and the time range always show; then the + // place, the calendar and a second title line, as long as they fit. + const room = height - 2 * FRAME - 28; + let used = 16 + 6 + 22 + 18; + const place = placeOf(f, e); + const showPlace = !!place && used + 16 <= room; + if (showPlace) used += 16; + const showCalendar = !!e.calendarName && used + 16 + (showPlace ? 2 : 0) <= room; + if (showCalendar) used += 16 + (showPlace ? 2 : 0); + const titleLines = used + 22 <= room ? 2 : 1; + return ( + + + + + + + + + + + {showPlace && place ? ( + + + + + + ) : null} + {showPlace && showCalendar ? : null} + {showCalendar ? ( + + + + + + ) : null} + + ); +}; + +// --------------------------------------------------------------------------- +// Date and next two (2x2) + +const DATE_PAD = 12; +const DATE_CIRCLE = 36; +const DATE_CHIP = 36; + +function TwoLineChip({ f, e, now }: { f: Fmt; e: EventItem; now: number }) { + const color = normalizeHex(e.color); + return ( + + + + + ); +} + +export const DateNextLayout: Layout = ({ s, p, f, now, height }) => { + const room = height - 2 * FRAME - 2 * DATE_PAD - DATE_CIRCLE - 8; + const count = room >= 2 * DATE_CHIP + 4 ? 2 : 1; + const next = s.calendar.supported ? upcoming(s.calendar.events, now).slice(0, count) : []; + const chips: React.JSX.Element[] = []; + next.forEach((e, i) => { + if (i > 0) chips.push(); + chips.push(); + }); + return ( + + + + + + + + + + + + + {chips.length > 0 ? chips : ( + + )} + + ); +}; + +// --------------------------------------------------------------------------- +// Up next (4x2) + +interface Countdown { + value: string; + unit: string; + /** Share of the ring to fill: minutes to go out of an hour. */ + fraction: number; +} + +function countdown(f: Fmt, e: EventItem, now: number, running: boolean): Countdown { + const minutes = Math.round((e.start - now) / 60000); + if (running || minutes <= 0) return { value: f.t('widgets.calendar.now', 'Now'), unit: '', fraction: 0 }; + if (minutes < 60) { + return { + value: String(minutes), + unit: f.t('widgets.calendar.unit_minutes', '{count, plural, one {min} other {min}}', { count: minutes }), + fraction: minutes / 60, + }; + } + const hours = Math.round(minutes / 60); + if (hours < 24) { + return { + value: String(hours), + unit: f.t('widgets.calendar.unit_hours', '{count, plural, one {hour} other {hours}}', { count: hours }), + fraction: 1, + }; + } + const days = daysUntil(e.start, now); + return { + value: String(days), + unit: f.t('widgets.calendar.unit_days', '{count, plural, one {day} other {days}}', { count: days }), + fraction: 1, + }; +} + +function People({ p, e }: { p: WidgetPalette; e: EventItem }) { + const faces = e.participants.slice(0, 3); + return ( + + {faces.map((person, i) => ( + + + + ))} + + + + + + ); +} + +export const UpNextLayout: Layout = ({ s, p, f, now }) => { + if (!s.calendar.supported) return ; + const next = nextEvent(s.calendar.events, now); + if (!next) return ; + const { event: e, running } = next; + const title = eventTitle(f, e); + const left = countdown(f, e, now, running); + const meta = [whenRange(f, e, now), e.calendarName].filter(Boolean).join(' · '); + + const self = selfAddresses(s); + const recipients = Array.from( + new Set(e.participants.map((x) => x.email.trim()).filter((x) => x && !self.has(x.toLowerCase()))), + ); + const late = links.compose({ + to: recipients.length > 0 ? recipients.join(',') : undefined, + subject: f.t('widgets.calendar.running_late_subject', 'Running late: {title}', { title }), + body: f.t('widgets.calendar.running_late_body', "I'm running a few minutes late for {title}.", { title }), + }); + const joinLabel = e.videoName && e.videoName.length <= 12 + ? f.t('widgets.calendar.join_named', 'Join {name}', { name: e.videoName }) + : f.t('widgets.calendar.join', 'Join'); + + return ( + + + + + + 3 ? 13 : 18, fontWeight: '700' }} + /> + {left.unit ? ( + + ) : null} + + + + + + + + + + + + {e.participants.length > 0 ? : null} + {e.participants.length > 0 ? : null} + + + + + {e.videoUrl ? ( +