With an advancement of the Internet, a variety of networking applications are developed. For example, an electronic messaging application, a music application, a social network application, and a search application are developed. Generally, a user name and a password are used to access one or more of the networking applications. Some of the networking applications allow a user to chat with another user, to post a message on a website account of the other user, and to receive a message from the other user.
When a user sends a message to another user, a notification is provided to the other user that the message is received. However, sometimes, multiple notifications that the message is received are provided to the other user. Also, notifications are generated in various other instances, e.g., when a user sends a tagged photo to another user, uploads a photo to a website account of the user within a social network, posts to the website account, adds the other user to a circle within the website account of the social network, etc. In these instances, multiple notifications are received regarding each instance by the other user. The reception of multiple notifications for each instance may be frustrating to the other user.
The present disclosure relates managing notifications across various client services.
Various implementations of the present disclosure provide systems and methods for managing notifications across various client services. It should be appreciated that the implementations of the present disclosure can be implemented in numerous ways, e.g., a process, an apparatus, a system, a device or a method on a computer-readable medium. Several implementations of the present disclosure are described below.
In some implementations, a method for managing notifications is provided. When a message is sent by one user to another user, multiple notifications are generated to notify the other user of the reception of the same message. For example, a notification is generated within a representation of an electronic messaging service, another notification is generated within a representation of a toolbar service, yet another notification is generated within a representation of a social network service, another notification is generated within a representation of an operating system service, a notification is generated within a representation of a widget service, and a notification is generated within a representation of a mobile application. When the other user reads one of the notifications, the remaining notifications are automatically modified, e.g., deleted or shaded or unbolded. There is no need for the other user to read all the notifications to access the same message.
In some implementations, a method for managing notifications is described. The method includes sending notification data to a first client service and a second client service for a message. The method further includes receiving an indication that the notification data has been interacted with using the first or second client service. The method includes updating a read status of the notification data when the indication is received, such that the notification data at the first and second client services has a same status indicator.
These and other implementations can include one or more of the following features.
In various implementations, the operation of updating of the read status includes marking the read status as read without requiring a message that indicates that the notification data is read via the second client service.
In some implementations, the method includes receiving a network message that is generated using a website account interface. The website account interface is associated with a first website account. The network message is designated for a second website account and the first and second website accounts are associated with the first client service. The method includes generating the notification data based on the network message.
In some implementations, the method includes associating the notification data with a first identifier and the read status. The read status indicates whether the notification data is read via the first and second client services. The operation of associating the notification data with the first identifier and the read status includes assigning a first identification number to the notification data and assigning the read status to the notification data. The method includes associating the notification data with a second identifier. The operation of associating the notification data with the second identifier includes assigning a second identification number to the notification data.
In various implementations, the method includes initiating the read status to indicate that the notification data is unread via the first client service. The operation of initiating the read status to indicate that the notification data is unread via the first client service includes assigning a value to the read status to indicate that the notification data is unread via the first client service. The method includes initiating the read status to indicate that the notification data is unread via the second client service. The operation of initiating the read status to indicate that the notification data is unread via the second client service includes assigning the value to the read status to indicate that the notification data is unread via the second client service.
In some implementations, the operation of receiving the indication that the notification data has been interacted with includes receiving a read notification message indicating that the notification data is read by a user via the first client service.
In some implementations, the operation of receiving the indication that the notification data has been interacted with includes receiving a message including the indication via a network from a client device.
In several implementations, the operation of sending the notification data to the first client service includes sending the notification data to the first client service via a network. The operation of sending the notification data to the second client service includes sending the notification data to the second client service via the network. Moreover, the operation of updating the read status includes updating a first value of the read status to a second value.
In some implementations, the method includes sending a modify instruction message to the second client service in response to updating the read status. The operation of sending the modify instruction message to the second client service includes sending the modify instruction message via a network to a client device.
In various implementations, the first client service includes a social network service, an electronic messaging service, or a telecommunications service and the second client service includes the social network service, the electronic messaging service, or the telecommunications service.
In some implementations, the method includes communicating an instruction to modify the notification data via the second client service. The operation of communicating the instruction to modify the notification data includes sending the instruction to indicate via the second client service that the notification data is read by a user.
In several implementations, the first client service is same as or different from the second client service.
In various implementations, a method for managing notifications is described. The method includes determining whether a first notification is displayed via a first client service, sending notification data associated with the first notification to a server, and receiving an instruction to display a second notification via a second client service, the second notification based on the notification data. The first and second notifications notify a user of receipt of a network message. The network message is contextually originated using the first client service. The method further includes determining whether the first notification is read via the first client service and modifying the first and second notifications in response to determining that the first notification is read. The modification indicates that the first notification is read.
In some implementations, the first and second notifications are displayed within a website account interface that is associated with a website account. The operation of modifying the second notification includes modifying the second notification via the second client service without receiving an input indicating that the second notification is read via the second client service.
In various implementations, the method includes sending the notification data with an identifier of the notification data to the server.
In some implementations, the operation of determining whether the first notification is read includes determining whether a selection of the first notification is received from a user via an input device.
In some implementations, the operation of modifying the second notification is performed in response to receiving an instruction from the server to perform the modification.
In several implementations, the operation of modifying the second notification is performed in response to receiving an answer from the server to a poll. The answer indicates that the server modified a read status that is associated with the second notification and with a client application. The client application is associated with the second client service.
In some implementations, the operation of modifying the second notification includes deleting the second notification.
In several implementations, the first client service is same as or different from the second client service.
In some implementations, a system for managing notifications is described. The system includes a network adapter that is used for sending first notification data to a first client service and second notification data to a second client service. The network adapter is used for receiving an indication that the first notification data has been interacted with using the first client service. Also, the system includes a processor that is used for updating a first read status and a second read status to represent that the first notification data and second notification data have been interacted with based on the indication.
In some implementations, the processor associates the first notification data with a first identifier and the first read status. Moreover, the processor associates the second notification data with a second identifier and the second read status. The first read status indicates whether the first notification data is read via the first client service. The second read status indicates whether the second notification data is read via the second client service. The processor initiates the first read status and the second read status to indicate that the first and second notification data are unread. When the first notification data is read via the first client service, the processor marks the second read status as read without requiring a message that indicates that the second notification data is read via the second client service.
In several implementations, the first client service is same as or different from the second client service.
In some implementations, a method for managing notifications is described. The method includes determining an occurrence on a first service of an online interaction with content associated with the first service and generating first notification data for the first service and second notification data for a second service. The operation of generating the first notification data is performed based on the occurrence of the online interaction. The second service provides content that is different than that associated with the first service. The method further includes receiving an indication of an interaction with the first notification data and updating the second notification data based on the interaction with the first notification data. In various implementations, the content of the first service is particular to the first service.
In several implementations, the first service is different than the second service.
These and other implementations can be embodied in corresponding systems, methods, and apparatus, including computer program products.
These and other implementations may provide one or more of the following advantages. For example, a user does not need to delete notifications received in different client services on one or more client devices. When a user sends a message to another user, multiple notifications are generated on various client services that are accessed by the other user. The client services are accessed by the other user via a website account. The other user views one of the notifications in a client service. When the other user views the notification, the notification is indicated as read by the client service. However, the other client services do not change a status of remaining notifications received within the other services. Various implementations described in the present disclosure modify the status when the other user reads the notification in one of the client services.
Other aspects will become apparent from the following detailed description, taken in conjunction with the accompanying drawings.
Various implementations of the present disclosure may best be understood by reference to the following description taken in conjunction with the accompanying drawings.
The following implementations describe systems and methods for managing notifications. It will be apparent, that the present implementations may be practiced without some or all of these specific details.
The client system 102 includes one or more client devices, e.g., desktop computer, laptop computers, tablets, and cell phones. Client service representations 104 are displayed on a display device of a client device of the client system 102. In some implementations, a client service representation is displayed within a website that includes one or more web pages. A client service is executed by a graphical processing unit (GPU) of the client system 102 to render a corresponding client service representation. For example, the client service 105P is executed by a GPU of a client device to display the client service representation 104P. Examples of a display device includes a light emitting diode (LED) display device, a liquid crystal display (LCD) device, a cathode ray tube (CRT) display device, and a plasma display device.
Examples of a client service include an application service and an operating system service. Examples of an application service include a mobile application service, a music service, a search service, a social network service, an electronic messaging service, a widget service, a toolbar service, a calendar service, a document storage service, a document creation service, a photo storage service, a news service, a maps service, a translation service, and a telecommunications service. A corresponding client application is executed by one or more servers of a server system 106 to provide a client service. For example, a client application 1081 is executed to provide the client service 1051 and another client application 1082 is executed to provide the client service 1052. As another example, a client application includes instructions that provide functionality and a client service includes instructions that provide representation of the functionality. To further illustrate, a client service includes instructions that command artwork, e.g., look and feel, of a client service representation and a client application includes functionality, e.g., what information to display when a link is selected by a user via an input device. A server, as used herein, includes a physical machine or a virtual machine.
It should be noted that a client application is executed by the processor 254 to generate and send a corresponding client service that is processed by a GPU to provide the corresponding client service representation. For example, the client application 108P is executed by a processor of the server system 106 to generate and send the client service 105P that is processed by a GPU of the client system 102 to display the client service representation 104P.
The server system 106 includes one or more servers, each of which includes one or more processors and one or more memory devices. A processor, as used herein, includes an application specific integrated circuit (ASIC), a programmable logic device (PLD), a central processing unit (CPU), or a microprocessor.
As used herein, a memory device includes a read-only memory (ROM), a random access memory (RAM), or a combination thereof. As another example, a memory device includes a hard disk and a flash memory.
In some implementations, one or more of client service representations 104 extends across one or more of the remaining of the client service representations 104. For example, a toolbar, which is a toolbar service representation, extends across an electronic messaging service representation, a social network service representation, a photo storage service representation, a document storage service representation, and a document creation service representation. As another example, a toolbar is displayed on a display screen when an electronic messaging service, a document creation service, a document storage service, and/or a search service are accessed by a user. Examples of a display screen include an LED display screen, an LCD screen, a CRT display screen, and a plasma display screen. A user, as used herein, is an entity or a person.
In various implementations, one or more client services 105 are accessed by a user via an input device. Examples of an input device include a keyboard, a mouse, a stylus, and a touch screen. For example, login information, e.g., a user name and/or a password, is received by a server from a user via an input device. In this example, the server authenticates the login information and upon authentication, provides access to one or more of client services 105.
In some implementations, all client services 105 are accessed by a user when his/her login information is authenticated. In other implementations, one or more but not all of the client services 105 are accessed by a user when his/her login information is authenticated. In yet other implementations, a first set of login information is authenticated to provide access to one or more but not all of the client services 105 and a second set of login information is authenticated to provide access to the remaining of the client services 105. For example, a first user name and a first password of a user are authenticated to provide access to client services 1051 and 1052 and a second user name and a second password of the user are authenticated to provide access to client services 1053 thru 105P.
In some implementations, a mobile application service is provided by a server to perform a variety of tasks on a cell phone. For example, a mobile application service includes a music service, a search service, a social network service, an electronic messaging service, a widget service, a toolbar service, a calendar service, a document storage service, a document creation service, a photo storage service, a news service, a maps service, a translation service, a telecommunications service, or a combination thereof that is provided on a cell phone.
In some implementations, a music service is provided by a server to allow a user to upload music to the server via a website and/or to download music from the server via the website. Moreover, in some implementations, a server that provides a search service receives a search query from a user via a web browser, searches one or more databases, and provides results of the search via the web browser to the user.
Also, in several implementations, a social network service provides social services that allow users to stay in touch with each other. For example a social network service provides a website for a user to post multimedia, e.g., an image, text, video, or audio, receive multimedia from another user, search for other users, chat with users, and/or categorize users. Moreover, in some implementations, an electronic messaging service allows a user to send and/or receive electronic mails from other users via a website. In several implementations, multimedia is embedded within an electronic message.
Furthermore, in several implementations, a widget service allows a user to access information, e.g., a time of day, a calendar, weather, stock quote, etc., from a computer desktop. For example, when a user downloads a widget service via a website, the information that is accessed via the widget service is displayed on a display screen. The information accessed via a widget is accessed from one or more servers via a network. Also, in some implementations, a toolbar service provides a display of input/output (I/O) elements, e.g., buttons, icons, and menus on a display screen.
Additionally, in some implementations, a document creation service allows a user to create via a website a formatted document, e.g., a spreadsheet and a word processing document. Also, in some implementations, a document storage service allows a user to store a document on a server.
Moreover, in several implementations, a photo storage service allows a user to store, access, view and/or share images via a website on a server. An image is shared with other users. For example, when a share icon within a photo storage service is selected by a user via an input device, another user can view on a website one or more photos that are shared. Furthermore, in some implementations, a news service provides access to news, e.g., world news, finance news, entertainment news, weather news, local community news, etc., via a website.
Also, in some implementations, a maps service provides access to a user to directions from a start address to a destination address, a satellite view of a geographical area, and/or to places of interest to a user. Moreover, in some implementations, a translation service provides access to a user to translation of a web page from one language to another language.
It should be noted that the client services 105 are not limited to the ones described herein. For example, various other services 105 include legal search service, a shopping service, and financial services.
Notifications 110 are displayed in client service representations 104. For example, a notification 1101 is displayed in the client service representation 1041, a notification 1102 is displayed in the client service representation 1042, a notification 1103 is displayed in the client service representation 1043, and so on until a notification 110P is displayed in the client service representation 104P.
A notification is a part of a client service representation. For example, when the client service 105P is executed by a GPU to render the client service representation 104P, the notification 110P is also rendered within the client service representation 104P.
It should be noted that the notifications 110 notify a first user that a second user sent from his/her website account interface a network message to the first user's website account. When a network message is sent from one website account interface to another website account interface, the network message is posted on the other website account interface. Examples of each of the notifications 110 include an integer that indicates a number of notifications, a text notice that indicates that a network message is posted in a website account interface, a combination thereof, etc. For example, when a user sends a network message, e.g., “Nice pictures”, “How are you?”, “I went to San Francisco this weekend”, etc., from his/her website account interface to another user's website account interface, a notification is displayed in one of the client service representations 104 that is accessed via the other user's website account interface. In this example, the notification indicates that one network message is received within the other user's website account interface. Examples of a text notice include “You have one message”, “Peter wrote on your wall”, and “You have a message”. In some implementations, the notification 1101 is an integer and the notification 1102 is a text notice.
In several implementations, the notifications 110 are associated with a single network message. For example, when any of the notifications 110 are selected by a user via an input device, the same network message is displayed to the user. As another example, when a network message is sent from one website account interface to another website account interface, the notifications 110 are displayed in the client service representations 104. As yet another example, a first notification, e.g., notification 1101, includes multiple sub-notifications that lead to a network message and a second notification, e.g., notification 1102, also leads to the network message. In this example, the first notification includes a first sub-notification, e.g., an integer, that is displayed on a display screen. In this example, when the first sub-notification is selected by a user via an input device, a second sub-notification, e.g., text notice, is displayed to the user. The second sub-notification is a part of the notification. When the second sub-notification is selected by the user via the input device, the network message is displayed. Moreover, when the second notification is selected by a user via an input device, the network message is displayed.
A website account is associated with one or more of client services 105 via the login information. For example, when a user name and password are authenticated, access to a website account is provided to a user. In the example, one or more of client services 105 are provided to the user via the website account. Also, in this example, a website account interface that includes the client service representations 104 is displayed to the user. Moreover, in this example, the website account interface is an interface common to one or more client services 105 that are accessed when the login information is authenticated. Furthermore, a website account is accessed via a website of a web browser.
Notification data 112 is sent by the server system 106 via a network 230 to the client system 102, which processes the notification data 112 on one or more display screens to display the notifications 110. For example, the notification data 1121 is sent by the server system 106 via the network 230 and is processed by the client system 102 to display the notification 1101 within the client service representation 1041. As another example, the notification data 112P is sent by the server system 106 via the network 230 and is processed by the client system 102 to display the notification 110P within the client service representation 104P. In several implementations, notification data is embedded within a notification. For example, when the notification data 112P is sent by the server system 106 via the network 230 and is processed, e.g., rendered, etc., by the client system 102 to display the notification 110P within the client service representation 104P, the notification data 112p becomes a part of the notification 110p. As another example, when a user reads the notification 110p that may have a format, e.g., italics, bold, colored, grayed, font, letter size, etc., the user reads information, e.g., substance, conveyed message, sequence of symbols, etc., within the notification data 112p.
Examples of the network 230 includes a wired network, a wireless network, or a combination thereof. For example, the network 230 includes a wired local area network (LAN), a wired wide area network (WAN), a wireless LAN, a wireless WAN, or a combination thereof. As another example, the network 230 includes an Intranet, the Internet, or a combination thereof.
The server system 106 creates and maintains a database 116 of identifiers ID1 thru IDP of notification data 112 and read status 120. Each identifier ID is associated with different notification data 112. For example, the notification data 1121 is identified with the identifier ID1, the notification data 1122 is identified with the identifier ID2, and so on until the notification data 112P is identified with the identifier IDP.
Furthermore, each identifier ID1 thru IDP is associated with an identity Id1041 thru Id104P of a client service. For example, the identifier ID1 is associated with an identity Id1041 of the client service 1051 and the identifier IDP is associated with an identity Id104P of the client service 105P.
Moreover, each read status is associated with an identifier of notification data. For example, a value A1/B1 is a value of the read status 120 of the notification data 1121 that is processed to display notification 1101 within the client service representation 1041. As another example, a value AP/BP is a value of the read status 120 of the notification data 112P that is processed to display notification 110P within the client service representation 104P.
An example of the value A, e.g., one or more of the values A1 thru AP, includes a zero or a one. A is set to indicate a value X and B e.g., one or more of the values B1 thru BP, is set to indicate a value Y, where X and Y describe status of whether a message is read or unread, and where X has a different value than Y. For example, if A is zero, B is one and if A is one, B is zero. When a value of A is assigned to a read status of a notification that is displayed within a client service representation, the notification is unread by a user via a client service that is executed to render the client service representation. For example, when the notification 1102 that is displayed within the client service representation 1042 has a read status of A2, a user has not selected the notification 1102 to read the notification 1102. Moreover, when a value of B is assigned to a read status of a notification that is displayed within a client service representation, the notification is read by a user via a client service that is processed to render the client service representation. For example, when the notification 1101 that is displayed within the client service representation 1041 has a read status of B1, a user has selected the notification 1101 to read the notification 1101.
The value A1 changes to B1 within the database 116 when a processor of the server system 106 determines that the notification 1101 is read via the client service 1051. The notification 1101 is read via the client service 1051 when a user selects the notification 1101 displayed within the client service representation 1041. Moreover, the value AP changes to BP when a processor of the server system 106 determines that the notification 110P is read via the client service 105P. The notification 110P is read via the client service 105P when a user selects the notification 110P displayed within the client service representation 104P.
In some implementations, the server system 106 initiates the read status 120 to indicate that all notifications are unread. For example, the server system 106 initiates the read status 120 to values A1 thru AP.
When a user reads one of the notifications 104 via a corresponding one of client service representations 104 in which the notification is displayed, a “read notification” (RN) message 218 is sent from the client system 102 via the network 230 to the server system 106. For example, a user selects via an input device the notification 1101 within the client service representation 1041 to read the notification via the client service 1051 that is processed to render the representation 1041. In some implementations, the RN message 218 includes an identifier of one of client services 105 via which one of notifications 110 is read and an identifier of the notification. For example, the RN message 218 indicates that the notification 1101 is read by a user via the client service 1051.
Upon determining that the selection is made, the client system 102 sends the RN message 218 to an RN handler 114 via the network 230. When the RN handler 114 receives the RN message 218, the RN handler 114 updates a value, of read status 120, that is identified by the identifier ID1. For example, in response to receiving the RN message 218, the RN handler 114 determines that the identifier ID1 within the RN message 218 identifies the notification data 1121. Upon determining so, the RN handler 114 determines that the read status A1 within the database 116 corresponds to the identifier ID1. The RN handler 114 updates the value from A1 to B1.
Moreover, upon updating the value from A1 to B1, the RN handler 114 also updates values of read status 120 of the remaining notification data 1122 thru 112P that are associated with the notification data 1121 that is identified in the RN message 218. For example, in response to updating the value from A1 to B1, the RN handler 114 updates the values A2 thru AP to B2 thru BP in the database 116. In some implementations, the RN handler 114 updates the values A2 thru AP to B2 thru BP simultaneous with an update of the value A1 to B1. Moreover, in other implementations, the RN handler 114 updates the values A2 thru AP to B2 thru BP after an update of the value A1 to B1.
A notification removal handler 126 determines whether one or more of the values A of read status 120, that correspond to the identifiers ID1 thru IDP of the notification data 112 are updated. For example, the notification removal handler 126 determines whether A1 changed to B1 and A2 changed to B2, and so on until AP changed to B. As another example, the notification removal handler 126 determines whether A1 changed to B1 or A2 changed to B2 and so on until AP changed to BP.
In response to determining that the one or more values, of the read status 120, that correspond to the identifiers ID1 thru IDP of the notification data 104 are updated, the notification removal handler 126 generates a modify instruction message 232 that is sent via the network 230 to the client system 102. In some implementations, the modify instruction message 232 includes the values B2 thru BP and the identities Id2 thru IdP of client services 1052 thru 105P, which are unused for reading the notifications 1102 thru 110P. The identities Id2 thru IdP within the modify instruction message 232 identify the corresponding client services 1052 thru 105P for which the values A2 thru AP changed to corresponding values B2 thru BP.
In other implementations, the modify instruction message 232 includes one or more of the values B2 thru BP that corresponds to one of the client services 1052 thru 105P that requested the read status 120. For example, when the client service 1052 generates a poll requesting the read status 120, the modify instruction message 232 includes the value B2.
Upon receiving the modify instruction message 232, the client system 102 modifies the remaining notifications 1102 thru 110P that are unread by a user. For example, the client system 102 unbolds, shades, or deletes the notifications 1102 thru 110P. To further illustrate, the client system 102 changes an integer ‘1’ that indicates that the notification 1102 is received within the client service 1052 to ‘0’. As another example, the client system 102 deletes a text notice that indicates within the client service representation 1042 that “You have a message”. As another example, the client system 102 changes a display of the notifications 1102 thru 110P to indicate that the notifications are read even though the notifications 1102 thru 110P are unread by a user. To further illustrate, the client system 102 unbolds a text notice that indicates within the client service representation 1042 that “You have a message”.
It should be noted that the RN handler 114 and notification removal handler 126 are modules, which are computer programs that are executed by one or more servers of the server system 104.
It should also be noted that in some implementations, functions described herein as performed by the server system 106 are performed by one or more processors of one or more servers of the server system 106. Similarly, in some implementations, functions described herein as performed by the client system 102 are performed by one or more processors of one or more client devices of the client system 102.
In various implementations, the notification 1421 is a sub-notification that when selected by a user via an input device leads to a display of another sub-notification, e.g., “User has commented on your photo.” Upon receiving a selection of the other sub-notification from a user, a network message, e.g., “Nice photo”, is displayed.
A notification 1422 is displayed within a web browser service representation 1402 that is displayed on a display screen of a client device. The notification 1422 indicates that a network message is received by a user in a website account interface that is associated with a website account that is further associated with a social network service. When a selection of the notification 1422 is received, a network message is displayed on a display screen of a client device.
A notification 1423 is displayed within an electronic message inbox of an electronic message service representation 1403 when the user 1442 receives a network message from another user. For example, the notification 1423 includes a text notice that indicates that “User 1441 commented on your post”. In some implementations, when the notification 1423 is selected by the user 1442 via an input device of a client device, a network message to the user 1442 is displayed within an electronic message on a display screen of the client device.
Moreover, another notification 1424 is displayed within a toolbar service representation 1404. The notification 1424 indicates that the user 1442 has received a network message in his/her website account interface that is associated with a social network service. The toolbar service representation 1404 includes a picture of the user 1442 and an electronic message address of the user 1442. In some implementations, when the notification 1424 is selected by the user 1442 via an input device of a client device, a network message is displayed to the user 1442 on a display screen of the client device.
It should be noted that a display screen, as used herein, is a display screen of a client device. Moreover, it should be noted that all the notifications 142 when selected by a user lead to the same network message. Accordingly, it is redundant for the user 1442 to select the notifications 1422, 1423, and 1424 after selecting the notification 1421.
In operation 203, it is determined whether an online interaction has occurred with content of one of the client services 105 (
On the other hand, upon determining that the online interaction has occurred, in operation, in operation 207, the notification data 112 is generated and sent via the network 230 to the client system 102 (
It should be noted that in some implementations, the notification data 1101 has a different format than that of the notification 1102. For example, the notification 1101 includes more alphanumeric characters than the notification data 1102. As another example, the notification 1101 includes an image and the notification 1102 includes a video. As another example, the notification 1101 includes one type of multimedia and the notification 1102 includes another type of multimedia. Types of multimedia include an image, a video, text, and an audio.
Moreover, it should be noted, that in various implementations, content, e.g., features, of the service 1051, is different than content of the service 1052. For example, some features of the service 1051 facilitate chat with social network friends, allow posting of multimedia, and allow keeping touch with social network friends. Moreover, in this example, some features of the service 1052 allow sending electronic messages to other users, receiving electronic messages from the other users, and accessing messages with the service 1052 for a longer time period than with the service 1051. As another example, some features of the service 1051 allow a user to upload music to a server, to download music from the server, and to listen to music and some features of the service 1052 allow a user to upload videos to a server and to watch the videos. As yet another example, the content of the service 1051 is particular to the service 1051. To illustrate, at least one feature of the service 1051 is not offered by the service 1052. As another example, the content of the service 1051 is particular to the service 1051 and the content of the service 1052 is particular to the service 1052. To illustrate, at least one feature of the service 1051 is not offered by the service 1052 and at least one feature of the service 1052 is not offered by the service 1051.
In a variety of implementations, the service 1052 is different from the service 1052. For example, the service 1051 is a telecommunications service and the service 1052 is a social network service. As another example, the service 1051 is a social network service and the service 1052 is an electronic messaging service or a telecommunications service. In some implementations, the service 1051 is the same as the service 1052. For example, both services 1051 and 1052 are a social network service. As another example, both services are an electronic messaging service.
Moreover, in operation 217, it is determined whether an indication of an interaction with the notification 1101 is received via the network 230 from the client system 102. For example, it is determined whether an indication that a user has selected the notification 1101 is received via the network 230.
Upon determining that the indication of the interaction with the notification 1101 is not received, the method 205 ends. On the other hand, upon determining that the indication of the interaction with the notification 1101 is received, in operation 223, the notification data 1122 thru 112P is updated to indicate the interaction with the notification 1101. For example, the notification data 1122 thru 112p is updated to decrement values indicated within notifications 1102 thru 110P. As another example, the notification data 1122 thru 112P is updated to delete or change a shade of the notifications 1102 thru 110P.
In operation 201, a determination is made whether a network message is received from a client device of the client system 102 (
The network message received from the client device is a network message to be sent from one website account to another website account. For example, the network message is received via the network 230 (
Moreover, in operation 210, the notification data 112 is associated with the identifiers ID1 thru IDP of the notification data 112 and with the read status 120 (
Furthermore, in operation 212, positions of the values of the read status 112 that are assigned to the identifiers ID are initiated to the values A1 thru AP indicate that the notification 112 is unread by the user 1442 (
In operation 214, the notification data 112 is sent to the client services 105 (
In operation 215, it is determined whether an indication that one of the notifications 110, e.g., the notification 1101, 1102, 1103, and so on until 110P-1, or 110P, has been interacted with using one of the client service representations 104. For example, it is determined whether a message indicating that one of the notifications 110, e.g., the notification 1101, 1102, 1103, and so on until 110P-1, or 110P, is read by the user 1442. As another example, the user 1442 reads the notification 1101 by selecting via an input device of a client device the notification 1101 displayed within the client service representation 1041 that is displayed on a display screen of the client device. When one of the notifications 110 is read, the RN message 218, which is an example of the indication, is received via the network 230 (
On the other hand, upon determining that the indication that one of the notifications 110 has not been interacted with is received, in operation 220, the read status 120 of the notification data 112 is updated to represent that the notifications 110 have been interacted with based on the indication. For example, when the read notification handler 114 determines that the RN message 218 is received, the read notification handler 114 changes the value A1 to B1, A2 to B2, and so on until the value AP is changed to BP. The values B1 thru BP indicate that the notifications 110 are read. In some implementations, each value A1, A2, and so on until AP and the values B1, B2 and so on until BP is an example of a read status indicator.
It should be noted that the value A1 is changed to the value B1, the value A2 is changed to the value B2 and so on until the value AP is changed to the value BP when the notifications 1102 thru 110P are unread by the user 1442 and the notification 1101 is read by the user 1442. For example, when the notification 1102 is not read by the user 1442 and the notification 1101 is read by the user 1442, the value A2 is changed to B2 without issuance of an RN message that indicates to the server system 105 that the notification 1102 is read via the client service 1052. In this example, the RN message is not issued by a client device of the client system 102. Moreover, in this example, when the notification 1101 is read via the client service 1051, the value A2 is changed to B2 regardless of whether the notification 1102 is read by the user 1442. The method 200 ends after operation 220.
In several implementations, instead of determining whether one of the notifications 110 is read by the user 1442, it is determined whether a number, e.g., two or three, of the notifications are read by the user 1442. In these implementations, the remaining of read status 120 corresponding to the remaining of notification data 112 of the remaining of notifications 110 that are unread by the user 1442 are updated by the read notification handler 114 (
Upon determining that the update to the read status 120 is made, in operation 240, the modify instruction message 232 is sent via the network 230 to the client services 1052 thru 105P. The modify instruction message 232 includes information to modify the notifications 1102 thru 110P. As an example, the modify instruction message 232 includes the identifiers ID2 thru IDP, the identities Id2 thru Idp, and the values B2 thru BP. As another example, the modify instruction message 232 includes the identifiers ID2 thru IDP and the value B2 thru BP. As yet another example, the modify instruction message 232 indicates to the client services 1052 thru 105P that the value A1 is changed to the value B1 and so on until the value AP is changed to the value BP. The method 234 ends after operation 240.
In various implementations, the method 234 follows the method 200 (
In operation 252, it is determined whether the notification 1101 is displayed within the client service representation 1041 (
On the other hand, upon determining that the notification 1101 is displayed, in operation 256, notification data 112 is sent from the client system 102 to the server system 106 via the network 230 (
In operation 260, an instruction to display the notification 1102 within the client service representation 1042 of the website account interface of the user 1442 is received. Upon receiving the instruction, the notification 1102 is displayed within the client service representation 1042.
In operation 262, it is determined whether the notification 1101 that is displayed within the client service representation 1041 is read by a user via an input device. For example, it is determined whether the notification 1101 is selected by a user via an input device. The notifications 110 notify the user 1442 that the network message 204 is received by a client device that the user operates.
Upon determining that the notification 1101 is unread, the method 250 ends. On the other hand, upon determining that the notification 1101 is read, the notifications 1101 and 1102 are modified. For example, the notification 1101 is unbolded or shaded but still displayed within the client service representation 1041 that is displayed on a display screen of a client device and the notification 1102 is deleted from the display screen. As another example, the notifications 1101 and 1102 are unbolded or shaded but both the notifications 1101 and 1102 are displayed on a display screen of a client device. The method 250 ends after the operation 264.
Moreover, after the authentication, the user 1441 accesses the client service 1051 via the client service representation 1041 that is displayed on a display screen 1621 and enters the network message 204 via an input device 2661. The input device 2661 is coupled with a bus 1541 via an I/O interface 1561. It should be noted that the network message 204 is displayed by the GPU 1661 on the display screen 1621 when a processor 1641 receives the network message 204 from the user 1442. The display screen 1621 is coupled with an I/O interface 1741. The GPU 1661, the processor 1641, the I/O 1561, the network adapter 2721, a memory device 2791, and the I/O 1741 are coupled with each other via the bus 1541.
The user 1441 addresses the network message 204 to the user 1442. For example, the user 1441 selects an icon that represents the user 1442 within the client service representation 1041. When the icon is selected, the client service 1051 is executed by the server 254 to display a comment field within the client service representation 1041. The user 1441 enters a comment in the comment field. When the user 1441 enters the comment, the comment is an example of the network message 204 that is directed to the user 1442.
When the network message 204 is addressed to the user 1442, a network adapter 2721 sends the network message 204 via the network 230 to the server 254. Examples of a network adapter include a network interface card (NIC) and a modem. A network adapter 274 of the server 254 receives the network message 204. A processor 276 of the server 254 processes the network message 204 to determine that the network message 204 is generated from the website account 2261 and is addressed to a website account 2262 of the user 1442.
Moreover, upon receiving the network message 204, notification data 112 is generated for the client services 105 by the processor 276. Furthermore, upon receiving the network message 204, the database 116 is created by the processor 276 within a memory device 278. For example, the processor 276 assigns the identifiers ID1 thru IDP to the notification data 112 and assigns positions of the values A/B of the read status 120 in the database 116 (
The network adapter 274 sends the network message 204, the notification data 112, the identities id of client service 105 that are processed to render the client service representations 104 in which the notification data 110 is displayed, and the identifiers ID of the notification data 110 to the client device 1522 that is operated by the user 1442 to access his/her website account 2262. For example, the notification data 1121 is sent to the client service 1051 via the network 230, the notification data 1122 is sent to the client service 1052 via the network 230, and so on until the notification data 112P is sent to the client service 105P via the network 230.
In some implementations, the user 1442 enters his/her login information that is authenticated by the server 254 to allow the user 1442 to access the website account 2262. When the login information of the user 1442 is authenticated, the user 1442 is allowed access by the server 254 to the client services 105. Moreover, when the login information of the user 1442 is authenticated, a GPU 1662 processes data of the client services 105 and data of a website account interface 2212 to render the client service representations 105 within the website account interface 2212. In various implementations, the website account interface 2212 includes login information regarding the user 1442. In some implementations, the website account interface 2212 includes an image of the user 1442.
Furthermore, when the network message 204, the notification data 112, the identities Id, and the identifiers ID are received by a network adapter 2772 of the client device 1522, the GPU 1662 processes the notification data 112 to display the notifications 110 on a display screen 1622 of a display device 170 of the client device 1522. For example, the notification 1101 is displayed within the client service representation 1041 and so on until the notification 110P is displayed within the client service representation 104P.
Moreover, read bits 107 within a memory device 2792 of the client device 1522 are generated by a processor 1642. Each of the read bits 107 identifies a read status of a corresponding notification. For example, the read bit 1071 identifies whether the notification 1101 is read by the user 1442. As another example, the read bit 107P identifies whether the notification 110P is read by the user 144P. If a value of the read bit 107P is AP, the processor 1642 determines that the notification 110P is unread by the user 1442. On the other hand, if a value of the read bit 107P is BP, the processor 1642 determines that the notification 110p is read by the user 1442. When the read bits 107 are generated, all the read bits 107 are initiated by the processor 1642 to the values A.
The display device 170 is coupled with an I/O interface 1742. The GPU 1662, the processor 1642, an I/O 1562, the memory device 2792, the network adapter 2722, and the I/O 1742 are coupled with each other via a bus 1542.
The user 1442 views the notification 1101 and selects the notification 1101 via the input device 2662. When the notification 1101 is selected, processor 1642 determines that the notification 1101 is read by the user 1442. Upon determining that the notification 1101 is read, the network adapter 2722 generates the read notification message 218 that includes the identifier ID1 that identifies the notification 1101 that is read.
The read notification message 218 is sent via the network 230 to the server 254. The network adapter 274 receives the read notification message 218 and disintegrates the read notification message 218 to provide the identifier ID1 to the processor 276. Upon receiving the identifier ID1, the processor 276 determines that the notification 1101 that corresponds to the notification data 1121 was read.
Upon determining that the notification 1101 was read, the processor 276 changes the value A1 to B1 and changes the remaining values A2 to AP to B2 thru BP. For example, the processor 276 changes the value A2 to B2 and so on until the value AP is changed to the value BP. Upon determining that the values A1 thru AP are changed to B1 thru BP, the network adapter 274 generates the modify instruction message 232 that includes the identifiers ID, the identities Id, and the values B1 thru BP. As described above, the modify instruction message 232 includes commands to modify the notifications 110.
Upon receiving the modify instruction message 232, the network adapter 2722 disintegrates the modify instruction message 232 to provide the identifiers ID, the identities Id, and the values B1 thru BP to the processor 1642. Upon receiving the identifiers ID, the identities Id, and the values B1 thru BP, the processor 164 modifies read bits 107 to the values B2 thru BP for the client services 1052 thru 105P that are identified by the identities Id2 thru IdP. For example, the processor 1642 modifies the read bits 1072 thru 107P from the value A to the value B. The GPU 1662 modifies one or more of the notifications 110 that are displayed within one or more of the client service representations 104 based on the read bits 107. For example, when the GPU 1662 determines that the read bits 1072 thru 107P have the values B2 thru BP, the GPU 1662 deletes the notifications 1102 thru 110P. As another example, when the GPU 1662 determines that the read bits 1072 thru 107P have the values B2 thru BP, the GPU 1662 unbolds or shades the notifications 1102 thru 110P.
In other implementations, the database 116 is generated to include the identifier ID and the read status 120 and exclude the identities Id. In these implementations, instead of receiving the modify instruction message 232 that includes the identifiers ID, the identities Id, and the notification data 112, any of the client services 1052 thru 105P sends a poll via the network adapter 2722 and the network 230 to the server 254 to determine whether a corresponding one of the values A2 thru AP has changed to a corresponding value B2 thru BP within the database 116. For example, the client service 1052 sends a poll to the server 254 to determine whether the value A2 has changed to B2 within the database 116.
In these implementations, upon receiving the poll, the network adapter 274 determines whether a corresponding one of the values A2 thru AP have changed to a corresponding value B2 thru BP. For example, the network adapter 274 determines whether the value A2 has changed to B2. Upon determining that the corresponding one of the values A2 thru AP has changed to a corresponding value B2 thru BP, the network adapter 274 sends an answer to the poll and the answer includes the one of the values B2 thru BP. For example, the network adapter sends the answer with the value B2.
Further, in these implementations, the network adapter 2722 disintegrates the answer and provides one of the values B2 thru BP within the answer to the one of the client services 1052 thru 105P that sent the poll. For example, the network adapter 2722 disintegrates the answer and provides the value B2 within the answer to the client service 1052. It should be noted that the client services 1052 thru 105P are executed by the processor 2662.
Moreover, in these implementations, upon receiving one of the values B2 thru BP from the network adapter 2722, the one the client services 1052 thru 105P that sent the poll is executed by the processor 2662 to send commands to the GPU 1662 to modify one of the notifications 1102 thru 110P that is displayed within a corresponding one of the client service representations 1042 thru 104P. For example, upon receiving the value B2 from the network adapter 2722, the client service 1052 that sent the poll is executed by the processor 2662 to send a command to the GPU 1662 to delete, unbold, or shade the notification 1102 that is displayed within the client service representation 1042.
In some implementations, the read notification handler 114 and the notification removal handler 126 of
It should be noted that in some implementations, the functions described herein as performed by a processor, a network adapter, and a GPU that include separate processors within a client device are performed by one or more processors within the client device.
It should further be noted that in some implementations, the functions described herein as performed by the server 254 are performed by multiple servers. For example, authentication is performed by another server instead of the server 254.
Implementations of the present disclosure can be fabricated as computer-readable code on a non-transitory computer-readable storage medium, which is a memory device. The non-transitory computer-readable storage medium holds data which can be read by a computer system. Examples of the non-transitory computer-readable storage medium include network attached storage (NAS), ROM, RAM, a combination of RAM and ROM, compact discs (CD)s, Blu-Ray™ discs, flash memory, hard disks, magnetic tapes, and other data storage devices. The non-transitory computer-readable storage medium may be distributed over a network-coupled computer system so that the computer-readable code is executed in a distributed fashion.
Although the method operations were described in a specific order, it should be understood that some operations may be performed in a different order, when the order of the operations do not affect the expected results. In addition, other operations may be included in the methods presented, and the operations may be performed by different entities in a distributed fashion, as long as the processing of the operations is performed in a desired way.
In addition, at least one operation of some methods performs physical manipulation of physical quantities, and some of the operations described herein are useful machine operations. Implementations presented herein recite a device or apparatus. The apparatus is specially constructed for a specific purpose. The apparatus includes a processor capable of executing the program instructions of the computer programs presented herein.
Although the foregoing implementations have been described with a certain level of detail for purposes of clarity, it is noted that certain changes and modifications can be practiced within the scope of the appended claims. Accordingly, the provided implementations are to be considered illustrative and not restrictive, not limited by the details presented herein, and may be modified within the scope and equivalents of the appended claims.
This patent application claims the benefit of and priority, under 35 U.S.C. §119(e), to provisional patent application having Application No. 61/619,320, filed on Apr. 2, 2012, which is hereby incorporated by reference in its entirety for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5835084 | Bailey | Nov 1998 | A |
5958006 | Eggleston | Sep 1999 | A |
6505235 | Ogushi | Jan 2003 | B1 |
6993522 | Chen | Jan 2006 | B2 |
6999469 | Chu | Feb 2006 | B1 |
7305069 | Day | Dec 2007 | B1 |
7509382 | Jania | Mar 2009 | B1 |
7631045 | Boerries | Dec 2009 | B2 |
7647202 | Lamontagne | Jan 2010 | B2 |
7664814 | Little, II | Feb 2010 | B2 |
7673002 | Damarla | Mar 2010 | B1 |
7814160 | Burtner | Oct 2010 | B2 |
7865557 | Tomkow | Jan 2011 | B2 |
8090878 | Pallipuram | Jan 2012 | B2 |
8161107 | Gregg | Apr 2012 | B2 |
8347317 | Balaji | Jan 2013 | B1 |
8375309 | Fioretti | Feb 2013 | B2 |
8375400 | Sutedja | Feb 2013 | B2 |
8516060 | Xie et al. | Aug 2013 | B2 |
8539361 | Hardy | Sep 2013 | B2 |
8706824 | Davenport | Apr 2014 | B2 |
8761737 | Clarke | Jun 2014 | B2 |
8825842 | Papakipos | Sep 2014 | B2 |
8825962 | Zhu | Sep 2014 | B1 |
8880627 | Davenport | Nov 2014 | B2 |
8965964 | Odell | Feb 2015 | B1 |
8984068 | Bremner | Mar 2015 | B2 |
9148397 | Talwar | Sep 2015 | B2 |
9158559 | Simmons | Oct 2015 | B2 |
9203796 | Hsiao | Dec 2015 | B2 |
9219620 | Nixon | Dec 2015 | B2 |
9252977 | Levi | Feb 2016 | B2 |
20030023690 | Lohtia | Jan 2003 | A1 |
20040003042 | Horvitz | Jan 2004 | A1 |
20040059791 | Sherman | Mar 2004 | A1 |
20050021650 | Gusler | Jan 2005 | A1 |
20060053379 | Henderson | Mar 2006 | A1 |
20070185961 | Perlow | Aug 2007 | A1 |
20080148148 | Ramanathan | Jun 2008 | A1 |
20080242370 | Lando | Oct 2008 | A1 |
20090049141 | Jones | Feb 2009 | A1 |
20090150507 | Davis | Jun 2009 | A1 |
20100017492 | Reistad | Jan 2010 | A1 |
20100049815 | Vanecek | Feb 2010 | A1 |
20100223341 | Manolescu | Sep 2010 | A1 |
20110119616 | Suzuki | May 2011 | A1 |
20110231499 | Stovicek | Sep 2011 | A1 |
20110258264 | Bremner | Oct 2011 | A1 |
20110271202 | Wong | Nov 2011 | A1 |
20130007665 | Chaudhri | Jan 2013 | A1 |
20130159440 | Appelman | Jun 2013 | A1 |
20130325922 | Chaudhri | Dec 2013 | A1 |
20140149538 | Deeter | May 2014 | A1 |
20140201289 | Wheeler | Jul 2014 | A1 |
20150019654 | Wheeler | Jan 2015 | A1 |
Number | Date | Country | |
---|---|---|---|
61619320 | Apr 2012 | US |