IP Library Granted Patent US 9,503,402
Granted Patent B2
US 9,503,402 · App. 14/552,166 · Granted Nov 22, 2016

Managing drafts of electronic documents across client devices

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 9,503,402
App. No.
14/552,166
Granted
Nov 22, 2016
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 (63)

1. A method comprising:

receiving, by a computer system, from a first device, first data for the first device and a first draft of a message composed using the first device, wherein the first data includes first version information indicating a first draft version that is updated corresponding to each draft of the message composed using the first device, and wherein the first draft version for the first device is updated corresponding to the first draft of the message;

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

storing second data based on the first data, wherein the second data includes the first version information and second version information that indicates a second draft version associated with the second draft;

sending, to a second device, the first version information and the second draft;

receiving, from the second device, third data for the second device and a third draft of the message, the third draft composed by modifying the second draft using the second device, wherein the third data includes the first version information and third version information that indicates a third draft version that is updated corresponding to each draft of the message composed using the second device, and wherein the third draft version is updated corresponding to the third draft;

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

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

updating the second data to include the third version information; and

updating the stored second draft based on the third draft, wherein the stored second draft is updated by replacing the stored second draft with the third draft upon determining that the second draft is different from the third draft and upon determining that the first version information in the second data matches the first version information in the third data;

upon determining not to update the second draft based on the third draft, discarding the third draft, wherein determining not to update the second draft occurs based on determining that the second draft is not different from the third draft and upon determining that the first version information in the second data matches the first version information in the third data.

2. The method of claim 1 , wherein the first data, the second data, and the third data 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 4 , wherein a draft of the message includes a body of the message and information indicating a recipient of the message.

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

7. 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.

8. The method of claim 7 , further comprising:

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

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

9. The method of claim 1 , further comprising:

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

10. A computer system comprising:

one or more processors; and

a memory accessible to the one or more processors, the memory storing instructions executable by the one or more processors to:

receive, from a first device, first data for the first device and a first draft of a message composed using the first device, wherein the first data includes first version information indicating a first draft version that is updated corresponding to each draft of the message composed using the first device, and wherein the first draft version for the first device is updated corresponding to the first draft of the message;

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

store second data based on the first data, wherein the second data includes the first version information and second version information that indicates a second draft version associated with the second draft;

send, to a second device, the first version information and the second draft;

receive, from the second device, third data for the second device and a third draft of the message, the third draft composed by modifying the second draft using the second device, wherein the third data includes the first version information and third version information that indicates a third draft version that is updated corresponding to each draft of the message composed using the second device, and wherein the third draft version is updated corresponding to the third draft;

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

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

update the second data to include the third version information; and

update the stored second draft based on the third draft, wherein the stored second draft is updated by replacing the stored second draft with the third draft upon determining that the second draft is different from the third draft and upon determining that the first version information in the second data matches the first version information in the third data;

upon determining not to update the second draft based on the third draft, discard the third draft, wherein determining not to update the second draft occurs based on determining that the second draft is not different from the third draft and upon determining that the first version information in the second data matches the first version information in the third data.

11. The computer system of claim 10 , wherein the first data, the second data, and the third data 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.

12. The computer system of claim 10 , wherein the instructions are further executable by the one or more processors to:

receive, from the first device, a request to send the message, wherein the request identifies a sender of the message;

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

send the second draft of the message, wherein the second draft is sent, from the identified messaging account, to an electronic address associated with a recipient of the message.

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, first data for the first device and a first draft of a message composed using the first device, wherein the first data includes first version information indicating a first draft version that is updated corresponding to each draft of the message composed using the first device, and wherein the first draft version for the first device is updated corresponding to the first draft of the message;

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

storing second data based on the first data, wherein the second data includes the first version information and second version information that indicates a second draft version associated with the second draft;

sending, to a second device, the first version information and the second draft;

receiving, from the second device, third data for the second device and a third draft of the message, the third draft composed by modifying the second draft using the second device, wherein the third data includes the first version information and third version information that indicates a third draft version that is updated corresponding to each draft of the message composed using the second device, and wherein the third draft version is updated corresponding to the third draft;

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

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

updating the second data to include the third version information; and

updating the stored second draft based on the third draft, wherein the stored second draft is updated by replacing the stored second draft with the third draft upon determining that the second draft is different from the third draft and upon determining that the first version information in the second data matches the first version information in the third data;

upon determining not to update the second draft based on the third draft, discarding the third draft, wherein determining not to update the second draft occurs based on determining that the second draft is not different from the third draft and upon determining that the first version information in the second data matches the first version information in the third data.

14. The non-transitory computer-readable medium of claim 13 , wherein the first data, the second data, and the third data 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 16 , wherein a draft of the message includes a body of the message and information indicating a recipient of the message.

18. The non-transitory computer-readable medium of claim 13 , wherein the second draft is not stored in association with information identifying a messaging account.

19. The non-transitory computer-readable medium of claim 13 , wherein the instructions cause:

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

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

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

20. The non-transitory computer-readable medium of claim 13 , wherein the instructions cause:

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

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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2016
From: DAMME, TIM VAN; UNDERWOOD IV, GEORGE MILTON; BEAUSOLEIL, SEAN; CUE, ADAM; PRENO, BELINDA; KABBES, STEVEN; BARSHOW, DAVID; DE VINCENZI, ANTHONY
To: DROPBOX, INC.
Reel/Frame 040011/0122 →