The specification relates generally to portable electronic devices, and specifically to a method and apparatus for searching message data in a portable electronic device.
At a portable electronic device, technology for searching messages and providing results is currently limited due to the limited size of the display screen.
Implementations are described with reference to the following figures, in which:
A first aspect of the present specification provides a method for searching message data in a portable electronic device comprising a processing unit interconnected with a memory device, a display device and a communication interface. The method comprises: providing a threaded message inbox, at the display device, the threaded message inbox comprising the message data grouped as threads; receiving search criteria, at the processing unit, for searching the threaded message inbox; initiating a search of an index of the threaded message inbox, at the processing unit, using the search criteria, the index comprising key words extracted from the message data and stored in the memory device; receiving additional message data belonging to a given thread, via the communication interface, while the search is being performed; searching the additional message data in addition to the index; generating search results based on whether at least one of data from the additional message data and data from the index meets the search criteria; and providing the search results in threads at the display device. The search results are automatically updated in response to receiving the additional message data when the additional message data meets the search criteria.
Providing the search results can comprise providing the additional message data in the given thread. The given thread can further comprise at least one further set of message data associated with the given thread.
Each of the threads in the search results can comprise only message data associated with the search results.
Each of the threads in the search results can comprise all message data associated with each respective thread, regardless of whether each message in each respective thread is associated with the search results.
The method can further comprise providing respective graphic icons for each of the threads in the search results, each the respective graphic icon indicative of whether an associated thread comprises one message or a plurality of messages.
The method can further comprise providing respective textual indicators for each of the threads in the search results, each the respective textual indicator indicative of a total number of messages in each respective thread and at least one of a number of unopened messages and a number of messages associated in each respective thread.
The search can be initiated when a first character is received in the receiving search criteria.
The method can further comprise providing search options at the display device in association with the receiving the search criteria, the search options comprising options for searching given fields of the message data and wherein the search results comprise only data that meets the search criteria in chosen fields of the message data.
A second aspect of the present specification provides a portable electronic device for searching message data. The portable electronic device comprises a processing unit interconnected with a memory device, a display device and a communication interface. The processing unit is enabled to: provide a threaded message inbox, at the display device, the threaded message inbox comprising the message data grouped as threads; receive search criteria, at the processing unit, for searching the threaded message inbox; initiate a search of an index of the threaded message inbox, at the processing unit, using the search criteria, the index comprising key words extracted from the message data and stored in the memory device; receive additional message data belonging to a given thread, via the communication interface, while the search is being performed; search the additional message data in addition to the index; generate search results based on whether at least one of data from the additional message data and data from the index meets the search criteria; and provide the search results in threads at the display device. The search results are automatically updated in response to receiving the additional message data when the additional message data meets the search criteria.
To provide the search results the processing unit can be further enabled to provide the additional message data in the given thread. The given thread can further comprise at least one further set of message data associated with the given thread.
Each of the threads in the search results can comprise only message data associated with the search results.
Each of the threads in the search results can comprise all message data associated with each respective thread, regardless of whether each message in each respective thread is associated with the search results.
The processing unit can be further enabled to provide respective graphic icons for each of the threads in the search results, each the respective graphic icon indicative of whether an associated thread comprises one message or a plurality of messages.
The processing unit can be further enabled to provide respective textual indicators for each of the threads in the search results, each the respective textual indicator indicative of a total number of messages in each respective thread and at least one of a number of unopened messages and a number of messages associated in each respective thread.
The search can be initiated when a first character is received in the receiving search criteria.
The processing unit can be further enabled to provide search options at the display device in association with the receiving the search criteria, the search options comprising options for searching given fields of the message data and wherein the search results comprise only data that meets the search criteria in chosen fields of the message data.
A third aspect of the present 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 for for searching message data in a portable electronic device comprising a processing unit interconnected with a memory device, a display device and a communication interface, comprising: providing a threaded message inbox, at the display device, the threaded message inbox comprising the message data grouped as threads; receiving search criteria, at the processing unit, for searching the threaded message inbox; initiating a search of an index of the threaded message inbox, at the processing unit, using the search criteria, the index comprising key words extracted from the message data and stored in the memory device; receiving additional message data belonging to a given thread, via the communication interface, while the search is being performed; searching the additional message data in addition to the index; generating search results based on whether at least one of data from the additional message data and data from the index meets the search criteria; and providing the search results in threads at the display device.
Device 101 can further comprise a searching application 136 for searching message data 102 and/or index 130. Application 136 can be stored in memory device 127 and processed by processing unit 122. In particular processing of application 136 enables device 101 to search message data 102 and/or index 130 and to control display device 128 to provide search results in threads, as will be described below.
In general, device 101 comprises any suitable portable electronic device for processing application 136, including but not limited to any suitable combination of, laptop computing devices, portable computing device, mobile electronic devices, PDAs (personal digital assistants), cellphones, smartphones and the like. Other suitable portable electronic devices are within the scope of present implementations.
Processing unit 122 comprises any suitable processor, or combination of processors, including but not limited to a microprocessor, a central processing unit (CPU) and the like. Other suitable processing units are within the scope of present implementations.
Communication interface 124 comprises any suitable communication interface, or combination of communication interfaces. In particular communication interface 124 is enabled to communicate with remote computing devices via a network (not depicted) to receive message data 102, the network being wired and/or wireless as desired. Accordingly, communication interface 124 (—which will also be referred to as interface 124 hereinafter—) is enabled to communicate according to any suitable protocol which is compatible with the network, including but not limited to wired protocols, USB (universal serial bus) protocols, serial cable protocols, wireless protocols, cell-phone protocols, wireless data protocols, Bluetooth protocols, NFC (near field communication) protocols and/or a combination, or the like. In some implementations, interface 124 can be enabled to communicate with remote computing devices (e.g. servers, other computing devices, other mobile electronic devices, etc.), via any suitable communication network according to any suitable protocol, including but not limited to packet based protocols, Internet protocols, analog protocols, PSTN (public switched telephone network) protocols, WiFi protocols, WiMax protocols and the like, and/or a combination. Other suitable communication interfaces and/or protocols are within the scope of present implementations.
Input device 126 is generally enabled to receive input data, and can comprise any suitable combination of input devices, including but not limited to a keyboard, a keypad, a pointing device, a mouse, a track wheel, a trackball, a touchpad, a touch screen and the like. Other suitable input devices are within the scope of present implementations.
Memory device 127 can comprise any suitable memory device, including but not limited to any suitable one of, or combination of, volatile memory, non-volatile memory, random access memory (RAM), read-only memory (ROM), hard drive, optical drive, flash memory, magnetic computer storage devices (e.g. hard disks, floppy disks, and magnetic tape), optical discs, and the like. Other suitable memory devices are within the scope of present implementations. In particular, memory device 127 is enabled to store application 136, message data 102, and index 130.
Display device 128 comprises circuitry 129 for generating representations of data, for example a representation 130 of application 136, as will be described below. Display device 128 can include 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). Circuitry 129 can include any suitable combination of circuitry for controlling the CRT and/or flat panel displays etc., including but not limited to display buffers, transistors, electron beam controllers, LCD cells, plasmas cells, phosphors etc. In particular, display device 128 and circuitry 129 can be controlled by processing unit 122 to generate representation 130.
In particular, attention is directed to
In implementations depicted in
Furthermore, it is appreciated that display device 128 can have an area that is commensurate with device 101 being mobile, and hence display device 128 is smaller than display devices on, for example, personal computers. Hence, efficiently using cache 227 to provide search results, and further efficiently controlling display device 128 to provide search results, become significant technical problems which can be addressed as described below.
Attention is now directed to
In method 300, it is assumed that memory device 127 stores message data 102 that has previously been received via interface 124 and a communication network (not depicted), for example as e-mail messages.
At step 301, a threaded message inbox is provided at display device 128, threaded message inbox comprising message data grouped as threads. For example, processing unit 122 can be caused to process application 136, which in turn causes processing unit 122 to control display device 128 to provide a representation 400 comprising a threaded message inbox 401 as depicted in
Furthermore, in depicted implementations, an indication of a number of messages in a thread and/or the number of unopened messages in a thread (or conversely the number of read messages in a thread) can be provided in an indicator 411: for example, in the indicator 411 of field 402c, there are 5 messages in the associated thread, 2 of which are unopened (e.g. “⅖”).
Furthermore, in these implementations, inbox 401 comprises a unified inbox in which all messages stored in device 101 are provided. Specifically, inbox 401 comprises both received messages as well as sent messages: for example, field 402a corresponds to a message sent from device 101 to another computing device via interface 124 and/or a communication network (not depicted), as indicated by icon 412. Furthermore, in some implementations, device 101 can be associated with more than one messaging account (for example a business related messaging account and a personal messaging account); in these implementations, the unified inbox comprises messages from all accounts associated with device 101. The unified inbox can further comprise draft messages, outgoing messages and/or any other suitable type of message that could be in a unified inbox, including but not limited to SMS (short message service) messages, IM (instant messaging) messages and call log events. Furthermore, email, SMS, IM, etc. are all classes of message that can make use of the present implementations.
Representation 300 can also comprise various icons and/or indicators 414 which can indicate battery strength, charging of battery, time, date, whether or not device 101 is in communication with a communication network, signal strength, a number of new messages in message data 102, and/or actions that can be initiated at device 101 upon actuation of an icon (e.g. compose a new message, open a message, delete a message, scrolling or the like) or the like.
Returning to
At step 305, and with reference to
Again returning to
At step 309, and as depicted in
At step 311, additional message data 503 is searched in addition to index 130 as part of the search initiated at step 307. The search of additional message data 503 can occur when additional message data 503 is received, after the search of index 130 is complete, or at any other suitable time during the search. Furthermore the search of additional message data 503 can comprise searching any suitable field and/or data in additional message data 503 to determine if search criteria 501 is an element of additional message data 503. Furthermore, additional message data 503 can comprise one or more messages received during the search initiated at step 307.
At step 313, search results 540 are generated, as depicted in
At step 315, search results 540 are provided in threads at display device 128. For example, attention is directed to
It is further appreciated that providing search results 540 comprises providing additional message data 503 in an associated given thread in search results 540, as in field 802b; in other words, additional message message data 503 is provided in the thread to which it belongs.
Consider now implementations where a search has been performed prior to receiving additional message data 503 and search results 540 are being provided in search results screen as in
In some implementations, all the messages in each thread are provided (e.g. at least one further set of message data 102 associated with a given thread, for example the thread associated with the additional message data 503). However, in other implementations, only message data that meet the search results are provided in a given thread, regardless of whether each set of message data 102 in each respective thread is associated with search results 540.
In implementations depicted in
In further implementations, representation 800 can comprise respective textual indicators for the threads in search results 540, similar to indicator 811, each respective textual indicator indicative of a total number of messages in a respective thread and at least one of a number of unopened messages and a number of messages associated with search results 540. For example, indicator 811 of field 802c, indicates that there are 5 messages in the associated thread, 2 of which are unopened (e.g. “⅖”). Furthermore, indicator 813 of field 802h, indicates there are 2 messages in the associated thread, all of which have been opened (e.g. “ 0/2”). In depicted implementations, such textual indicators are provided only for threads comprising 2 or more messages. However in other implementations, such textual indicators can be provided for all threads.
In contrast to
In any event, by initiating a search of index 130, and searching additional message data 503 that arrives at device 101 during the search, and by further providing search results in a thread, both searching and provision of search results becomes more efficient, as does organization of cached 227, which in turn speeds up device 101. Indeed, such a solution, while not specific to portable electronic devices, is particularly applicant to portable electronic devices due to their limited screen size and processing capabilities.
Those skilled in the art will appreciate that in some implementations, the functionality of device 101 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 device 101 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). 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-wireless medium (e.g., optical and/or digital and/or analog communications lines) or a wireless 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 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 for implementing the implementations, and that the above implementations and examples are only illustrations of one or more implementations. The scope, therefore, is only to be limited by the claims appended hereto.
This application is a continuation of U.S. patent application Ser. No. 12/870,283 filed on Aug. 27, 2010, which claims the benefit of U.S. Provisional Patent Application Ser. No. 61/326,314 filed Apr. 21, 2010, the entire contents of each application are hereby incorporated by reference herein for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
7885641 | Tysowski | Feb 2011 | B2 |
20050149621 | Kirkland et al. | Jul 2005 | A1 |
20060075029 | Kelso et al. | Apr 2006 | A1 |
20060248151 | Belakovskiy | Nov 2006 | A1 |
20070038707 | Broder et al. | Feb 2007 | A1 |
20080311935 | Tysowski | Dec 2008 | A1 |
20120265753 | Bocking et al. | Oct 2012 | A1 |
Number | Date | Country |
---|---|---|
0886228 | Dec 1998 | EP |
2144411 | Jan 2010 | EP |
Entry |
---|
Koster et al., Using message-based threading for multimedia applications, Aug. 22-25, 2001, IEEE, 599-602. |
Lindemann, et al. ; A distributed search service for peer-to-peer file sharing in mobile applications; Proceedings of the Second International Conference on Peer to Peer Computing, 2002, IEEE, 73-80. |
Google—“Gmail Help: Get Mail from other Accounts”, http://mail.google.com/support/bin/answer.py?&answer=21288; updated Oct. 14, 2009. |
Google—“Gmail Help: Conversations”, http://mail.google.com/support/bin/answer.py?hl=en&answer=5900; updated May 21, 2010. |
Extended European search report mailed Feb. 8, 2011, in corresponding European patent application No. 10174304.5. |
Number | Date | Country | |
---|---|---|---|
20130185290 A1 | Jul 2013 | US |
Number | Date | Country | |
---|---|---|---|
61326314 | Apr 2010 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12870283 | Aug 2010 | US |
Child | 13787567 | US |