IP Library › Granted Patent US 10,891,044
Granted Patent B1
US 10,891,044 · App. 15/791,793 · Granted Jan 12, 2021

Automatic positioning of content items in a scrolling display for optimal viewing of the items

Inventors: Simon Corsin (New York, NY); Richard Arnold (Hoboken, NJ); Michel Loenngren (Brooklyn, NY); Kevin Markman (New York, NY); Jason J. Mante (New York, NY); Adam Feldman (New York, NY)
Assignee: Twitter, Inc.
G06F3/0485G06F3/04883G06F2203/04808G06T13/80G06T2200/24
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,891,044
App. No.
15/791,793
Granted
Jan 12, 2021
Kind
B1
Abstract

Systems and methods are described that include providing, on a touchscreen display of an electronic device, a stream of content items, at least some of which are associated with a corresponding display anchor. Inputs are detected at the touchscreen display and the inputs are associated with a scroll speed. The scroll speed may be based on a detected distance between the inputs on the touchscreen and an elapsed time between at least two of the inputs. In response to determining a lack of input for a predefined time period, a display anchor can be determined and selected. The display anchor may correspond to a content item to be used as a pause location for the stream. The scrolling of the stream of content items can be paused at the pause location to use the selected display anchor to display the content item in a top viewable portion of the display.

Claims (54)

1. A computer-implemented method comprising:

providing, on a touchscreen display of an electronic device, a stream of content items, at least some of the content items being associated with a corresponding display anchor;

detecting, a plurality of inputs consecutively provided to the touchscreen display, the plurality of inputs causing the stream of content items to scroll, each input being associated with at least one point of contact on the touchscreen and at least one time at which the input is made;

determining a scroll speed associated with the plurality of inputs, the scroll speed being based on an elapsed time between an end of a first input and a beginning of a second input from at least two consecutive inputs in the plurality of inputs;

selecting, based on the determined scroll speed, a scroll mode from a first scroll mode and a second scroll mode, wherein the first scroll mode is a snap to location scroll mode that selects a display anchor as a pause location for the stream of content items when the determined scroll speed is at or below a predefined speed threshold and the second scroll mode is a free scroll mode that allows free scrolling without snapping the stream of content items when the determined scroll speed is above the predefined speed threshold;

in response to selecting the first scroll mode and determining a lack of input for a predefined time period, determining and selecting, during scrolling and based on the determined scroll speed, the display anchor as the pause location for the stream, the display anchor corresponding to at least one content item in the stream of content items; and

pausing, according to the selected first scroll mode, the scrolling of the stream of content items at the pause location, such that the at least one content item corresponding to the selected display anchor is displayed in a top viewable portion of the display.

2. The method of claim 1 , wherein the at least one content item corresponding to the selected display anchor is displayed in its entirety on the touchscreen display, and wherein the pause is sustained at least until detecting an additional input to the touchscreen display.

3. The method of claim 1 , further comprising:

determining and selecting at least one additional display anchor, as a second pause location, in response to receiving additional input on the touchscreen; and

pausing the scrolling of the plurality of inputs at the second pause location.

4. The method of claim 1 , further comprising:

receiving a plurality of subsequent inputs;

determining a scroll behavior based on gestures associated with a portion of the plurality of subsequent inputs; and

in response to detecting a change in scroll behavior, adjusting the predefined time period and storing the adjusted predefined time period for the electronic device.

5. The method of claim 1 , wherein the scroll speed is further based on a determined value corresponding to an average scroll speed for a plurality of users interacting with an application presenting streams of content items.

6. The method of claim 1 , wherein the electronic device is executing a messaging platform application, the messaging platform application presenting the stream of content items in a timeline, the timeline being in a chronological time order in which the content items are submitted to the messaging platform application.

7. The method of claim 1 , wherein the plurality of inputs corresponds to a first touch location on the touchscreen display and a lateral movement in a horizontal direction through the stream of content items horizontally displayed in the touchscreen display, the horizontal being perpendicular to a wide edge of the touchscreen display or a second touch location on the touchscreen display and a vertical movement through the stream of content items vertically displayed in the touchscreen display, the vertical being parallel to the wide edge of the touchscreen display.

8. A system comprising:

at least one processor;

a display device; and

memory storing instructions that, when executed by the at least one processor, generate a user interface configured to:

provide, on a touchscreen display of an electronic device, a stream of content items, at least some of the content items being associated with a corresponding display anchor;

detect, a plurality of inputs consecutively provided to the touchscreen display, the plurality of inputs causing the stream of content items to scroll, each input being associated with at least one point of contact on the touchscreen and at least one time at which the input is made;

determine a scroll speed associated with the plurality of inputs, the scroll speed being based on an elapsed time between an end of a first input and a beginning of a second input from at least two consecutive inputs in the plurality of inputs;

selecting, based on the determined scroll speed, a scroll mode from a first scroll mode and a second scroll mode, wherein the first scroll mode is a snap to location scrod mode that selects a display anchor as a pause location for the stream of content items when the determined scroll seed is at or below a predefined speed threshold and the second scroll mode is a free scroll mode that allows free scrolling without snapping the stream of content items when the determined scroll speed is above the predefined speed threshold;

