Abstract:
An electronic device, when in a first tilted state, displays a content page in a sketch mode, which includes displaying a zoomed view of a portion of the content page, and configuring the zoomed view of the portion of the content page to accept user inputs modifying content in the first portion of the content page. While displaying the content page in the sketch mode, the device detects that it is tilted from the first tilted state to a distinct second tilted state, and in response, displays the content page in an overview mode, which includes zooming out to display an overview of the content page. Optionally, displaying the content page in the overview mode includes displaying an input position indicator over the overview of the content page to indicate the portion of the content page previously displayed in the zoomed view.
Abstract:
A method, comprising: receiving a plurality of handwritten strokes in an input area; in response to receiving the handwritten strokes, determining whether the handwritten strokes are a textual input or a sketch in accordance with predetermined criteria for distinguishing between handwritten textual inputs and sketch inputs; in accordance with a determination that the handwritten strokes are a textual input: generating one or more handwritten word blocks based on the handwritten strokes; and positioning the one or more handwritten word blocks in a content presentation area in accordance with first predetermined layout criteria; and in accordance with a determination that the handwritten strokes are a sketch: generating a sketch content object based on the handwritten strokes; and positioning the sketch content object in the content presentation area in accordance with second predetermined layout criteria that is distinct from the first predetermined layout criteria.
Abstract:
A first electronic device with a display maintains a consistent output based on concurrent drawing edits received at multiple collaborating devices. The first device maintains a command sequence for a drawing currently rendered at the first device. The command sequence includes a plurality of past drawing commands sorted according to respective sequence numbers of the past drawing commands. The first device receives a plurality of additional drawing commands from two or more devices of the multiple collaborating devices, each of the plurality of additional drawing commands having a respective sequence number. The first device updates the command sequence, including merging and sorting the plurality of additional drawing commands and the plurality of past drawing commands in accordance with an ordering rule. The first device re-renders at least a portion of the drawing based on the command sequence after updating the command sequence.
Abstract:
A first electronic device with a display maintains a consistent output based on concurrent textual edits received at multiple collaborating devices. The first device maintains a directed acyclic graph to represent a textual string concurrently edited by the first device and at least a second device of the multiple collaborating devices. The directed acyclic graph includes: a plurality of nodes each representing a respective character input received from one or more of the multiple collaborating devices, and multiple parallel paths each including at least one node that represents a respective one of multiple concurrent character inputs received from distinct devices of the multiple collaborating devices. The first device topologically traverses the directed acyclic graph in accordance with a predetermined ordering rule to deterministically sort the plurality of nodes into a string sequence. The first device displays the textual string in accordance with the deterministically obtained string sequence.
Abstract:
A method is performed at a device with one or more processors, memory, a touch-sensitive surface, and a display. The method includes receiving a line-drawing input. The method further includes rendering a line in a sketch area in accordance with the line-drawing input. The method further includes, while displaying the sketch area including the line, receiving a fill gesture directed to the line in the sketch area. The method further includes, in response to receiving the fill gesture, adding fill content in a first portion of the sketch area that corresponds to regions touched by the fill-gesture on the touch-sensitive surface and that is delineated and partially enclosed by the line in the sketch area.
Abstract:
A method includes displaying an on-screen ruler in a sketch area in response to a predefined input. The on-screen ruler has a first edge and an interior portion delineated by the first edge. The method further includes, in response to detecting a first touch input directed to the first edge of the on-screen ruler, rendering a line in the sketch area in accordance with the first edge of the on-screen ruler. The method further includes, in response to detecting a second touch input directed to the first edge of the on-screen ruler, adding fill content in a first portion of the sketch area that corresponds to regions touched by the second touch input on the touch-sensitive surface and that is delineated by the first edge of the on-screen ruler, such that the first portion of the sketch area is confined by the first edge or the line.
Abstract:
Embodiments of the present disclosure relate to a process for creating contact shadows. Specifically, embodiments of the present disclosure include converting an original image to an initial shadow image, cropping the initial shadow image to obtain at least two slices of the initial shadow image, blurring the slices, overlaying the slices to create a combined shadow image, compressing the combined shadow image to create a contact shadow, and displaying the contact shadow on a virtual surface relative to the original image. Further, a user can change the amount of blurring the contact shadow has, the apparent offset from the surface, the perspective, the opacity, and the color of the contact shadow.
Abstract:
A device implementing a system for obtaining a consistent state of data based on data updates made on different devices includes a processor configured to generate, for a first data update, a first data model including first data nodes, each including a first identifier and a first data value corresponding to one of first data objects. The processor is configured to receive from a second device, for a second data update to the data, the second update being independent of the first update, a second data model including second data nodes, each including a second identifier and a second data value corresponding to one of second data objects. A consistent data model is obtained by merging the first and second data values with the same identifier, and then merging the first and second data models, and generating a final update of the data based on the consistent data model.
Abstract:
Aspects of subject technology provide systems and methods for electronic drawing with handwriting recognition. An electronic device may include one or more processors configured to receive a drawing stroke input, generate a bitmap of values that represent the drawing stroke input, render the bitmap for display by a display of the device, generate a vector representation of the drawing stroke input, and store the generated bitmap and the generated vector representation.
Abstract:
A device implementing a system for reducing an amount of metadata stored with respect to updates to data includes a processor configured to receive a first sequence of identifiers comprising identifiers which are unique with respect to each other and which represent first updates to data, and a second sequence of identifiers comprising identifiers which are unique with respect to each other and which represent second updates to the data, the first and second updates to the data being independent of one another. The processor is further configured to generate a third sequence of identifiers comprising identifiers which are unique with respect to each other and with respect to the identifiers in at least one of the first or second sequences of identifiers, the third sequence of identifiers representing a combination of the first and second sequences of identifiers, and to provide for storage of the third sequence of identifiers.