The specification relates generally to message communications, and specifically to a method, system and apparatus for managing messages.
The capabilities of mobile electronic devices (such as cellular phones, smart phones and the like) continue to grow, enabling such devices to perform increasingly numerous and complex tasks. The resources of these devices (e.g. battery power, display area, computational power, memory capacity), however, remain scarce in comparison to their mains-powered and wired counterparts, particularly in the context of the ever greater demands imposed on mobile electronic devices for increased functionality. Thus, particularly in the area of messaging communications, the resources of mobile electronic devices remain relatively limited and continue to be used inefficiently.
Embodiments are described with reference to the following figures, in which:
According to an aspect of the specification, a method of managing messages at a mobile electronic device is provided, the method comprising: receiving a first message, the message containing one or more recipient identifiers and a subject; controlling a display to generate a message interface comprising a representation of the first message; receiving a command from an input device, the command being a command to suppress subsequent messages related to the first message; selecting suppression criteria including the subject and at least one of the one or more recipient identifiers; receiving input data comprising at least one additional suppression criterion; and, suppressing the display of subsequently received messages based on the suppression criteria and the at least one additional suppression criterion.
According to another aspect of the specification, a mobile electronic device is provided, comprising: an input device; a display; a communications interface; a memory; and, a processor interconnected with the input device, the display, the communications interface and the memory, the processor configured to receive a first message via the communications interface, the message containing one or more recipient identifiers and a subject; the processor further configured to control the display to generate a message interface comprising a representation of the first message; the processor further configured to receive a command from the input device, the command being a command to suppress subsequent messages related to the first message; the processor further configured to select suppression criteria including the subject and at least one of the one or more recipient identifiers; the processor further configured to receive input data comprising at least one additional suppression criterion; and, the processor further configured to suppress the display of subsequently received messages based on the suppression criteria and the at least one additional suppression criterion.
According to a further aspect of the specification, a non-transitory computer-readable medium is provided for storing a plurality of computer-readable instructions executable by a processor, the computer-readable instructions for implementing the above method.
Mobile electronic device 104 includes a processor 108 interconnected with a non-transitory computer readable storage medium such as a memory 112. Memory 112 can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory. Mobile electronic device 104 also includes one or more input devices interconnected with processor 108. Such input devices are configured to receive input and provide input data representative of the received input to processor 108. Input devices can include, for example, a keypad 116 and a microphone 118. It is contemplated that mobile electronic device 104 can include additional input devices in the form of one or more touch screens, buttons, light sensors and the like (not shown). In general, it is contemplated that any suitable combination of the above-mentioned input devices can be incorporated into mobile electronic device 104.
Mobile electronic device 104 further includes one or more output devices. The output devices of mobile electronic device 104 include a display 120. Display 120 includes display circuitry 124 controllable by processor 108 for generating interfaces which include representations of data and/or applications maintained in memory 112. Display 120 includes a flat panel display comprising any one, or suitable combination, of a Liquid Crystal Display (LCD), a plasma display, an Organic Light Emitting Diode (OLED) display, and the like. Circuitry 124 can thus include any suitable combination of display buffers, transistors, LCD cells, plasma cells, phosphors, LEDs and the like. In embodiments that include a touch screen input device, the touch screen can be integrated with display 120.
The output devices of mobile electronic device 104 can also include a speaker 128 interconnected with processor 108. Additional output devices can also be included, such as a light-emitting indicator (not shown) in the form of an LED, and the like.
Mobile electronic device 104 also includes a communications interface 132 interconnected with processor 108. Communications interface 132 allows mobile electronic device 104 to communicate with other computing devices via a link 136 and a network 140. Network 140 can include any suitable combination of wired and/or wireless networks, including but not limited to a Wide Area Network (WAN) such as the Internet, a Local Area Network (LAN), cell phone networks, WiFi networks, WiMax networks and the like. Link 136 is compatible with network 140. In particular, link 136 can be a wireless link based on any of Global System for Mobile communications (GSM), General Packet Radio Service (GPRS), Enhanced Data rates for GSM Evolution (EDGE), the third and fourth-generation mobile communication system (3G and 4G), Institute of Electrical and Electronic Engineers (IEEE) 802.11 (WiFi) or other wireless protocols. It will be understood that link 136 can also include any base stations and backhaul links necessary to connect mobile electronic device 104 to network 140. It will be understood that communications interface 132 is therefore selected for compatibility with link 136 as well as with network 140.
The various components of mobile electronic device 104 are interconnected, for example via a communication bus (not shown). Mobile electronic device 104 can be powered by a battery (not shown), though it will be understood that mobile electronic device 104 can also be supplied with electricity by a wired connection to a wall outlet or other power source, for example when docked.
System 100 also includes a server 144, which can be based on any known server environment. Server 144 thus includes one or more processors such as a processor 148. Processor 148 is interconnected with a non-transitory computer-readable storage medium, such as a memory 152. Memory 152 can be any suitable combination of volatile (e.g. Random Access Memory (“RAM”)) and non-volatile (e.g. read only memory (“ROM”), Electrically Erasable Programmable Read Only Memory (“EEPROM”), flash memory, magnetic computer storage device, or optical disc) memory. Server 144 also includes one or more communications interfaces, such as a communications interface 156, for interconnecting with network 140 via a link 160. In the present embodiment, link 160 is a wired link. It is contemplated, however, that link 160 can be any suitable combination of wired and wireless links.
Server 144 can be managed by way of input and output devices (not shown) such as a keyboard, a mouse and a display. Such input and output devices can be co-located with server 144 and connected with processor 148 via local connections (e.g. Universal Serial Bus (USB)). In other embodiments, the input and output devices can be located at a terminal (not shown) remote from server 144 and connected to server 144 via network 140 and link 160. In some embodiments, both local input devices and a remote terminal can be present, and server 144 can be managed via either the local input devices or the remote terminal, as desired.
System 100 can also include additional computing devices, such as a personal computer 164. It is contemplated that such computing devices can include any number of mobile devices, servers and the like in addition to, or instead of, personal computer 164. Personal computer 164 is connected to network 140 via a link 168, which can be a wired link, a wireless link, or a combination thereof.
In general, mobile electronic device 104 can receive communications such as e-mail messages from other computing devices, including personal computer 164. Server 144 is configured as an e-mail server associated with mobile electronic device 104. That is, server 144 maintains an e-mail account which is associated with mobile electronic device 104. Thus, when an e-mail message destined for mobile electronic device 104 originates at personal computer 164, the message arrives at server 144 via link 168, network 140 and link 160. Server 144 is configured to store the message in a message store 172 maintained in memory 152. Message store 172 is specific to the account associated with mobile electronic device 104, and it is contemplated that server 144 can maintain a plurality of other message stores (not shown) specific to other accounts. In other embodiments, message store 172 itself need not be specific to any particular account, but a portion of message store 172 can be specific to mobile electronic device 104 or an account associated therewith. Server 144 can be configured to transmit the newly received message to mobile electronic device 104, either automatically or in response to a request for new messages from mobile electronic device 104. Upon arrival at mobile electronic device 104, the message is stored in a local message store 174. Thus, the contents of local message store 174 maintained by mobile electronic device 104 can be synchronized with the contents of message store 172.
In addition to local message store 172, mobile electronic device 104 stores a messaging application 176 in memory 112. Messaging application 176 comprises computer-readable instructions which are executable by processor 108. Processor 108 is configured, via execution of messaging application 176, to carry out various functions related to the handling of messages addressed to mobile electronic device 104, as will be discussed in greater detail below.
Referring now to
Referring now to
Beginning at block 305, processor 108 is configured, by way of execution of messaging application 176, to receive a message from server 144 via communications interface 132. As noted above, the message received at block 305 can be received as a result of an earlier request issued from communications interface 132, or as a result of an automatic transmission by server 144. Following receipt of the message, the message is stored in local message store 174. For the present example performance of method 300, it will be assumed that the received message is the message contained in message record 200a; as depicted in
Following the receipt and storage of message 200a, method 300 continues at block 310. At block 310, processor 108 is configured to control display circuitry 124 of display 120 to generate an interface including a representation of message 200a. Turning to
Returning to
Following the performance of block 315, method 300 proceeds to block 320, at which processor 108 is configured to automatically select suppression criteria. In particular, processor 108 is configured to select the subject of message 200a, as well as at least one of the recipient addresses of message 200a. In the present example performance of method 300, message 200a includes only one recipient address, and thus the suppression criteria selected by processor 108 include the subject “Weekend” and the recipient address “MailListA” as shown in
Following selection of the suppression criteria, processor 108 is configured to complete the performance of block 320 by storing the selected suppression criteria in memory 112. Referring briefly to
Returning to
Turning to
At block 330, processor 108 is configured to suppress the display of at least some subsequent messages, based on the contents of the suppression criteria store 180. It is contemplated that processor 108, via execution of messaging application 176, is configured to generate an interface which comprises a representation of one or more of the messages in local message store 174. An example 600 of such an interface is shown in
As a result of the performance of block 330, some subsequent messages which are addressed to mobile electronic device 104 (or to a distribution list which includes mobile electronic device 104) will not be displayed in interface 600. That is, the display of such messages, which would occur under normal circumstances, will not occur (i.e. will be suppressed). In general, the messages whose display will be suppressed are those which have attributes matching the values maintained in suppression criteria store 180. In particular, the display of messages having the same subject and recipient address will be suppressed in accordance with the values of the remaining suppression criteria (i.e. one or both of the expiry and bypass values). In summary, subsequent messages which are related to message 200a by way of matching subjects and recipient addresses are not displayed at mobile electronic device 104. Processor 108 can be configured to accomplish such suppression in a variety of ways.
Turning now to
Proceeding to block 715, server 144 is configured to receive a subsequent message addressed to mobile electronic device 104, for example from personal computer 164. The received message is stored in message store 172. At block 720, processor 148 is configured to determine whether the subject and address of the received message match those in the suppression request received at block 710. Processor 148 is thus configured to compare the subject of the received message with the subject value shown in
If the determination at block 720 is negative (that is, if the subject and recipient address of the received message do not both match the suppression criteria), method 700 proceeds to block 725, at which processor 148 is configured to deliver the message to mobile electronic device 104, where it can be displayed. In the present example performance of method 700, it will be assumed that the determination at block 720 is affirmative, indicating a match between both the subject and recipient address of the received message and the corresponding values of the suppression criteria. Performance of method 700 thus proceeds to block 730, at which processor 148 is configured to determine whether a threshold has been exceeded. Specifically, the counter is created based on the bypass value of the suppression request. In the present example performance of method 700, the bypass value (as seen in
The determination at block 730 enables processor 148 to bypass suppression of a certain number of messages, even though the determination at block 720 was affirmative. In the present example, it is assumed that the message received at block 715 is the first message received since the suppression request. Thus, the determination at block 730 is negative, and the performance of method 700 proceeds to block 735. At block 725, processor 148 is configured to increment the counter to indicate that one message which matches the values in the suppression request has been bypassed (i.e. has not been suppressed). Method 700 then proceeds to block 725, at which processor 148 is configured to deliver the message to mobile electronic device 104. At block 740, mobile electronic device 104 receives the message, for normal display.
If the determination at block 730 were affirmative (that is, the threshold had been exceeded, indicating that suppression had already been bypassed for the desired number of messages), method 700 would proceed to block 745, at which processor 148 is configured to suppress delivery of the message. Such suppression can be accomplished by deleting the message, or by retaining the message in message store 172 but flagging it as not being for delivery. It will be appreciated that as a result of the suppression of delivery of the message, the message will not be displayed in interface 600 at mobile electronic device 104. Thus, suppressing the display of a message at block 330 of method 300 can include the holding of the message at server 144, potentially for future delivery. In other embodiments, the blocks of method 700 performed by server 144 can be performed by other computing devices. For example, suppression requests can be processed, and messages held, at any suitable combination of an enterprise server, a relay, a redirector and a cloud computing-based message store consisting of a plurality of distributed servers.
The performance of blocks 720-745 can be repeated for any number of messages. It is contemplated that blocks 730 and 735 can be omitted when the suppression request does not include a bypass criteria. In embodiments where the suppression request includes an expiry criteria, method 700 can include a determination, performed by processor 148 between blocks 715 and 720, as to whether the suppression request remains current. Such a determination can compare the current date and time to an expiry date specified in the suppression request. If the expiry date has not yet passed, method 700 proceeds to block 720. Otherwise, processor 148 deletes the suppression request (as it has expired) and performs block 725. In other embodiments, the determination can compare the date and time of receipt of the suppression request with the current date and time to determine the duration that has elapsed since receipt. If the duration exceeds a duration specified in the suppression request, method 700 proceeds directly to block 725 and deletes the suppression request, as it is no longer current. Otherwise, method 700 proceeds to block 720.
Referring now to
It is contemplated that variations and combinations of the methods and systems described above can also be implemented. For example, in some embodiments processor 148 of server 144 can be configured to maintain, in memory 152, a compilation of suppression requests for each message thread (that is, each combination of a subject and certain recipient addresses). Thus, the compilation can include a single indication of the subject and a recipient addresses, along with a list of identifiers for the devices from which suppression requests have been received having the same subject and recipient addresses. Each item in the list (that is, each device identifier) can be associated with one or both of a bypass variable and an expiry variable.
In a further variation, processor 108 of mobile electronic device 104 can be configured to generate a message interface 900, as shown in
In yet another variation, and now referring to
Thus, blocks 1015, 1020, 1025, 1030, 1035 and 1045 are as described above in connection with blocks 815, 820, 825, 830 and 845, respectively. Method 1000 also includes block 1003, at which processor 108 is configured to receive override criteria for storage in memory 112. Override criteria define at least one exception to the suppression criteria and the additional criteria received at blocks 320 and 325 of method 300. In other words, a message whose display would be suppressed as a result of the performance of methods 700 or 800 will not in fact be suppressed as a result of the performance of method 1000.
Turning to
Override criteria can 1104 be received at block 1003 substantially simultaneously with the suppression and additional criteria. In other embodiments, override criteria 1104 can be received subsequently, including after one or more complete performances of method 800. It is contemplated that if display of a message is not suppressed as a result of the application of override criteria 1104, the interface comprising a representation of that message may include a selectable element such as element 904, described above in connection with
A wide variety of override criteria are contemplated. For example, override criteria can include any suitable combination of keywords in the body of a message, keywords in the subject of a message, recipient identifiers, sender identifiers, timestamps indicating the time of receipt of the message, and the like.
Those skilled in the art will appreciate that in some embodiments, the functionality of processor 108 as configured via execution of messaging application 176 can also 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.
Persons skilled in the art will appreciate that there are yet more alternative implementations and modifications possible for implementing the embodiments, and that the above implementations and examples are only illustrations of one or more embodiments. The scope, therefore, is only to be limited by the claims appended hereto.