IP Library Granted Patent US 10,623,367
Granted Patent B2
US 10,623,367 · App. 15/358,053 · Granted Apr 14, 2020

Managing drafts of electronic documents across client devices

Inventors: Adam Cue (San Francisco, CA); Tim Van Damme (San Francisco, CA); George Milton Underwood, IV (Palo Alto, CA); Sean Beausoleil (Mountain View, CA); Belinda Preno (San Francisco, CA); Steven Kabbes (Mountain View, CA); David Barshow (Menlo Park, CA); Anthony DeVincenzi (San Francisco, CA)
Assignee: Dropbox, Inc.
H04L51/34G06F16/273G06Q10/10G06Q10/107H04L29/08072H04L51/00H04L51/046H04L51/22H04L67/1095H04L69/329H04W4/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,623,367
App. No.
15/358,053
Granted
Apr 14, 2020
Kind
B2
Abstract

Techniques are described for managing drafts of an electronic document (e.g., an electronic note, an electronic message, an electronic calendar invitation, and/or other types of electronic documents) between client devices. Such an electronic document can be composed using different clients, such that composing the document can be continued using different clients. A draft of an electronic document can be stored by clients and/or the message management service as a metadata. A message management service can be implemented as an intermediary computing system to manage a current version of a draft in local storage when a draft is composed using a client device. The message management service can manage version information of a draft that is exists, if any, on each of the client devices. The message management service can synchronize a draft of the message with client devices when a draft is composed using a client device.

Claims (42)

1. A method comprising:

receiving, by a computer system, from a first device, a first data structure maintained by the first device and a first draft of a message composed using the first device, wherein the first data structure includes first version information indicating a first draft version stored by the first device;

storing the first draft of the message as a current version of the message, wherein the current version is stored as a current draft of the message for a plurality of devices including the first device and a second device;

generating a central data structure based on the first data structure, wherein the central data structure is maintained by the computer system and includes the first version information and current version information indicated by the current version associated with the current draft;

synchronizing the current version of the message by sending, to the first device and the second device, the current version information and the current draft;

receiving, from the second device, a second data structure maintained by the second device and a second draft of the message, the second data structure includes second version information indicating a second draft version stored by the second device and the current draft version, the second draft composed by modifying the current draft using the second device;

comparing the current data structure to the second data structure to determine whether to update the current draft based on the second draft, wherein comparing the current data structure to the second data structure includes determining whether the current draft is different from the second draft and determining whether the current version information in the current data structure matches the current version information in the second data structure; and

upon determining to update the current draft based on the second draft:

updating the current data structure to reflect the second version information by incrementing the current version information; and

updating the stored current draft based on the second draft.

2. The method of claim 1 , wherein the first data structure, the current data structure, and the second data structure are each stored using a data structure that includes version information indicating a version associated with a draft of a message for each device of the plurality devices, and wherein the version of the draft of the message for a device corresponds to a value, the value being adjusted based on composing the draft of the message.

3. The method of claim 1 , wherein a draft of a message is an electronic document.

4. The method of claim 1 , wherein the message is an email message.

5. The method of claim 3 , wherein the electronic document is an electronic note.

6. The method of claim 3 , wherein the electronic document is an electronic calendar invitation.

7. The method of claim 3 , wherein the electronic document is an electronic message.

8. The method of claim 4 , wherein a draft of the message includes a body of the message and information indicating a recipient of the message.

9. The method of claim 1 , wherein the current draft is not stored in association with information identifying a messaging account.

10. The method of claim 1 , further comprising:

receiving, from the first device, a request to send the message, wherein the request identifies a sender of the message.

11. The method of claim 10 , further comprising:

identifying a messaging account associated with the sender of the message; and

sending the current draft of the message stored by the computer system, wherein the current draft is sent, from the identified messaging account, to an electronic address associated with a recipient of the message.

12. The method of claim 1 , further comprising:

sending the current draft of the message to a content management service for storage.

13. A non-transitory computer-readable medium including one or more sequences of instructions that, when executed by one or more processors, cause:

receiving, by a computer system, from a first device, a first data structure maintained by the first device and a first draft of a message composed using the first device, wherein the first data structure includes first version information indicating a first draft version stored by the first device;

storing the first draft of the message as a current version of the message, wherein the current version is stored as a current draft of the message for a plurality of devices including the first device and a second device;

generating a central data structure based on the first data structure, wherein the central data structure is maintained by the computer system and includes the first version information and current version information indicated by the current version associated with the current draft;

synchronizing the current version of the message by sending, to the first device and the second device, the current version information and the current draft;

receiving, from the second device, a second data structure maintained by the second device and a second draft of the message, the second data structure includes second version information indicating a second draft version stored by the second device and the current draft version, the second draft composed by modifying the current draft using the second device;

comparing the current data structure to the second data structure to determine whether to update the current draft based on second draft, wherein comparing the current data structure to the second data structure includes determining whether the current draft is different from the second draft and determining whether the current version information in the current data structure matches the current version information in the second data structure; and

upon determining to update the current draft based on the second draft:

updating the current data structure to reflect the second version information by incrementing the current version information; and

updating the stored current draft based on the second draft.

14. The non-transitory computer-readable medium of claim 13 , wherein the first data structure, the current data structure, and the second data structure are each stored using a data structure that includes version information indicating a version associated with a draft of a message for each device of the plurality devices, and wherein the version of the draft of the message for a device corresponds to a value, the value being adjusted based on composing the draft of the message.

15. The non-transitory computer-readable medium of claim 13 , wherein a draft of a message is an electronic document.

16. The non-transitory computer-readable medium of claim 13 , wherein the message is an email message.

17. The non-transitory computer-readable medium of claim 13 , wherein the electronic document is an electronic note.

18. The non-transitory computer-readable medium of claim 13 , wherein the electronic document is an electronic calendar invitation.

19. The non-transitory computer-readable medium of claim 13 , wherein the electronic document is an electronic message.

20. The non-transitory computer-readable medium of claim 16 , wherein a draft of the message includes a body of the message and information indicating a recipient of the message.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069635/0332 →
RELEASE OF SECURITY INTEREST Recorded Dec 12, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: DROPBOX, INC.
Reel/Frame 069613/0744 →
SECURITY INTEREST Recorded Dec 12, 2024
From: DROPBOX, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069604/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2021
From: CUE, ADAM; DAMME, TIM VAN; UNDERWOOD, GEORGE MILTON, IV; BEAUSOLEIL, SEAN; PRENO, BELINDA; KABBES, STEVEN; BARSHOW, DAVID; DEVINCENZI, ANTHONY
To: DROPBOX, INC.
Reel/Frame 056737/0574 →
PATENT SECURITY AGREEMENT Recorded Mar 10, 2021
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 055670/0219 →
SECURITY INTEREST Recorded Apr 14, 2017
From: DROPBOX, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 042254/0001 →
Cited By (1)
US 12,675,606