in response to selecting the first scroll mode and determining a lack of input for a predefined time period, determining and selecting, during scrolling, the display anchor as the pause location for the stream, the display anchor corresponding to at least one content item in the stream of content items; and

pause, according to the selected first scroll mode, the scrolling of the stream of content items at the pause location, such that the at least one content item corresponding to the selected display anchor is displayed in a top viewable portion of the user interface.

9. The system of claim 8 , wherein the at least one content item corresponding to the selected display anchor is displayed in its entirety on the touchscreen display, and wherein the pause is sustained at least until detecting an additional input to the touchscreen display.

10. The system of claim 8 , wherein the instructions further comprise:

determining and selecting at least one additional display anchor, as a second pause location, in response to receiving additional input on the touchscreen; and

pausing the scrolling of the plurality of inputs at the second pause location.

11. The system of claim 8 , wherein the instructions further comprise:

receiving a plurality of subsequent inputs;

determining a scroll behavior based on gestures associated with a portion of the plurality of subsequent inputs; and

in response to detecting a change in scroll behavior, adjusting the predefined time period and storing the adjusted predefined time period for the electronic device.

12. The system of claim 8 , wherein the scroll speed is further based on a determined value corresponding to an average scroll speed for a plurality of users interacting with an application presenting streams of content items.

13. A computer program product, the computer program product being tangibly embodied on a non-transitory computer-readable medium and comprising instructions that, when executed, are configured to cause at least one processor to:

provide, on a touchscreen display of an electronic device, a stream of content items, at least some of the content items being associated with a corresponding display anchor;

detect, a plurality of inputs consecutively provided to the touchscreen display, the plurality of inputs causing the stream of content items to scroll, each input being associated with at least one point of contact on the touchscreen and at least one time at which the input is made;

determine a scroll speed associated with the plurality of inputs, the scroll speed being based on an elapsed time between an end of a first input and a beginning of a second input from at least two consecutive inputs in the plurality of inputs;

selecting, based on the determined scroll speed, a scroll mode from a first scroll mode and a second scroll mode, wherein the first scroll mode is a snap to location scroll mode that selects a display anchor as a pause location for the stream of content items when the determined scroll speed is at or below a predefined speed threshold and the second scroll mode is a free scroll mode that allows free scrolling without snapping the stream of content items when the determined scroll speed is above the predefined speed threshold;

in response to selecting the first scroll mode and determining a lack of input for a predefined time period, determining and selecting, during scrolling and based on the determined scroll speed, the display anchor as the pause location for the stream, the display anchor corresponding to at least one content item in the stream of content items; and

pause, according to the selected first scroll mode, the scrolling of the stream of content items at the pause location, such that the at least one content item corresponding to the selected display anchor is displayed in a top viewable portion of the display.

14. The computer program product of claim 13 , wherein the at least one content item corresponding to the selected display anchor is displayed in its entirety on the touchscreen display, and wherein the pause is sustained at least until detecting an additional input to the touchscreen display.

15. The computer program product of claim 13 , wherein the instructions further comprise determining at least one additional pause location, in response to receiving additional input on the touchscreen and pausing the scrolling of the plurality of inputs at the at least one additional pause location.

16. The computer program product of claim 13 , wherein the instructions further comprise:

receiving a plurality of subsequent inputs;

determining a scroll behavior based on gestures associated with a portion of the plurality of subsequent inputs; and

in response to detecting a change in scroll behavior, adjusting the predefined time period and storing the adjusted predefined time period for the electronic device.

17. The computer program product of claim 13 , wherein the scroll speed is further based on a determined value corresponding to an average scroll speed for a plurality of users interacting with an application presenting streams of content items.

18. The method of claim 1 , wherein the stream of content items is depicted in a messaging platform according to popularity of respective content items in the stream of content items.

19. The computer program product of claim 13 , wherein the stream of content items is depicted in a messaging platform application according to popularity of respective content items in the stream of content items.

20. The computer program product of claim 13 , wherein a messaging platform application displays the stream of content items in a timeline, the timeline being in a chronological time order in which the content items are submitted to the messaging platform application.

Assignments (7)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (REEL 062079, FRAME 0677) Recorded Mar 3, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 075015/0574 →
RELEASE OF SECURITY INTEREST Recorded Apr 30, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 071127/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 27, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: X CORP. (F/K/A TWITTER, INC.)
Reel/Frame 070670/0857 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 062079/0677 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0001 →
SECURITY INTEREST Recorded Oct 28, 2022
From: TWITTER, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 061804/0086 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2019
From: CORSIN, SIMON; ARNOLD, RICHARD; LOENNGREN, MICHEL; MARKMAN, KEVIN; MANTE, JASON J.; FELDMAN, ADAM
To: TWITTER, INC.
Reel/Frame 049027/0645 →
Continuity (1)
Provisional Application 62412644 · Oct 25, 2016
Cited By (2)
US 12,254,166 US 12,436,658