diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-10 12:56:26 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-10 12:56:26 +0200 |
| commit | a0793dd37030f7213ecb07a018b11e6a8adf9238 (patch) | |
| tree | 5de1046eae9b3747ac97a81652590fb6af99622b /packages/meshbay-android/app/src/main/assets | |
| parent | 044c585f73cfd548e300859e89eaf5dcb40d3d3c (diff) | |
| download | meshbay-a0793dd37030f7213ecb07a018b11e6a8adf9238.tar.gz | |
feat(android): back the phone's contacts up to a group of one's own
A Contacts backup section on the Android Sync page sends a dated .vcf into
<folder>/<account>-contacts once a day when the address book changed, only
to a group the account is alone in, checked again at every run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-android/app/src/main/assets')
| -rw-r--r-- | packages/meshbay-android/app/src/main/assets/bridge/meshbay-bridge.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/packages/meshbay-android/app/src/main/assets/bridge/meshbay-bridge.js b/packages/meshbay-android/app/src/main/assets/bridge/meshbay-bridge.js index edfdb11..8aba36d 100644 --- a/packages/meshbay-android/app/src/main/assets/bridge/meshbay-bridge.js +++ b/packages/meshbay-android/app/src/main/assets/bridge/meshbay-bridge.js @@ -213,6 +213,19 @@ keepAlive: (on, text) => call('photosync:keep-alive', on === true, text || ''), }, + // Contacts backup (§9.13): the phone writes the address book into one + // file, served at /phonesync/<token> on this origin, when it changed since + // the last one sent. The page decides when and does the sending. + contactSync: { + status: () => call('contactsync:status'), + permit: () => call('contactsync:permit'), + configure: (settings) => call('contactsync:configure', settings || null), + plan: () => call('contactsync:plan'), + sent: (token, dir, name) => call('contactsync:sent', token, dir, name), + completed: () => call('contactsync:completed'), + failed: (code, text) => call('contactsync:failed', code, text), + }, + // Where downloads go, chosen once. A display name comes back, never a URI. folder: { choose: () => call('folder:choose'), |