IP Library Granted Patent US 9,411,816
Granted Patent B2
US 9,411,816 · App. 14/165,088 · Granted Aug 9, 2016

Maintaining channels lists

Inventors: Albert J. Lai (San Francisco, CA); Ankit Gupta (Campbell, CA); Gregory W. Bayer (San Francisco, CA); Stuart F. Norrie (San Francisco, CA); Akshay D. Kothari (San Francisco, CA)
Assignee: LinkedIn Corporation
G06F17/30174G06F17/30353G06F17/30575
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,411,816
App. No.
14/165,088
Granted
Aug 9, 2016
Kind
B2
Abstract

A method is provided for maintaining a list of content channels that a user of a multi-channel content service subscribes to or has followed, and a client device for operation by the user to receive the content. If a list on the user's device has been modified, the device (e.g., an applet provided by the service) informs a synchronization server by uploading the list. The server synchronizes it with a master list and downloads a copy to the device. A channels list includes an entry for each channel the user follows (and possibly channels he has deleted), which includes an index or ordinal position of the channel among all the user's channels, an identifier of the channel (e.g., a URL), identifiers of sub-lists the channel has been assigned to, and a timestamp identifying the last time the entry changed (e.g., when the channel was added, removed, assigned to a sub-list).

Claims (141)

1. A method of maintaining a list of multiple channels of content received on a client device, the method comprising, at the client device:

receiving the list of channels, within which each channel is represented by a channel record comprising:

an index position of the channel within the list;

an identifier of the channel;

identifiers of sub-lists to which the channel has been assigned, if any; and

a timestamp of a most recent modification to the channel record;

displaying content received via the channels, in priority order based on the index positions of the channels within the list;

receiving a modification to the list of channels, wherein the modification comprises creating a first channel record to represent a first channel, the first channel record including:

an identifier of the first channel;

a first timestamp identifying a time of the modification; and

if the first channel is added to a sub-list, an identifier of the sub-list to which the first channel is added;

wherein the modification yields a modified list of channels; and

transmitting the modified list of channels for synchronization with a master list of channels.

2. The method of claim 1 , further comprising:

receiving a central time of a multi-channel service that maintains the master list of channels; and

calculating an offset between the central time and a local time of the client device;

wherein the first timestamp identifies the local time of the client device at the time of the modification of the first channel combined with the calculated offset.

3. The method of claim 1 , wherein said displaying comprises:

receiving from a user of the client device a selection of a first sub-list of channels;

presenting to the user a display of the first sub-list of channels, wherein the displayed channels are arranged in a first direction in order of the channels' index positions and the display is scrollable in the first direction to display additional channels; and

within a given displayed channel, presenting multiple content items scrollable in a second direction orthogonal to the first direction.

4. The method of claim 3 , further comprising:

receiving a further modification comprising movement of the first channel in the first sub-list of channels from a first position to a second position; and

modifying the first channel record to change the index position of the first channel record;

wherein after the further modification the first channel is displayed in a different position in the list of channels and in all sub-lists, compared to prior to the further modification.

5. The method of claim 1 , wherein the index position of a given channel in the list determines an order in which the given channel is displayed within the list and within every sub-list.

6. The method of claim 1 , wherein the list of channels is received from a multi-channel content service that maintains the master list of channels, the method further comprising:

connecting to the multi-channel content service to receive the list of channels; and

upon every connection to the multi-channel content service, transmitting only one of:

a first signal indicating that the list of channels has not been updated on the client device; and

a second signal indicating that the list of channels has been updated since the last connection to the multi-channel content service.

7. The method of claim 6 , wherein the second signal comprises the list of channels.

8. The method of claim 1 , wherein the modification is received while the client device is offline.

9. The method of claim 1 , wherein:

transmitting the modified list of channels for synchronization comprises transmitting the modified list of channels to an online multi-channel content service that maintains the master list of channels; and

the online multi-channel content service causes an affiliated professional social network to modify a profile of the user to include following a member of the professional social network associated with the first channel.

10. The method of claim 9 , wherein the synchronization comprises:

adding to the master channels list one or more channels associated with members of the professional social network followed by the user.

11. A device for maintaining a list of channels of content received by the device, the device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the device to:

connect the device to an online multi-channel content service;

transmit to the online service only one of:

an indication that the channels list has not been modified; and

the channels list;

wherein the channels list comprises a channel record for each of the multiple channels, each channel record comprising:

an identifier of a corresponding channel;

an index position of the corresponding channel; and

identifiers of sub-lists to which the channel has been assigned, if any; and

a timestamp identifying a last time the channel record was modified;

receive as a replacement channels list a master channels list maintained by the online service;

receive a central time of the online service;

calculate an offset between the central time and a local time of the device;

receive from a user of the device a deletion of a first channel; and

modify a first channel record corresponding to the first channel to:

delete identifiers of any channels sub-lists the first channel was assigned to; and

store a new timestamp identifying a time of the deletion;

wherein the first channel record is not deleted; and

wherein the new timestamp is based on a combination of a current local time and the offset.

12. The device of claim 11 , wherein the memory further stores the channels list.

13. The device of claim 11 , wherein the memory further stores instructions that, when executed by the one or more processors, cause the device to:

display multiple channels from the channels list, in a prioritized order and scrollable in a first direction; and

display, for each of the multiple channels, multiple content items from a source of the channel, wherein the multiple content items are scrollable in a second direction substantially orthogonal to the first direction.

