IP Library Granted Patent US 11,023,665
Granted Patent B2
US 11,023,665 · App. 16/408,900 · Granted Jun 1, 2021

Decoupling and relocating bookmarks and annotations from files

Inventors: Arjun Kochhar (Bangalore, IN); Lakshmikanth Raju (Bangalore, IN); Manjunath Bhat (Bangalore, IN); Gerard T. Murphy (Atlanta, GA); Marcos Raul Mendez (Atlanta, GA)
Assignee: AirWatch, LLC
G06F40/169G06F16/22G06F16/2474G06F16/93G06F16/9562G06F40/106G06F40/197
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 11,023,665
App. No.
16/408,900
Granted
Jun 1, 2021
Kind
B2
Abstract

Disclosed are various examples for generating, storing, and loading drawings separate from a file. A request can be received to generate a drawing in a file. A data object can be generated corresponding to the drawing. The data object can include characteristics of the file proximate to an area in the file associated with the drawing. The data object can be stored in a data store associated with the file. A request can be received to open the file. The file can be loaded from the data store. The position of the drawing within the file can be determined based on a stored data object. The file can be rendered including the drawing at the determined position.

Claims (61)

1. A method for file referencing, comprising:

receiving a first request to generate a drawing in a first version of a file;

generating a first data object corresponding to the drawing, the first data object comprising at least one characteristic of the first version of the file near the drawing, wherein the at least one characteristic comprises a location of the drawing with respect to an image location for a respective image and an image characteristic for the respective image;

generating a second data object for a reference;

storing the first data object and the second data object separate from the file;

receiving a second request to open a second version of the file that is different from the first version of the file;

receiving a user selection of the drawing from a list of references to display;

determining a position in the second version of the file to place the drawing based at least in part on the first data object comprising the location of the drawing with respect to the image location for the respective image and the image characteristic for the respective image; and

rendering the second version of the file including the drawing at the position, wherein rendering the file comprises omitting a display of the reference for the second data object based on the user selection.

2. The method of claim 1 , wherein rendering the file including the drawing at the position comprises overlaying the drawing onto the file.

3. The method of claim 1 , wherein the first data object comprises an array of points along a line corresponding to the drawing.

4. The method of claim 1 , further comprising receiving an indication of a width and a color of a line for the drawing, wherein the first data object comprises the width and the color.

5. The method of claim 1 , wherein the drawing comprises a freehand drawing.

6. The method of claim 1 , further comprising receiving a selection of a particular version of the file from among a plurality of versions of the file, wherein the position in the file is determined for the particular version of the file and the drawing was generated for a different version of the file.

7. The method of claim 1 , further comprising, in response to receiving the second request to open the second version of the file, retrieving the first data object based in part on a unique identifier corresponding to the file, and the unique identifier comprises a file identifier component and a version identifier component.

8. The method of claim 1 , wherein determining the position in the file to place the drawing comprises:

determining a number of potential positions to place the drawing;

in response to the number of potential positions being one position, determining the one position as the position in the file to place the drawing; and

in response to the number of potential positions being a plurality of potential positions:

generating a plurality of scores individually corresponding to the plurality of potential positions based at least in part on the first data object; and

determining one of the plurality of potential positions as the position in the file to place the drawing based at least in part on the plurality of scores.

9. A non-transitory computer-readable medium embodying a program for file referencing that, when executed by a client computing device, causes the client computing device to at least:

receive a first request to generate a drawing in a first version of a file;

generate a first data object corresponding to the drawing, the first data object comprising at least one characteristic of the first version of the file near the drawing, wherein the at least one characteristic comprises a location of the drawing with respect to an image location for a respective image and an image characteristic for the respective image;

generate a second data object for a reference;

store the first data object and the second data object separate from the file;

receive a second request to open a second version of the file that is different from the first version of the file;

receive a user selection of the drawing from a list of references to display;

determine a position in the second version of the file to place the drawing based at least in part on the first data object comprising the location of the drawing with respect to the image location for the respective image and the image characteristic for the respective image; and

render the second version of the file including the drawing at the position, wherein rendering the file comprises omitting a display of the reference for the second data object based on the user selection.

10. The non-transitory computer-readable medium of claim 9 , wherein the first data object comprises an array of points along a line corresponding to the drawing.

11. The non-transitory computer-readable medium of claim 9 , wherein the program further causes the client computing device to at least receive an indication of a width and a color of a line for the drawing, wherein the first data object comprises the width and the color.

12. The non-transitory computer-readable medium of claim 9 , wherein the program further causes the client computing device to at least receive a selection of a particular version of the file from among a plurality of versions of the file, wherein the position in the file is determined for the particular version of the file and the drawing was generated for a different version of the file.

13. The non-transitory computer-readable medium of claim 9 , wherein program further causes the client computing device to at least retrieve the first data object based in part on a unique identifier corresponding to the file responsive to the second request to open the second version of the file being received.

14. The non-transitory computer-readable medium of claim 9 , wherein the program further causes the client computing device to at least:

determine a number of potential positions to place the drawing;

in response to the number of potential positions being one position, determine the one position as the position in the file to place the drawing; and

in response to the number of potential positions being a plurality of potential positions:

generate a plurality of scores individually corresponding to the plurality of potential positions based at least in part on the first data object; and

determine one of the plurality of potential positions as the position in the file to place the drawing based at least in part on the plurality of scores.

15. A system for file referencing, comprising:

a data store that comprises machine instructions; and

a computing device in communication with the data store, wherein the computing device comprises a processor, and the machine instructions, when executed, cause the processor to at least:

receive a first request to generate a drawing in a first version of a file;

generate a first data object corresponding to the drawing, the first data object comprising a location of the drawing with respect to an image location for a respective image and an image characteristic for the respective image;

generate a second data object for a reference based on a second request;

store the first data object and the second data object separate from the file;

receive a second request to open a second version of the file that is different from the first version of the file;

receive a user selection from a list of references to display;

determine a position in the second version of the file to place the drawing based at least in part on the first data object comprising the location of the drawing with respect to the image location for the respective image and the image characteristic for the respective image; and

render the second version of the file including the drawing at the position, wherein rendering the file comprises omitting a display of the reference based on the user selection.

16. The system of claim 15 , wherein the machine instructions further cause the processor to at least receive a selection of a particular version of the file from among a plurality of versions of the file, wherein the position in the file is determined for the particular version of the file and the drawing was generated for a different version of the file.

17. The system of claim 15 , wherein the machine instructions further cause the processor to at least retrieve the first data object based in part on a unique identifier corresponding to the file responsive to the second request to open the second version of the file being received.

18. The system of claim 15 , wherein the machine instructions further cause the processor to at least:

determine a number of potential positions to place the drawing;

in response to the number of potential positions being one position, determine the one position as the position in the file to place the drawing; and

in response to the number of potential positions being a plurality of potential positions:

generate a plurality of scores individually corresponding to the plurality of potential positions based at least in part on the first data object; and

determine one of the plurality of potential positions as the position in the file to place the drawing based at least in part on the plurality of scores.

19. The system of claim 15 , wherein rendering the file further comprises omitting a display of at least one of an administrator reference or a third reference associated with a second user account.

20. The system of claim 15 , wherein the user selection is received based on retrieving user preferences associated with a user account.

Assignments (2)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: AIRWATCH LLC
To: OMNISSA, LLC
Reel/Frame 068327/0670 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →