Embodiments of the present disclosure relate generally to communication technologies and, more particularly, but not by way of limitation, to processing of group chat message conversations.
Various computing devices including mobile technologies such as smartphones provide the ability for users to send messages between devices. Group messaging applications provide a convenient way for users to keep in touch with others. In various devices, different systems may be used to manage a potentially large number of messages received by a single user.
Various ones of the appended drawings merely illustrate example embodiments of the present disclosure and should not be considered as limiting its scope.
The description that follows includes systems, methods, techniques, instruction sequences, and computing machine program products that embody illustrative embodiments of the disclosure. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide an understanding of various embodiments of the inventive subject matter. It will be evident, however, to those skilled in the art, that embodiments of the inventive subject matter may be practiced without these specific details. In general, well-known instruction instances, protocols, structures, and techniques are not necessarily shown in detail.
Group messaging systems allow users to create group chat conversations including two or more participants. A group chat conversation allows the participants of the group chat conversation to send/receive messages to/from other users that are participants of the group chat conversation. As an example, a participant of a group chat conversation can draft and transmit a message as part of a group chat conversation, which will be received by the other participants of the group chat conversation.
A user can participate in multiple group chat conversations, which can be problematic. For example, presenting each group chat conversation to the user can be challenging as the number of group chat conversations increases. Accordingly, a group messaging system can provide a user with a chat feed interface listing the group chat conversations in which the user is participating. The chat feed interface can be an interface that presents a chat feed. A chat feed can be any type of listing of one or more group chat conversations, such as a listing of group chat conversations in which the user is a participant. The user can scroll through the group chat conversations listed in the chat feed, select a group chat conversation to view, read chat messages transmitted as part of the group chat conversation, as well as draft and transmit new messages as part of the group chat conversation. The group chat conversations listed in the chat feed can be labeled based on participants of the group chat conversation or, alternatively, based on a group chat conversation name assigned to the group chat conversation.
In addition to providing a user with a chat feed to manage multiple group chat conversations, the group messaging system can also provide a user with a search interface to search for group chat conversations in which the user is a participant. The search interface can enable a user to enter a search query, such as key words, names of participants, a group chat conversation name, etc. The group messaging system searches group chat conversations based on the received search queries and provides the results to the user.
To further assist a user manage multiple group chat conversations, the group messaging system can provide the user with a listing of suggested group chat conversations in which the user is participant. For example, the group messaging system can provide the user with a listing of suggested group chat conversations in response to a user selecting to create a new group chat conversation or, alternatively, in response to a user generating a new message. The user can select one of the suggested group chat conversations rather than enter participant names individually.
In some instances, group chat conversations may eventually be exhausted and/or become irrelevant. These exhausted and/or irrelevant group chat conversations may clutter a user's interface and make it difficult to find desired group chat conversations, as well as drain resources, such as memory. To alleviate these issues, the group messaging system can execute a soft deletion of group chat conversations that are assumed to be exhausted and/or irrelevant (e.g., group chat conversations that have remained inactive for a threshold period of time). Executing the soft deletion can cause the group chat conversation to be removed from the listing of suggested group chat conversations presented to the user. As a result, the suggested group chat conversations presented to a user will not include group chat conversations assumed to be exhausted and/or irrelevant.
A group chat conversation that has been soft deleted may still be accessed by a user. For example, the group chat conversation may remain in the users chat feed and a user can scroll through the chat feed to access the group chat conversation. A group chat conversation that has been soft deleted may also remain accessible via search if the group chat conversation has been assigned a group chat conversation name. Accordingly, a user can enter the group chat conversation name as a search query to access the group chat conversation.
While group chat conversations that have been assigned a group chat conversation name can remain accessible via search after a soft deletion has been executed, group chat conversations that have not been assigned a group chat conversation name may not be accessible via search. However, a user may access these types of group chat conversations via the chat feed.
Although a group chat conversation has been soft deleted, data associated with the group chat conversation is not necessarily deleted. Accordingly, the user can still access the group chat conversation, draft and transmit new messages as part of the group chat conversation, and receive messages as part of the group chat conversation. Further, if a new message is sent or received as part of a group message conversation, the soft deletion of the group chat conversation can be reversed. Hence, the group chat conversation would again appear in a listing of recommended group chat conversations and/or search results.
As shown in
In some embodiments, the social messaging system 130 allows users to exchange ephemeral messages that may or may not include media content. In various embodiments described herein, any message or group chat conversation may be an ephemeral message or ephemeral conversations. An ephemeral message is any message with an associated deletion trigger. In some embodiments, for example, a text chat message may be set with a deletion trigger for a fixed amount of time after a first user views the message, or for a fixed amount of time after each user in a group chat conversation views the message. In some embodiments, a text or multimedia message may be set with a deletion trigger associated with an amount of time the content is displayed on a device. In various embodiments, these deletion triggers may be shared by all recipients, or may be individualized for different recipients. In other embodiments, a deletion trigger may be set at the beginning of a group chat conversation by a user that initiates the group chat conversation. In other embodiments, a deletion trigger may be standardized for each message, and the deletion trigger may or may not be modified by a device sending a message.
As shown in
The client device(s) 110 can execute conventional web browser applications or applications (also referred to as “apps”) that have been developed for a specific platform to include any of a wide variety of mobile computing devices and mobile-specific operating systems (e.g., IOS™, ANDROID™, WINDOWS® PHONE). In an example, the client device(s) 110 are executing the client application(s) 112. The client application(s) 112 can provide functionality to present information to a user 106 and communicate via the network 104 to exchange information with the social messaging system 130. Each of the client device(s) 110 can comprise a computing device that includes at least a display and communication capabilities with the network 104 to access the social messaging system 130. The client device(s) 110 comprise, but are not limited to, remote devices, work stations, computers, general purpose computers, Internet appliances, hand-held devices, wireless devices, portable devices, wearable computers, cellular or mobile phones, personal digital assistants (PDAs), smart phones, tablets, ultrabooks, netbooks, laptops, desktops, multi-processor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, network personal computers (PCs), mini-computers, and the like. User(s) 106 can be a person, a machine, or other means of interacting with the client device(s) 110. In some embodiments, the user(s) 106 interact with the social messaging system 130 via the client device(s) 110.
As shown in
The databases(s) 134 further store group message data associated with group chat conversations. For example, the group message data can include a data record for each created group chat conversation. Each data record can include data associated with the corresponding group chat conversation, such as the users that are participants of the group chat conversation, a group chat conversation name assigned to the group chat conversation, messages transmitted as part of the group chat conversation, timestamps indicating when messages were sent/received, etc.
An individual can register with the social messaging system 130 to become a member of the social messaging system 130. Once registered, a member can form social network relationships (e.g., friends, followers, or contacts) on the social messaging system 130 and interact with a broad range of applications provided by the social messaging system 130.
The application logic layer 126 includes various application logic module(s) 150, which, in conjunction with the interface module(s) 140, generate various user interfaces with data retrieved from various data sources or data services in the data layer 128. Individual application logic module(s) 150 may be used to implement the functionality associated with various applications, services, and features of the social messaging system 130. For instance, a social messaging application can be implemented with one or more of the application logic module(s) 150. The social messaging application provides a messaging mechanism for users of the client device(s) 110 to send and receive messages that include text and media content such as pictures and video. The client device(s) 110 may access and view the messages from the social messaging application for a specified period of time (e.g., limited or unlimited). In an example, a particular message is accessible to a message recipient for a predefined duration (e.g., specified by a message sender) that begins when the particular message is first accessed. After the predefined duration elapses, the message is deleted and is no longer accessible to the message recipient. Of course, other applications and services may be separately embodied in their own application server module(s) 150.
As illustrated in
The group messaging system 160 provides functionality enabling users to participate in and manage multiple group chat conversations. A group chat conversation, as referred to herein, is any set of communications, messages, etc., between two or more user participants. A group chat conversation can be stored in a memory of a client device 110, or stored within one or more databases 134. A group chat conversation includes one or more messages, with later messages initiated in response to one or more earlier messages or otherwise associated with earlier messages. Messages within a group chat conversation may comprise text, image files, hyperlinks, audio files, video files, and other media. A group chat conversation as referred to herein is a conversation involving two or more user participants, user accounts, or devices that send or receive any messages of a set of messages in a communication. A group chat conversation may also be considered as any conversation where one or more messages that make up a conversation are sent to one or more recipients.
Any one or more of the modules described may be implemented using hardware alone (e.g., one or more of the computer processors 704 of a machine (e.g., machine 700)) or a combination of hardware and software. For example, any described module of the group messaging system 160 may physically include an arrangement of one or more of the computer processors 704 (e.g., a subset of or among the one or more computer processors of the machine (e.g., machine 700)) configured to perform the operations described herein for that module. As another example, any module of the group messaging system 160 may include software, hardware, or both, that configure an arrangement of one or more computer processors 704 (e.g., among the one or more computer processors of the machine (e.g., machine 700)) to perform the operations described herein for that module. Accordingly, different modules of the group messaging system 160 may include and configure different arrangements of such computer processors 704 or a single arrangement of such computer processors 704 at different points in time. Moreover, any two or more modules of the group messaging system 160 may be combined into a single module, and the functions described herein for a single module may be subdivided among multiple modules. Furthermore, according to various example embodiments, modules described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices.
The communication module 202 provides various communication functionality. For example, the communication module 202 receives and transmits a plurality of messages as part of group chat conversations accessible by one or more client devices 110. In a specific example, the communication module 202 receives and transmits a variety of message content, including text messages, images, embedded links, and the like. The communication module 202 exchanges network communications with the database server(s) 132, the client device(s) 110, and the third party server(s) 120. The information retrieved by the communication module 202 includes data associated with the user (e.g., member profile data from an online account or social network service data) or other data to facilitate the functionality described herein.
The interface module 204 provides user interface functionality for group chat conversations. As one example, the interface module 202 provides users with a group chat interface in which users can transmit and receive messages as part of a group chat conversation. The group chat interface can further enable users to create new group chat conversations. For example, the group chat interface can enable a user to select one or more participants to include in the group chat conversation, assign a group chat interface name, and/or transmit a message to the selected participants as part of the group chat conversation.
As another example, the interface module 202 provides users with a chat feed interface that lists group chat conversations in which the user is a participant. The user can select one of the listed group chat conversations to cause presentation of a corresponding group chat interface, which the user can use to review messages transmitted as part of the group chat conversation, as well as draft and transmit new messages. In some embodiments, the group chat conversations listed in the chat feed can be labeled based on participants of the group chat conversation or, alternatively, based on a group chat conversation name assigned to the group chat conversation.
To present a chat feed interface to a user, the interface module 204 can access group messaging data associated with the user. For example, the interface module 204 can access group messaging data from the database(s) 134 that are associated with the user and/or the client device. Additionally, the interface module 204 can access group messaging data stored locally by the client device 110. The group messaging data can include data records for group chat conversations in which the user is a participant. Each data record can include metadata associated with the group chat conversations, such as group chat conversation names, user participants, timestamps, messages, etc.
In some embodiments, the group chat conversations can be listed in the chat feed based on a length of time that each group chat conversation has remained inactive (e.g., an amount of elapsed time since a message has been transmitted as part of the group chat conversation). For example, the group chats conversations that have remained inactive for the shortest amount of time (e.g., the most recently active group chat conversations) can be listed higher in the chat feed, whereas group chat conversations that have remained inactive longest can be listed lower in the chat feed. Accordingly, the user will be presented with the most recently active group chat conversations first in the chat feed, and be able to scroll down in the chat feed to access group chat conversations that have remained inactive for a longer period of time.
The interface module 204 determines the length of time that each group chat conversation has remained inactive based on the timestamp data associated with the messages transmitted as part of the group chat conversations. For example, the interface module 204 can access the timestamp value for the most recent message transmitted as part of the group chat conversation. The interface module 204 can then order the group chat conversations in the chat feed based on the timestamp value for the most recent message transmitted as part of the group chat conversation.
The suggestion module 206 provides a user with a listing of suggested group chat conversations. For example, the suggestion module 206 can provide the user with a listing of suggested group chat conversations in response to receiving a message initiation input. A message initiation input can be a user input to create and/or send a message as part of a group chat conversation. For example, a message initiation input can be received as a result of a user selecting to create a new group chat conversation or, alternatively, in response to a user generating a new message. The user can use the listing of suggested group chat conversations to select an existing group chat conversation rather than entering participant names individually.
The suggestion module 206 can gather group messaging data associated with a user and/or the client device 110 to provide the user with the suggested group chat conversations. For example, the suggestion module 206 can gather the group messaging data from the database(s) 134 and/or from data stored locally by the client device 110.
The search module 208 enables a user to search the group chat conversations in which the user is a participant. For example, the search module 208 provides the user with a search interface that the user can utilize to enter a search query, such as a group chat conversation name, keyword, user participants, etc. The search module 208 can utilize an entered search query to search group messaging data associated with the user and/or the client device 110. For example, the search module 208 can search the group messaging data stored by the database(s) 134 and/or stored locally by the client device 110. The search module 208 can provide the resulting search results to the user. For example, the search module 208 can provide the search results within the search interface. A user can utilize the search results to access a corresponding group chat conversation.
The soft deletion module 210 can execute a soft deletion of a group chat conversation that has remained inactive for a threshold period of time. The soft deletion module 210 can gather the timestamp value for the most recent message transmitted as part of a group chat conversation to determine whether the group chat conversation has remained inactive for the threshold period of time.
Soft deleting a group chat conversation causes the group chat conversation to be removed from the listing of suggested group chat conversations presented to the user. A group chat conversation that has been soft deleted may still be accessed by a user. For example, the group chat conversation may remain in the users chat feed, thereby allowing the user to scroll through the chat feed to access the group chat conversation.
A group chat conversation that has been soft deleted may also remain accessible via search if the group chat conversation has been assigned a group chat conversation name. Accordingly, a user can enter the group chat conversation name as a search query to access the group chat conversation. While group chat conversations that have been assigned a group chat conversation name can remain accessible via search after a soft deletion has been executed, group chat conversations that have not been assigned a group chat conversation name may not be accessible via search. A user may, however, access these types of group chat conversations via the chat feed.
To soft delete a group chat conversation, the soft deletion module 210 can modify group messaging data associated with the group chat conversation indicating that the group chat conversation has been soft deleted. For example, the soft deletion module 210 can flag, mark or otherwise modify the data record for a group chat conversation to indicate that the group chat conversation has been soft deleted. The suggestion module 206 and/or the search module 208 can detect the modification to the data record and determine that the corresponding group chat conversation has been soft deleted and therefore should not be included in the listing of suggested group chat conversations and/or search results.
In some embodiments, the soft deletion module 210 can modify the data record to indicate that the group chat conversation should not be included in the listing of suggested group chat conversations and search results. Alternatively, the soft deletion module 210 can modify the data record to indicate that the group chat conversation should not be included in the listing of suggested group chat conversations, but should remain included in search results. For example, the soft deletion module 210 can determine whether the group chat conversation has been assigned a group chat conversation name and modify the data record according to whether the group chat conversation has been assigned a group chat conversation name.
It should be noted that although a group chat conversation has been soft deleted, the group messaging data (e.g., data record) associated with the group chat conversation is not deleted. Accordingly, the user can still access the group chat conversation, draft and transmit new messages as part of the group chat conversation and receive messages as part of the group chat conversation. If a new message is sent or received as part of a group message conversation, the group messaging data associated with the group chat conversation can be modified back to indicate that the group chat conversation is no longer soft deleted. For example, the data record associated with the group chat conversation can be modified to remove any flag or mark indicating that the group chat conversation has been soft deleted. Hence, the group chat conversation would again appear in a listing of recommended group chat conversations and/or search results.
At operation 302, the suggestion module 206 presents a listing of suggested chat conversations in response to receiving message initiation input. The listing of suggested chat conversations includes at least a first group chat conversation in which the user is a participant. In some embodiments, the message initiation input is caused by the user selecting to create a new chat conversation. Alternatively, in some embodiments the message initiation input is caused by the user drafting a new message.
To present the listing of suggested chat conversations, the suggestion module 206 can access group messaging data associated with the user and/or the client device. The group messaging data can include data records for group chat conversations in which the user is a participant. The suggestion module 206 can utilize the group messaging data to provide the user with the listing of suggested chat conversations. The listing of suggested chat conversations can include each chat conversation in which the user is a participant or, alternatively, a subset of the chat conversations. For example, the listing of suggested chat conversations can include chat conversations that the user participates in most frequently, the chat conversations that includes the most messages, etc.
At operation 304, the soft deletion module 210 subsequently determines that the first group chat conversation has remained inactive for a threshold period of time. The soft deletion module 210 can gather a most recent timestamp value associated with the first group chat conversation to determine a period of time that the first group chat conversation has remained inactive. The soft deletion module 210 can then compare the period of time that the first group chat conversation has remained inactive to the threshold period of time.
At operation 306, the soft deletion module 210 executes a soft deletion of the first group chat in response to determining that the first group chat has remained inactive for the threshold period of time. The soft deletion can include removing the first group chat conversation from the listing of suggested chat conversations. Accordingly, once the first group chat conversation has been soft deleted, it will not be presented as a suggested group chat conversation to the user.
The first group chat will remain accessible to the user in a chat feed of the user. The chat feed of the user includes a listing of chat conversations in which the user is a participant. For example the listing of chat conversations can be ordered in the chat feed based on time stamp values associated with each chat conversation in the listing of chat conversations. The user can use the chat feed to access the first group chat conversation after the first group conversation has been deleted.
At operation 402, the soft deletion module 210 accesses a data record for the group chat conversation. The soft deletion module 210 can access the data record from the databases 134 or from data stored by the client device 110. The data record can include data associated with the group chat conversations, such as timestamp data, messages, assigned group chat conversation name, group participants, etc.
At operation 404, the soft deletion module 210 determines whether the group chat conversation has been assigned a group chat conversation name. For example, the soft deletion module 210 can determine whether the group chat conversation has been assigned a group chat conversation names based on the data record for the group chat conversation.
At operation 406, the soft deletion module 210 marks the data record as having been soft deleted based on whether the group chat conversation has been assigned a group chat conversation name. For example, if the group chat conversation has not been assigned a group chat conversation name, the soft deletion module 210 can mark the data record to indicate that the group chat conversation has been soft deleted and should not be included in a listing of suggested group chat conversations or search results. Alternatively, if the group chat conversation has been assigned a group chat conversation name, the soft deletion module 210 can mark the data record to indicate that the group chat conversation has been soft deleted and should not be included in a listing of suggested group chat conversations, however should remain in search results.
At operation 502, the suggestion module 206 receives a message initiation input. In some embodiments, the message initiation input is caused by the user selecting to create a new chat conversation. Alternatively, in some embodiments the message initiation input is caused by the user drafting a new message.
At operation 504, the suggestion module 206 accesses data records associated with the user. The suggestion module 206 can access the data records from the databases 134 or from data stored by the client device 110. The data records can include data associated with group chat conversations in which the user is a participant, such as timestamp data, messages, assigned group chat conversation names, group participants, etc.
At operation 506, the suggestion module 206 filters out data records marked as having been soft deleted.
At operation 508, the suggestion module 206 presents a listing of recommended group chat conversations based on the filtered data records. Accordingly, the listing of recommended group chat conversations will not include group chat conversations that have been soft deleted.
Software Architecture
In the example architecture of
The operating system 602 may manage hardware resources and provide common services. The operating system 602 may include, for example, a kernel 622, services 624 and drivers 626. The kernel 622 may act as an abstraction layer between the hardware and the other software layers. For example, the kernel 622 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, and so on. The services 624 may provide other common services for the other software layers. The drivers 626 are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers 626 include display drivers, camera drivers, Bluetooth® drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Wi-Fi® drivers, audio drivers, power management drivers, and so forth depending on the hardware configuration.
The libraries 620 provide a common infrastructure that is used by the applications 616 and/or other components and/or layers. The libraries 620 provide functionality that allows other software components to perform tasks in an easier fashion than to interface directly with the underlying operating system 602 functionality (e.g., kernel 622, services 624 and/or drivers 626). The libraries 620 may include system libraries 644 (e.g., C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, and the like. In addition, the libraries 620 may include API libraries 646 such as media libraries (e.g., libraries to support presentation and manipulation of various media format such as MPREG4, H.264, MP3, AAC, AMR, JPG, PNG), graphics libraries (e.g., an OpenGL framework that may be used to render 2D and 3D in a graphic content on a display), database libraries (e.g., SQLite that may provide various relational database functions), web libraries (e.g., WebKit that may provide web browsing functionality), and the like. The libraries 620 may also include a wide variety of other libraries 648 to provide many other APIs to the applications 616 and other software components/modules.
The frameworks/middleware 618 (also sometimes referred to as middleware) provide a higher-level common infrastructure that may be used by the applications 616 and/or other software components/modules. For example, the frameworks/middleware 618 may provide various graphic user interface (GUI) functions, high-level resource management, high-level location services, and so forth. The frameworks/middleware 618 may provide a broad spectrum of other APIs that may be utilized by the applications 616 and/or other software components/modules, some of which may be specific to a particular operating system 602 or platform.
The applications 616 include built-in applications 638 and/or third-party applications 640. Examples of representative built-in applications 638 may include, but are not limited to, a contacts application, a browser application, a book reader application, a location application, a media application, a messaging application, and/or a game application. Third-party applications 640 may include an application developed using the ANDROID™ or IOS™ software development kit (SDK) by an entity other than the vendor of the particular platform, and may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or other mobile operating systems. The third-party applications 640 may invoke the API calls 608 provided by the mobile operating system (such as operating system 602) to facilitate functionality described herein.
The applications 616 may use built in operating system functions (e.g., kernel 622, services 624 and/or drivers 626), libraries 620, and frameworks/middleware 618 to create user interfaces to interact with users of the system. Alternatively, or additionally, in some systems interactions with a user may occur through a presentation layer, such as presentation layer 614. In these systems, the application/component “logic” can be separated from the aspects of the application/component that interact with a user.
The machine 700 may include processors 704, memory memory/storage 706, and I/O components 718, which may be configured to communicate with each other such as via a bus 702. The memory/storage 706 may include a memory 714, such as a main memory, or other memory storage, and a storage unit 716, both accessible to the processors 704 such as via the bus 702. The storage unit 716 and memory 714 store the instructions 710 embodying any one or more of the methodologies or functions described herein. The instructions 710 may also reside, completely or partially, within the memory 714, within the storage unit 716, within at least one of the processors 704 (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the machine 700. Accordingly, the memory 714, the storage unit 716, and the memory of processors 704 are examples of machine-readable media.
The I/O components 718 may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I/O components 718 that are included in a particular machine 700 will depend on the type of machine. For example, portable machines such as mobile phones will likely include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components 718 may include many other components that are not shown in
In further example embodiments, the/O components 718 may include biometric components 730, motion components 734, environmental environment components 736, or position components 738 among a wide array of other components. For example, the biometric components 730 may include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram based identification), and the like. The motion components 734 may include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environment components 736 may include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometer that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detection concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. The position components 738 may include location sensor components (e.g., a Global Position system (GPS) receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.
Communication may be implemented using a wide variety of technologies. The I/O components 718 may include communication components 740 operable to couple the machine 700 to a network 732 or devices 720 via coupling 722 and coupling 724 respectively. For example, the communication components 740 may include a network interface component or other suitable device to interface with the network 732. In further examples, communication components 740 may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. The devices 720 may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a Universal Serial Bus (USB)).
Moreover, the communication components 740 may detect identifiers or include components operable to detect identifiers. For example, the communication components 740 may include Radio Frequency Identification (RFID) tag reader components, NFC smart tag detection components, optical reader components (e.g., an optical sensor to detect one-dimensional bar codes such as Universal Product Code (UPC) bar code, multi-dimensional bar codes such as Quick Response (QR) code, Aztec code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar code, and other optical codes), or acoustic detection components (e.g., microphones to identify tagged audio signals). In addition, a variety of information may be derived via the communication components 740, such as, location via Internet Protocol (IP) geo-location, location via Wi-Fi® signal triangulation, location via detecting a NFC beacon signal that may indicate a particular location, and so forth.
This application is a continuation of U.S. patent application Ser. No. 15/437,116, filed February 20, which is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5754939 | Herz et al. | May 1998 | A |
6038295 | Mattes | Mar 2000 | A |
6158044 | Tibbetts | Dec 2000 | A |
6167435 | Druckenmiller et al. | Dec 2000 | A |
6205432 | Gabbard et al. | Mar 2001 | B1 |
6310694 | Okimoto et al. | Oct 2001 | B1 |
6484196 | Maurille | Nov 2002 | B1 |
6487586 | Ogilvie et al. | Nov 2002 | B2 |
6665531 | Soderbacka et al. | Dec 2003 | B1 |
6701347 | Ogilvie | Mar 2004 | B1 |
6711608 | Ogilvie | Mar 2004 | B1 |
6757713 | Ogilvie et al. | Jun 2004 | B1 |
6980909 | Root et al. | Dec 2005 | B2 |
7124164 | Chemtob | Oct 2006 | B1 |
7149893 | Leonard et al. | Dec 2006 | B1 |
7173651 | Knowles | Feb 2007 | B1 |
7243163 | Friend et al. | Jul 2007 | B1 |
7278168 | Chaudhury et al. | Oct 2007 | B1 |
7356564 | Hartselle et al. | Apr 2008 | B2 |
7376715 | Cunningham et al. | May 2008 | B2 |
7411493 | Smith | Aug 2008 | B2 |
7478402 | Christensen et al. | Jan 2009 | B2 |
7496347 | Puranik | Feb 2009 | B2 |
7519670 | Hagale et al. | Apr 2009 | B2 |
7535890 | Rojas | May 2009 | B2 |
7607096 | Oreizy et al. | Oct 2009 | B2 |
7703140 | Nath et al. | Apr 2010 | B2 |
7912896 | Wolovitz et al. | Mar 2011 | B2 |
8131597 | Hudetz | Mar 2012 | B2 |
8170957 | Richard | May 2012 | B2 |
8199747 | Rojas et al. | Jun 2012 | B2 |
8214443 | Hamburg | Jul 2012 | B2 |
8238947 | Lottin et al. | Aug 2012 | B2 |
8244593 | Klinger et al. | Aug 2012 | B2 |
8312097 | Siegel et al. | Nov 2012 | B1 |
8332475 | Rosen et al. | Dec 2012 | B2 |
8521136 | Riddle et al. | Aug 2013 | B2 |
8570907 | Garcia, Jr. et al. | Oct 2013 | B2 |
8718333 | Wolf et al. | May 2014 | B2 |
8724622 | Rojas | May 2014 | B2 |
8745132 | Obradovich | Jun 2014 | B2 |
8874677 | Rosen et al. | Oct 2014 | B2 |
8909679 | Root et al. | Dec 2014 | B2 |
8909714 | Agarwal et al. | Dec 2014 | B2 |
8909725 | Sehn | Dec 2014 | B1 |
8914752 | Spiegel | Dec 2014 | B1 |
8995433 | Rojas | Mar 2015 | B2 |
9040574 | Wang et al. | May 2015 | B2 |
9055416 | Rosen et al. | Jun 2015 | B2 |
9083770 | Drose et al. | Jul 2015 | B1 |
9094137 | Sehn et al. | Jul 2015 | B1 |
9100806 | Rosen et al. | Aug 2015 | B2 |
9100807 | Rosen et al. | Aug 2015 | B2 |
9113301 | Spiegel et al. | Aug 2015 | B1 |
9148424 | Yang | Sep 2015 | B1 |
9191776 | Root et al. | Nov 2015 | B2 |
9204252 | Root | Dec 2015 | B2 |
9225805 | Kujawa et al. | Dec 2015 | B2 |
9225897 | Sehn et al. | Dec 2015 | B1 |
9237202 | Sehn | Jan 2016 | B1 |
9264463 | Rubinstein et al. | Feb 2016 | B2 |
9276886 | Samaranayake | Mar 2016 | B1 |
9294425 | Son | Mar 2016 | B1 |
9350692 | Van As et al. | May 2016 | B1 |
9385983 | Sehn | Jul 2016 | B1 |
9396354 | Murphy et al. | Jul 2016 | B1 |
9407712 | Sehn | Aug 2016 | B1 |
9407816 | Sehn | Aug 2016 | B1 |
9430783 | Sehn | Aug 2016 | B1 |
9443227 | Evans et al. | Sep 2016 | B2 |
9482882 | Hanover et al. | Nov 2016 | B1 |
9482883 | Meisenholder | Nov 2016 | B1 |
9489661 | Evans et al. | Nov 2016 | B2 |
9491134 | Rosen et al. | Nov 2016 | B2 |
9532171 | Allen et al. | Dec 2016 | B2 |
9537811 | Allen et al. | Jan 2017 | B2 |
9560006 | Prado et al. | Jan 2017 | B2 |
9628950 | Noeth et al. | Apr 2017 | B1 |
9652896 | Jurgenson et al. | May 2017 | B1 |
9659244 | Anderton et al. | May 2017 | B2 |
9693191 | Sehn | Jun 2017 | B2 |
9705831 | Spiegel | Jul 2017 | B2 |
9742713 | Spiegel et al. | Aug 2017 | B2 |
9785796 | Murphy et al. | Oct 2017 | B1 |
9825898 | Sehn | Nov 2017 | B2 |
9854219 | Sehn | Dec 2017 | B2 |
9961520 | Brooks et al. | May 2018 | B2 |
20020047868 | Miyazawa | Apr 2002 | A1 |
20020144154 | Tomkow | Oct 2002 | A1 |
20030052925 | Daimon et al. | Mar 2003 | A1 |
20030126215 | Udell | Jul 2003 | A1 |
20030217106 | Adar et al. | Nov 2003 | A1 |
20040203959 | Coombes | Oct 2004 | A1 |
20050097176 | Schatz et al. | May 2005 | A1 |
20050198128 | Anderson | Sep 2005 | A1 |
20050223066 | Buchheit et al. | Oct 2005 | A1 |
20050234850 | Buchheit | Oct 2005 | A1 |
20060075044 | Fox | Apr 2006 | A1 |
20060242239 | Morishima et al. | Oct 2006 | A1 |
20060270419 | Crowley et al. | Nov 2006 | A1 |
20070038715 | Collins et al. | Feb 2007 | A1 |
20070064899 | Boss et al. | Mar 2007 | A1 |
20070073823 | Cohen et al. | Mar 2007 | A1 |
20070174407 | Chen | Jul 2007 | A1 |
20070214216 | Carrer et al. | Sep 2007 | A1 |
20070233801 | Eren et al. | Oct 2007 | A1 |
20070242656 | Klassen | Oct 2007 | A1 |
20080055269 | Lemay et al. | Mar 2008 | A1 |
20080120409 | Sun et al. | May 2008 | A1 |
20080207176 | Brackbill et al. | Aug 2008 | A1 |
20080270938 | Carlson | Oct 2008 | A1 |
20080306826 | Kramer et al. | Dec 2008 | A1 |
20080313346 | Kujawa et al. | Dec 2008 | A1 |
20090042588 | Lottin et al. | Feb 2009 | A1 |
20090094368 | Best | Apr 2009 | A1 |
20090132453 | Hangartner et al. | May 2009 | A1 |
20090138828 | Schultz | May 2009 | A1 |
20100082427 | Burgener et al. | Apr 2010 | A1 |
20100131880 | Lee et al. | May 2010 | A1 |
20100185665 | Horn et al. | Jul 2010 | A1 |
20100306669 | Della Pasqua | Dec 2010 | A1 |
20110099507 | Nesladek et al. | Apr 2011 | A1 |
20110145564 | Moshir et al. | Jun 2011 | A1 |
20110202598 | Evans et al. | Aug 2011 | A1 |
20110213845 | Logan et al. | Sep 2011 | A1 |
20110286586 | Saylor et al. | Nov 2011 | A1 |
20110320373 | Lee et al. | Dec 2011 | A1 |
20120028659 | Whitney et al. | Feb 2012 | A1 |
20120184248 | Speede | Jul 2012 | A1 |
20120209921 | Adafin et al. | Aug 2012 | A1 |
20120209924 | Evans et al. | Aug 2012 | A1 |
20120254325 | Majeti et al. | Oct 2012 | A1 |
20120278692 | Shi | Nov 2012 | A1 |
20120278732 | Lee et al. | Nov 2012 | A1 |
20120304080 | Wormald et al. | Nov 2012 | A1 |
20130071093 | Hanks et al. | Mar 2013 | A1 |
20130194301 | Robbins et al. | Aug 2013 | A1 |
20130218897 | Palay | Aug 2013 | A1 |
20130290443 | Collins et al. | Oct 2013 | A1 |
20140032682 | Prado et al. | Jan 2014 | A1 |
20140122787 | Shalvi et al. | May 2014 | A1 |
20140143683 | Underwood, IV | May 2014 | A1 |
20140201527 | Krivorot | Jul 2014 | A1 |
20140282096 | Rubinstein et al. | Sep 2014 | A1 |
20140304346 | Song et al. | Oct 2014 | A1 |
20140325383 | Brown et al. | Oct 2014 | A1 |
20140359024 | Spiegel | Dec 2014 | A1 |
20140359032 | Spiegel et al. | Dec 2014 | A1 |
20150199082 | Scholler et al. | Jul 2015 | A1 |
20150227602 | Ramu et al. | Aug 2015 | A1 |
20160085773 | Chang et al. | Mar 2016 | A1 |
20160085863 | Allen et al. | Mar 2016 | A1 |
20160086670 | Gross et al. | Mar 2016 | A1 |
20160099901 | Allen et al. | Apr 2016 | A1 |
20160180887 | Sehn | Jun 2016 | A1 |
20160277419 | Allen et al. | Sep 2016 | A1 |
20160321708 | Sehn | Nov 2016 | A1 |
20160359957 | Laliberte | Dec 2016 | A1 |
20160359987 | Laliberte | Dec 2016 | A1 |
20170161382 | Ouimet et al. | Jun 2017 | A1 |
20170263029 | Yan et al. | Sep 2017 | A1 |
20170287006 | Azmoodeh et al. | Oct 2017 | A1 |
20170295250 | Samaranayake et al. | Oct 2017 | A1 |
20170374003 | Allen et al. | Dec 2017 | A1 |
20170374508 | Davis et al. | Dec 2017 | A1 |
Number | Date | Country |
---|---|---|
2887596 | Jul 2015 | CA |
WO-2012000107 | Jan 2012 | WO |
WO-2013008251 | Jan 2013 | WO |
WO-2014194262 | Dec 2014 | WO |
WO-2015192026 | Dec 2015 | WO |
WO-2016054562 | Apr 2016 | WO |
WO-2016065131 | Apr 2016 | WO |
WO-2016112299 | Jul 2016 | WO |
WO-2016179166 | Nov 2016 | WO |
WO-2016179235 | Nov 2016 | WO |
WO-2017176739 | Oct 2017 | WO |
WO-2017176992 | Oct 2017 | WO |
WO-2018005644 | Jan 2018 | WO |
Entry |
---|
“U.S. Appl. No. 15/437,116, Advisory Action mailed Jul. 20, 2020”, 3 pgs. |
“U.S. Appl. No. 15/437,116, Advisory Action mailed Oct. 23, 2019”, 3 pgs. |
“U.S. Appl. No. 15/437,116, Examiner Interview Summary mailed Oct. 11, 2019”, 3 pgs. |
“U.S. Appl. No. 15/437,116, Final Office Action mailed May 14, 2020”. |
“U.S. Appl. No. 15/437,116, Final Office Action mailed Aug. 6, 2019”, 9 pgs. |
“U.S. Appl. No. 15/437,116, Non Final Office Action mailed Mar. 20, 2019”, 26 pgs. |
“U.S. Appl. No. 15/437,116, Non Final Office Action mailed Dec. 27, 2019”. |
“U.S. Appl. No. 15/437,116, Notice of Allowance mailed Jan. 25, 2021”, 15 pgs. |
“U.S. Appl. No. 15/437,116, Response filed Mar. 20, 2020 to Non Final Office Action mailed Dec. 27, 2019”, 16 pgs. |
“U.S. Appl. No. 15/437,116, Response filed Jun. 30, 2020 to Final Office Action mailed May 14, 2020”, 11 pgs. |
“U.S. Appl. No. 15/437,116, Response filed Oct. 7, 2019 to Final Office Action mailed Aug. 6, 2019”, 12 pgs. |
“U.S. Appl. No. 15/437,116, Response filed Jun. 5, 2019 to Non-Final Office Action mailed Mar. 20, 2019”, 12 pgs. |
Castelluccia, Claude, et al., “EphPub: Toward robust Ephemeral Publishing”, 19th IEEE International Conference on Network Protocols (ICNP), (Oct. 17, 2011), 18 pgs. |
Fajman, “An Extensible Message Format for Message Disposition Notifications”, Request for Comments: 2298, National Institutes of Health, (Mar. 1998), 28 pgs. |
Leyden, John, “This SMS will self-destruct in 40 seconds”, [Online] Retrieved from the Internet: <URL: http://www.theregister.co.uk/2005/12/12/stealthtext/>, (Dec. 12, 2005), 1 pg. |
Melanson, Mike, “This text message will self destruct in 60 seconds”, [Online] Retrieved from the Internet: <URL: http://readwrite.com/2011/02/11/this_text_message_will_self_destruct_in_60_seconds>, (Feb. 18, 2015), 4 pgs. |
Sawers, Paul, “Snapchat for iOS Lets You Send Photos to Friends and Set How long They're Visible For”, [Online] Retrieved from the Internet: <URL: https://thenextweb.com/apps/2012/05/07/snapchat-for-ios-lets-you-send-photos-to-friends-and-set-how-long-theyre-visible-for/>, (May 7, 2012), 5 pgs. |
Shein, Esther, “Ephemeral Data”, Communications of the ACM, vol. 56, No. 9, (Sep. 2013), 3 pgs. |
Vaas, Lisa, “StealthText, Should You Choose to Accept It”, [Online] Retrieved from the Internet: <URL: http://www.eweek.com/print/c/a/MessagingandCollaboration/StealthTextShouldYouChoosetoAcceptIt>, (Dec. 13, 2005), 2 pgs. |
U.S. Appl. No. 15/437,116, filed Feb. 20, 2017, Selective Presentation of Group Messages. |
Number | Date | Country | |
---|---|---|---|
20210168100 A1 | Jun 2021 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15437116 | Feb 2017 | US |
Child | 17248834 | US |