14. A method of maintaining a list of multiple channels of content received on a client device, the method comprising, at the client device:

receiving the list of channels, within which each channel is represented by a channel record comprising:

an index position of the channel within the list;

an identifier of the channel;

identifiers of sub-lists to which the channel has been assigned, if any; and

a timestamp of a most recent modification to the channel record;

displaying content received via the channels, in priority order based on the index positions of the channels within the list, wherein said displaying comprises:

receiving from a user of the client device a selection of a first sub-list of channels;

presenting to the user a display of the first sub-list of channels, wherein the displayed channels are arranged in a first direction in order of the channels' index positions and the display is scrollable in the first direction to display additional channels; and

within a given displayed channel, presenting multiple content items scrollable in a second direction orthogonal to the first direction;

receiving a modification to the list of channels, wherein the modification comprises movement of the first channel in a first sub-list of channels from a first position to a second position;

modifying a first channel record representing the first channel to change the index position of the first channel record in the list of channels, wherein after the modification, the first channel is displayed in a different position in the list of channels and all sub-lists to which the first channel had been added, compared to prior to the modification; and

transmitting the list of channels for synchronization with a master list of channels.

15. The method of claim 14 , wherein the list of channels is received from a multi-channel content service that maintains the master list of channels, the method further comprising:

connecting to the multi-channel content service to receive the list of channels; and

upon every connection to the multi-channel content service, transmitting only one of:

a first signal indicating that the list of channels has not been updated on the client device; and

a second signal indicating that the list of channels has been updated since the last connection to the multi-channel content service.

16. A method of maintaining a list of multiple channels of content received on a client device, the method comprising, at the client device:

receiving the list of channels, within which each channel is represented by a channel record comprising:

an index position of the channel within the list;

an identifier of the channel;

identifiers of sub-lists to which the channel has been assigned, if any; and

a timestamp of a most recent modification to the channel record;

displaying content received via the channels, in priority order based on the index positions of the channels within the list;

receiving a modification to the list of channels, wherein the modification comprises deletion of a first channel;

modifying a first channel record representing the first channel to:

delete identifiers of any sub-lists the first channel was assigned to; and

store a new timestamp identifying a time of the deletion;

wherein the first channel record is not deleted; and

transmitting the list of channels for synchronization with a master list of channels.

17. The method of claim 16 , wherein the list of channels is received from a multi-channel content service that maintains the master list of channels, the method further comprising:

connecting to the multi-channel content service to receive the list of channels; and

upon every connection to the multi-channel content service, transmitting only one of:

a first signal indicating that the list of channels has not been updated on the client device; and

a second signal indicating that the list of channels has been updated since the last connection to the multi-channel content service.

18. A method of maintaining a list of multiple channels of content received on a client device, the method comprising, at the client device:

connecting to an online multi-channel content service;

transmitting to the online service only one of:

an indication that the channels list has not been modified; and

the channels list;

receiving as a replacement channels list a master channels list maintained by the online service;

receiving a central time of the online service;

calculating an offset between the central time and a local time of the device;

receiving from a user of the device a modification of a first channel in the channels list; and

modifying a first channel record corresponding to the first channel by:

when the modification is addition of the first channel:

creating the first channel record, to include an identifier of the first channel; and

if the first channel is added to a first sub-list of channels, storing in the first channel record an identifier of the first sub-list;

when the modification is movement of the first channel, in the first sub-list, from a first position to a second position:

modify the first channel record to change the index position of the first channel record;

wherein after the modification, the first channel is displayed in a different position in the list of channels and in all sub-lists to which it had been added, compared to before the modification; and

when the modification is deletion of the first channel:

delete from the first channel record identifiers of any sub-lists the first channel was assigned to;

wherein the first channel record is not deleted; and

storing in the first channel record a timestamp of the modification, based on a combination of a current time and the offset.

19. A device for maintaining a list of channels of content received by the device, the device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the device to:

connect to an online multi-channel content service;

transmit to the online service only one of:

an indication that the channels list has not been modified; and

the channels list;

receive as a replacement channels list a master channels list maintained by the online service;

receive a central time of the online service;

calculate an offset between the central time and a local time of the device;

receive from a user of the device a modification of a first channel in the channels list; and

modify a first channel record corresponding to the first channel by:

when the modification is addition of the first channel:

creating the first channel record, to include an identifier of the first channel; and

if the first channel is added to a first sub-list of channels, storing in the first channel record an identifier of the first sub-list;

when the modification is movement of the first channel, in the first sub-list, from a first position to a second position:

modify the first channel record to change the index position of the first channel record;

wherein after the modification, the first channel is displayed in a different position in the list of channels and in all sub-lists to which it had been added, compared to before the modification; and

when the modification is deletion of the first channel:

delete from the first channel record identifiers of any sub-lists the first channel was assigned to;

wherein the first channel record is not deleted; and

store in the first channel record a timestamp of the modification, based on a combination of a current time and the offset.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2014
From: LAI, ALBERT J.; GUPTA, ANKIT; BAYER, GREGORY W.; NORRIE, STUART F.; KOTHARI, AKSHAY D.
To: LINKEDIN CORPORATION
Reel/Frame 032367/0155 →
Continuity (2)
Provisional Application 61894875 · Oct 23, 2013
Related Publication 20150112925A1 · Apr 23, 2015