The specification relates generally to communication devices, and specifically to a method, system and apparatus for managing related messages at a communication device.
The evolution of computers is currently quite active in the mobile device environment. It is now well-known to including calendaring, contacts, and messaging functions in mobile devices. More recently, there has been a veritable explosion of the number and type of applications that are configured to the unique form factors and computing environments of mobile devices.
For a better understanding of the various implementations described herein and to show more clearly how they may be carried into effect, reference will now be made, by way of example only, to the accompanying drawings in which:
An aspect of the specification provides a method comprising: receiving, at a communication device comprising a processor and a communication interface, related messages; automatically storing, via the processor, a most recent message of the related messages at an inbox folder in a memory; and, automatically storing remaining messages of the related messages in a given folder at the memory, the given folder different from the inbox folder.
The method can further comprise: when a new related message is received at the communication device after the most recent message, automatically moving, via the processor, the most recent message from the inbox folder to the given folder, such that the new related message becomes a more recent message; and automatically storing, via the processor, the new related message in the inbox folder.
Automatically storing the remaining messages in the given folder can occur when a flag associated with the related messages is indicative that the remaining messages are to be moved, the flag stored in the memory in association with one or more of the related messages. The flag can be stored in the memory when at least one of a button, a checkbox, and a radio button, is actuated at the communication device in association with at least one of the related messages.
The related messages can be related in a thread.
The method can further comprise generating the given folder.
The given folder can be one of: associated only with the related messages; or enabled to store all messages automatically moved from the inbox folder when any related messages are received at the communication device.
The communication device can be one of: a message server enabled to process the related messages on behalf of a client device; and, an endpoint communication device enabled to process the related messages.
At least two of the related messages can be duplicate messages, each associated with different network addresses, and only one of duplicate messages is the most recent message; the method can then further comprise: automatically storing a designated one of the duplicate messages in the inbox folder based on preference data stored in the memory, and moving the remaining duplicate messages to the given folder regardless of which is the most recent message. The designated one of the duplicate messages stored in the inbox folder can be designated as the most recent message regardless of which of the duplicate messages was actually the most recent message. The communication device can be one of: a message server enabled to process the related messages on behalf of a client device; and, an endpoint communication device enabled to process the related messages.
Another aspect of the specification provides a communication device comprising: a processor and a communication interface, the processor enabled to: receive, via the communication interface, related messages; automatically store a most recent message of the related messages at an inbox folder in a memory; and automatically store remaining messages of the related messages in a given folder at the memory, the given folder different from the inbox folder.
The processor can be further enabled to: when a new related message is received at the communication device after the most recent message, automatically move the most recent message from the inbox folder to the given folder, such that the new related message becomes a more recent message; and automatically store the new related message in the inbox folder.
The processor can be further enabled to automatically store the remaining messages in the given folder when a flag associated with the related messages is indicative that the remaining messages are to be moved, the flag stored in the memory in association with one or more of the related messages. The flag can be stored in the memory when at least one of a button, a checkbox, and a radio button, is actuated at the communication device in association with at least one of the related messages.
The related messages can be related in a thread.
The given folder can be one of: associated only with the related messages; or enabled to store all messages automatically moved from the inbox folder when any related messages are received at the communication device.
The communication device can further comprise one of: a message server enabled to process the related messages on behalf of a client device; and, an endpoint communication device enabled to process the related messages.
The processor can be further enabled to: determine that at least two of the related messages are duplicate messages, each associated with different network addresses, and only one of duplicate messages is the most recent message; automatically store a designated one of the duplicate messages in the inbox folder based on preference data stored in the memory; and, move the remaining duplicate messages to the given folder regardless of which is the most recent message. The designated one of the duplicate messages stored in the inbox folder can be designated as the most recent message regardless of which of the duplicate messages was actually the most recent message. The communication device can further comprise one of: a message server enabled to process the related messages on behalf of a client device; and, an endpoint communication device enabled to process the related messages.
A further aspect of the specification provides a computer program product, comprising a computer usable medium having a computer readable program code adapted to be executed to implement a method comprising: receiving, at a communication device comprising a processor and a communication interface, related messages; automatically storing, via the processor, a most recent message of the related messages at an inbox folder in a memory; and, automatically storing remaining messages of the related messages in a given folder at the memory, the given folder different from the inbox folder.
In any event, at least device 101 is generally enabled to manage related messages such that only a most recent one of the related messages is stored in an inbox folder, as will be presently be explained.
It is further more appreciated that while only three devices 101, 103, 105 are depicted in
Device 101 can be any type of electronic device that can be used in a self-contained manner to interact with a communications network via link 106. It is hence appreciated that device 101 comprises any suitable communication device for communicating with devices 103, 105. Device 101 includes, but is not limited to, any suitable combination of computing devices, personal computers, laptop computers, portable electronic devices, mobile computing device, portable computing devices, tablet computing devices, laptop computing devices, desktop phones, telephones, PDAs (personal digital assistants), cellphones, smartphones and the like. Other suitable communication devices are within the scope of present implementations.
Devices 103, 105 can be similar to or different from device 101 and each of devices 103, 105 can include, but is not limited to, any suitable combination of computing devices, personal computers, laptop computers, portable electronic devices, mobile computing device, portable computing devices, tablet computing devices, laptop computing devices, PDAs (personal digital assistants), cellphones, smartphones and the like. Other suitable communication devices are within the scope of present implementations. Further, while two devices 103, 105 are depicted in
Each of links 106, 108 comprises any suitable link, including any suitable combination of wired and/or wireless links, wired and/or wireless devices and/or wired and/or wireless networks, including but not limited to any suitable combination of USB (universal serial bus) cables, serial cables, wireless links, cell-phone links, cellular network links (including but not limited to 2G, 2,5G, 3G, 4G+, and the like) wireless data, Bluetooth links, NFC (near field communication) links, WiFi links, WiMax links, packet based links, the Internet, analog networks, the PSTN (public switched telephone network), access points, and the like, and/or a combination.
Attention is directed to
Input from input device 200 is received at processor 208 (which can be implemented as a plurality of processors, including but not limited to one or more central processing units (CPUs)). Processor 208 is configured to communicate with a non-volatile storage unit 212 (e.g. Erasable Electronic Programmable Read Only Memory (“EEPROM”), Flash Memory) and a volatile storage unit 216 (e.g. random access memory (“RAM”)). Programming instructions that implement the functional teachings of device 101 as described herein are typically maintained, persistently, in non-volatile storage unit 212 and used by processor 208 which makes appropriate utilization of volatile storage 216 during the execution of such programming instructions. Those skilled in the art will now recognize that non-volatile storage unit 212 and volatile storage 216 are examples of computer readable media that can store programming instructions executable on processor 208. Furthermore, non-volatile storage unit 212 and volatile storage 216 are also examples of memory units and/or memory modules.
Processor 208 in turn can also be configured to communicate with a display 224, and optionally a microphone 226 and a speaker 229. Display 224 comprises any suitable one of or combination of CRT (cathode ray tube) and/or flat panel displays (e.g. LCD (liquid crystal display), plasma, OLED (organic light emitting diode), capacitive or resistive touchscreens, and the like). It is generally appreciated that display 224 comprises circuitry 230 that can be controlled, for example by processor 208, to render a representation 232 of data at display 224.
Microphone 226, when present, comprises any suitable microphone for emitting sound data, which can be transmitted to device 101. Speaker 229, when present, comprises any suitable speaker for providing sound data at device 101. It is appreciated that microphone 226 and speaker 229 can be used in combination at device 101 to conduct a voice call, for example with one or more of devices 103, 105.
In some implementations, input device 200 and display 224 are external to device 103, with processor 208 in communication with each of input device 200 and display 224 via a suitable connection and/or link.
Processor 208 also connects to a network communication interface 228, referred to hereafter as interface 228, which can be implemented as one or more radios configured to communicate over link 106. In general, it will be understood that interface 228 is configured to correspond with the network architecture that is used to implement link 106. In other implementations a plurality of links with different protocols can be employed and thus interface 228 can comprise a plurality of interfaces to support each link.
In particular, it is appreciated that non-volatile storage 212 stores a messaging application 250 for managing messages, for example an email messaging application and the like. When processor 208 processes messaging application 250, processor is enabled to receive messages and transmit response to messages. It is further appreciated that upon processing messaging application 250, processor 208 can control circuitry 230 in display device 128 to render messaging application 250 in representation 232, as described below with reference to
It is further appreciated that messages received by device 101 in associate with application 250 can be stored in an inbox folder 260 at non-volatile storage 212. While inbox folder 260 is generally depicted as a discrete element in
In any event, it should be understood that in general a wide variety of configurations for device 101 are contemplated.
Attention is next directed to
Server 107 can be based on any well-known server environment including a module that houses one or more central processing units, volatile memory (e.g. random access memory), persistent memory (e.g. hard disk devices) and network interfaces to allow server 107 to communicate over links 106, 108. For example, server 107 can be a Sun Fire V480 running a UNIX operating system, from Sun Microsystems, Inc. of Palo Alto Calif., and having four central processing units each operating at about nine-hundred megahertz and having about sixteen gigabytes of random access memory. However, it is to be emphasized that this particular server is merely exemplary, and a vast array of other types of computing environments for servers 107 are contemplated. It is further more appreciated that server 107 can comprise any suitable number of servers that can perform different functionality of server implementations described herein. Functionality of server 107 will be described in further detail below.
With reference to
Furthermore, as any suitable number of messages 401 are within the scope of present implementations, and indeed the number of related messages 401 can be anywhere from one to hundreds and/or thousands, and greater.
It is further appreciated that messages 401 are related at each of devices 101, 103, 105, and can understood to be members of a “thread” of messages 401. However, present implementations are appreciated not to be limited to threads of messages; rather messages 401 can be related at each of devices 101, 103, 105 in any suitable manner. For example, rather than a thread of messages, messages 401 can be appreciated to be related as messages in a “conversation”. Indeed, any suitable method of relating messages 401 is within the scope of present implementations.
It is furthermore appreciated that the term “message” is understood to mean electronic data indicative of messages. Hence, each of messages 401 can be understood to comprise message data and/or electronic message data that is sent and received via electronic communication devices.
Attention is next directed to
Representation 501 further comprises a “SUBJECT” field 505 indicating a subject of an associated message, comprising text received with each messages 401. Representation 501 further comprises a “RECEIVED” field 507 indicating date and/or time when an associated message was received. It is appreciated, however, that the format of representation 501 of inbox folder 260 is not particularly limiting and can have any suitable format; in some implementations, the format can be configurable, for example by receiving input data from input device 200.
It is understood that representation 232 of messaging application 250 can further comprise a header 515 and virtual buttons 517, 519, 521 which, when actuated, can cause processor 208 to respectively initiate a “REPLY”, a “REPLY TO ALL”, or a “FORWARD” to/of a highlighted message in representation 501.
Representation 232 further comprises a virtual button 523 which, when actuated, can cause processor 208 to show only a most recent message in a group of related messages (e.g. a thread, a conversation or the like), as will presently be described.
Representation 232 further comprises an area 530 labelled “FOLDERS” which comprises folder icons associated with available folders, such as “INBOX” icon associated with inbox folder 260 (adjacent the “INBOX” icon is an envelope icon indicating that the “INBOX” icons is associated with a folder storing messages): it is appreciated that area 530 can be interactive, with folder icons rendered therein being selectable, for example by receiving input data from input device 200, such that the contents of representation 501 will change depending which folder icon is selected in area 530. For example, the icon “INBOX” is selected in
It is further appreciated that representation 501 comprises several sets of related messages that are present in inbox folder 260. For example, messages 401-1, 401-2, 401-3, 401-4 are related, as messages 401-2, 401-3, 401-4 are all replies (or replies to replies and the like) to an initial message 401-1. For example, initial message 401-1 has a subject “Sales Meeting” and further messages 401 have a related subject of “Re: Sales Meeting” or “Re: Re: Sales Meeting”. In other words, messages 401 are all part of the same thread.
There is a second thread in representation 501: messages 550-1, 550-2, 550-3, 550-4 having the subject “Patent Meeting”. Messages 501, are from devices not explicitly depicted in
Indeed, while only two groups of related messages 401, 550 are depicted in
It is also appreciated that messages 401, 550 generally occupy memory space associated with inbox 260, and further obfuscate representation 501 and inbox folder 260. Hence attention is now directed to
It is appreciated that, in some implementations, method 600 is implemented in system 100 by processor 208 of device 101. Indeed, method 600 is one way in which device 101 can be configured. It is to be emphasized, however, that method 600 need not be performed in the exact sequence as shown; and likewise various blocks may be performed in parallel rather than in sequence; hence the elements of method 600 are referred to herein as “blocks” rather than “steps”. It is also to be understood, however, that method 600 can be implemented on variations of system 100 as well.
At block 601, related messages 401 are received at device 101 as has already been described.
At block 603, a most recent message 401-4 of related messages 401 is automatically stored, via processor 208 at inbox folder 260 at non-volatile storage 212.
At block 605, remaining messages 401-1, 401-2, 401-3 of related messages 401 are automatically stored in a given folder at non-volatile storage 212, the given folder different from inbox folder 260.
An implementation of method 600 is described hereafter with reference to
It is appreciated that, in
Attention is now directed to
With further reference to
It is appreciated that blocks 603 and 605 can occur when flag 908 is stored associated with related messages 401. For example, in some instances only a first one of messages 401 can have been received, i.e. message 401-1. At this point, there is no indication as to whether or not further messages 401 will be received. The first message 401-1 can be selected and flagged, and once further messages 401 are received, blocks 603 and 605 are implemented when it is determined that message 401-1 is stored in association with flag 990.
It is appreciated that while flag 990 is depicted as a graphical icon in
It is yet further appreciated that flag 990 is stored in non-volatile storage 212 when button 523 is actuated in association with at least one of related messages 401. While in the depicted example, message 401-2 is selected, any of messages 401 can be selected to generate flag 990 when button 523 is actuated; indeed, more than one of messages 401 can be selected when button 523 is actuated.
Further, it is appreciated that while in depicted implementations button 523 is used to indicate that all but a most recent one of related messages 401 is to be moved to given folder 980, in other implementations one or more of a checkbox, a radio button, and the like can be provided and activated in association with at least one of related messages 401. Indeed, any suitable method of indicating that all but a most recent one of related messages 401 is to be moved to given folder 980 is within the scope of present implementations.
In depicted implementations, given folder 980 is associated only with related messages 401, and indeed the associated icon in area 530 is provided with text similar to that in the respective filed 505 (“Sales Meeting”). Indeed, attention is further directed to
In any event, attention is next directed to
Attention is next directed to
It is further appreciated that method 600 can be implemented automatically at device 101 without having to flag a given group of related messages. In other words, messaging application 250 can include a setting that causes all related messages to be processed via method 600 such that only the most recent message in a group of related messages is stored at inbox folder 260 without having to specifically flag a given message. In these implementations, button 523 is not present in representation 523.
It is appreciated that heretofore, implementations have been described with respect to method 600 being implemented at device 101 (i.e. an endpoint communication device enabled to process related messages 401). However, in other implementations method 600 can be implemented at server 107. For example, server 107 can comprise a message server enabled to process related messages 401 on behalf of client device 101 in a client-server environment. In these implementations, messages 401, inbox 260, folder 980 and the like can be stored at server 107 and/or a memory device accessible to server 107, with messages 401, inbox 260, folder 980 and the like accessed from client device 101 via server 101.
In yet further implementations, inbox folder 260 and folder 980 can reside at different memory devices. For example, in some environments, restrictions are placed on a size of an inbox folder, and when, for example, hundreds of messages are received in a thread due to non-judicious use of “reply-to-all”, the maximum size of the inbox can be quickly reached, thereby preventing further messages from being stored therein. Hence, for example, inbox folder 260 can be stored at server 107 and folder 980 can be stored at client device 101, hence preventing an overly active thread from becoming full too quickly. Such an example is described below with reference to
There are, however, inherent advantages to implementing method 600 at device 101. For example, message disambiguation can occur at device 101 when method 600 is implemented therein.
To illustrate this, attention is next directed to
In any event, consider the following scenario: device 103b is used to send duplicate messages 1701-1, 1701-2 to device 101b. It is appreciated that messages 1701 are understood to be identical with regard to content, but not with regard to header information, which can include addresses and routing info etc., which can vary between messages 1701. In any event, in a non-limiting example, when a message 1701 is generated at device 103b, two different e-mail addresses can be received at a “TO” field, such as a business address associated with device 101b and a personal address associated with device 101b. Hence, when messages 1701 arrive at device 101b, they are processed as related messages 1701, for example in the same thread, as described above. However, in these implementations, when at least two of the related messages 170a are duplicate messages, but each associated with different network addresses (i.e. for each server 107b), and only one of duplicate messages 1701 is the most recent message, a designated one of duplicate messages 1701 can be automatically stored in an inbox folder based on preference data stored in a memory at device 101b; and the remaining duplicate messages 1701 can be moved to a given folder regardless of which is the most recent message.
To illustrate this, attention is directed to
It is further appreciated that while
To illustrate this, attention is next directed to
In any event by storing all but a most recently received message in a group of related messages to a given folder, while storing the most recently received message in an inbox folder, a less cluttered environment for processing messages is provided. Such a solution deals with a problem where, for example, hundreds of emails are received in a thread which causes an inbox to become full quite quickly. Indeed, in some environments, restrictions are placed on a size of an inbox folder, and by storing all but the most recent message in a group of related messages to a given folder, the inbox folder is prevented from becoming full.
For example, attention is directed to
Those skilled in the art will appreciate that in some implementations, the functionality of devices 101, 101a, 101b, 103, 103b, 105, servers 107, 107b can be implemented using pre-programmed hardware or firmware elements (e.g., application specific integrated circuits (ASICs), electrically erasable programmable read-only memories (EEPROMs), etc.), or other related components. In other implementations, the functionality of devices 101, 101a, 101b, 103, 103b, 105, servers 107, 107b can be achieved using a computing apparatus that has access to a code memory (not shown) which stores computer-readable program code for operation of the computing apparatus. The computer-readable program code could be stored on a computer readable storage medium which is fixed, tangible and readable directly by these components, (e.g., removable diskette, CD-ROM, ROM, fixed disk, USB drive). Furthermore, it is appreciated that the computer-readable program can be stored as a computer program product comprising a computer usable medium. Further, a persistent storage device can comprise the computer readable program code. It is yet further appreciated that the computer-readable program code and/or computer usable medium can comprise a non-transitory computer-readable program code and/or non-transitory computer usable medium. Alternatively, the computer-readable program code could be stored remotely but transmittable to these components via a modem or other interface device connected to a network (including, without limitation, the Internet) over a transmission medium. The transmission medium can be either a non-mobile medium (e.g., optical and/or digital and/or analog communications lines) or a mobile medium (e.g., microwave, infrared, free-space optical or other transmission schemes) or a combination thereof.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent document or patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights whatsoever.
Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible, and that the above examples are only illustrations of one or more implementations. The scope, therefore, is only to be limited by the claims appended hereto.