The present disclosure relates to identification and retrieval of contact data at an electronic device for presentation by an electronic device.
Electronic devices, such as wireless communication devices, are typically provided with messaging applications for composing, sending and receiving messages such as email (electronic mail), instant messages (IM), short message service (SMS) multimedia messaging service (MMS) and the like. Messages to be sent from an electronic device are typically addressed to one or more recipients (who may also be referred to as “addressees”) either automatically by the device, or manually by the electronic device user. The identification of the recipient(s) may be implicit depending on the operation of the messaging application. For example, in a chat context (such as that employed by typical IM messaging applications), the user is not necessarily required to explicitly identify the recipient(s) when participating in an ongoing conversation by composing and sending a message; any recipients are already associated with the conversation and/or the set of messages within that conversation. In other contexts, the user may be required to select the recipient(s) at some point prior to sending the message, for example by expressly adding the recipient(s) to an address entry field during the message composition stage, or by expressly or implicitly confirming the automated insertion of recipients in the address entry field by the messaging application.
In drawings which illustrate by way of example only embodiments of the present disclosure, in which like reference numerals describe similar items throughout the various figures,
The embodiments and examples herein provide enhanced message addressing methods, devices and systems for electronic communications such as email and other message formats in which one or more addressees are selected by a user. These embodiments will be described and illustrated primarily in relation to electronic devices, such as tablet computers, smartphones, or any other portable electronic device, which may or may not be equipped to communicate over wireless networks or public networks. It will be appreciated by those skilled in the art, however, that this description is not intended to limit the scope of the described embodiments to implementation on these particular systems. For example, the methods and systems described herein may be applied to any appropriate communication device or data processing device adapted for composition and addressing of messages or the selection of one or more users, recipients, or other delegates, whether or not the device is portable or wirelessly enabled, whether or not it is provided with voice communication capabilities. Additionally or alternatively the device may be adapted to process data and carry out operations on data in response to user commands for any number of purposes, including productivity and entertainment. Thus, the embodiments described herein may be implemented on electronic devices adapted for communication or messaging, including without limitation cellular phones, smartphones, wireless organizers, personal digital assistants, desktop computers, terminals, laptops, tablets, handheld wireless communication devices, notebook computers, portable gaming devices, Internet-connected televisions, set-top boxes, digital picture frames, digital cameras, in-vehicle entertainment systems, entertainment devices such as MP3 or video players, and the like. As expressed in the various examples herein, the electronic device may have an integrated display interface; however, the examples need not be limited to such embodiments. The electronic device may be configured to output data to be painted to an external display unit such as an external monitor or panel, television screen, projector, or virtual retinal display (via a data port or transmitter, such as a Bluetooth® transceiver, USB port, HDMI port, DVI port, and the like). References herein to a “display,” “display screen” or “display interface” are intended to encompass both integrated and external display units.
The electronic device 100 may be a battery-powered device including a battery interface 132 for receiving one or more rechargeable batteries 130. Communication functions, including data and voice communications, are performed through one or more communication subsystems 104, 105, and/or 122 in communication with the processor 102. Data received by the electronic device 100 can be decompressed and decrypted by a decoder operating according to any suitable decompression techniques, and encryption/decryption techniques according to one or more various encryption or compression standards known to persons of skill in the art.
If equipped with a communication subsystem 104, this subsystem 104 receives data from and sends data to wireless network 200. In this embodiment of the electronic device 100, the communication subsystem 104 is configured in accordance with one or more wireless communications standards. New wireless communications standards are still being defined, but it is believed that they will have similarities to the network behaviour described herein, and it will also be understood by persons skilled in the art that the embodiments described herein are intended to use any other suitable standards that are developed in the future. The wireless link connecting the communication subsystem 104 with the wireless network 200 represents one or more different Radio Frequency (RF) channels, operating according to defined protocols specified for the wireless communications standard, and optionally other network communications.
The electronic device 100 may be provided with other communication subsystems, such as a wireless LAN (WLAN) communication subsystem 105 or a short-range and/or near-field communications subsystem 122 also shown in
It should be understood that any of the communication subsystems 104, 105, 122 may optionally be included in the electronic device 100. Alternatively, a communication subsystem provided in a dongle or other peripheral device (not shown) may be connected to the electronic device 100, either wirelessly or by a fixed connection such as a USB port, to provide the electronic device 100 with access to a network. If provided onboard the electronic device 100, the communication subsystems 104, 105 and 122 may be separate from, or integrated with, each other.
The main processor 102 also interacts with additional subsystems, if present, such as a Random Access Memory (RAM) 106, a flash memory 108, a display 110, other data and memory access interfaces such as an auxiliary input/output (I/O) subsystem 112 or a data port 114, a keyboard 116, a speaker 118, a microphone 120, a camera 121, the communications 104, 105, 122 and other device subsystems 124. The auxiliary subsystem 112 can include devices such as a mouse, trackball, infrared fingerprint detector, or a roller wheel with dynamic button pressing capability, optical joystick, trackpad, or other user input device. The electronic device may also be provided with an orientation sensor or module 111, used to detect the orientation of the display 110. In the case of a portable (such as a handheld) electronic device 100, display 110 is typically integrated with the device 100, as well as the orientation module 111. In the case of an electronic device 100 where the display 110 is external to the device, the orientation module 111 may be integrated with the external display screen. The orientation module 111 may include any suitable module that may be selected by those skilled in the art, such as an accelerometer which may be used to detect gravity- or motion-induced forces and their direction. For example, the orientation module can have a digital three-axis accelerometer connected to an interrupt and serial interface of the processor 102, or another microcontroller of the device 100 (not shown). The processor 102 or microcontroller determines the device 100 orientation in accordance with acceleration measured by the accelerometer and provides the detected orientation to the operating system, or raw acceleration data measured by the accelerometer can be sent to the processor 102 so that device orientation is determined by the operating system of the electronic device 100. The orientation module 111 may thus be considered to include the accelerometer, microcontroller or those modules of the processor 102 executing to determine orientation. It should be understood that the orientation module 111 may optionally be present at an external display, and provide orientation determination for the display screen associated with the electronic device 100. Whether the orientation module 111 is located at an external display or is located at the electronic device 100 having an integrated display, the orientation determined by the orientation module 111 is related to the orientation of the display screen associated with the mobile device.
The orientation or acceleration detected at the electronic device 100 (or at the external display 110) may be processed to determine a response of the electronic device 100, such as an orientation of a graphical user interface displayed on the display 110 in response to a determination of the current orientation detected. Upon determination of the current orientation or a change in orientation, the operating system may issue notifications to executing applications of the current orientation. Individual applications may register a device orientation event notification listener with the operating system to receive such notifications. Alternatively, applications may query the operating system for the current orientation at defined intervals.
In some embodiments, the electronic device 100 may be a touchscreen-based device, in which the display interface 110 is a touchscreen interface that provides both a display for communicating information and presenting graphical user interfaces, as well as an input subsystem for detecting user input that may be converted to instructions for execution by the device 100. The touchscreen display interface 110 may be the principal user interface provided on the electronic device 100, although in some embodiments, additional buttons, variously shown in the figures or a trackpad, or other input means may be provided. If a touchscreen display interface 110 is provided, then other user input means such as the keyboard 116 may or may not be present. The controller 216 and/or the processor 102 may detect a touch by any suitable contact member on the touch-sensitive display 110.
A visualization processor or module 125 may be included in the electronic device 100. The visualization module 125 analyzes and processes data for visualization on the display 110. Data originally prepared for visualization on a large-screen display may require additional processing prior to visualization on a small-screen display. This additional processing may be accomplished by the visualization module 125. As will be appreciated by those of skill in the art, the visualization module can be implemented in hardware, software, or a combination thereof, and can include a dedicated image processor and associated circuitry, or can be implemented within main processor 102. In some electronic devices 100, particularly those provided with integrated displays 100 (although as noted above, the embodiments herein are not necessarily restricted to only such devices), the processor 102, visualization module 125, and other components are configured to respond to detected changes in orientation of the device 100.
The electronic device 100 also includes an operating system 140 and software components 155 to 190, collectively indicated as programs 150 in
Software applications may be installed on the electronic device 100 during its manufacture (for example, during initial loading of the operating system 140), or at a subsequent time once the electronic device 100 is delivered to the user. These software applications may be supplied by the electronic device manufacturer or operating system provider, or may be third party applications. The additional applications can be loaded onto the electronic device 100 through at least one of the communications subsystems 104, 105, 122, the auxiliary I/O subsystem 112, the data port 114, or any other suitable device subsystem 124. This flexibility in application installation increases the functionality of the electronic device 100 and can provide enhanced on-device functions, communication-related functions, or both.
The various applications that may be installed on the electronic device 100 include messaging applications, such as the email messaging application 155, instant messaging (IM) application 170, and short message service (SMS) service 172. Various alternatives exist for message applications, as is well known to those skilled in the art. Messages that have been sent or received by the user are typically stored in the flash memory 108 of the electronic device 100 or some other suitable storage element in the electronic device 100. Each message type may have a distinct message store in the device memory. In at least some embodiments, some of the sent and received messages can be stored remotely from the device 100 such as in a data store of an associated host system with which the electronic device 100 communicates. There may be multiple ones of these applications installed on the electronic device 100; for example, a distinct application may be used for each different account provisioned on the electronic device 100, even if the message types associated with those accounts are the same. Other types of messaging applications may be included on the electronic device 100, and other ones of the depicted applications may also provide access to a form of messaging service, such as social networking applications 172. Social networking applications and others are generally configured to receive or retrieve data over a network for presentation to the user, such as the browser application 160, ticker application 176, and reader application 178. The browser application 160 may also be used to access a message service provided over the network.
Other types of software applications can also be installed on the electronic device 100, such as calendar applications 180, media applications 165 for processing and presenting audio files 166, photos and other graphic files 167, and videos 168. One or more virtual machines 182 may be provided on the electronic device 100 for executing applications requiring a runtime environment other than that provided by the operating system 140. A further application 184 may provide access over a network to a vendor site offering software applications for download (and optionally for purchase) to the electronic device 100.
In use, a received signal such as a text message, an email message, or webpage download will be processed by the receiving communication subsystem 104, 105, 122 and input to the main processor 102. The main processor 102 will then process the received signal for output to the display 110 or alternatively to the auxiliary I/O subsystem 112. A subscriber can also compose data items, such as email messages, for transmission over a network.
The communication subsystems 104, 105, 122 may include a receiver, transmitter, and associated components such as one or more embedded or internal antenna elements, Local Oscillators (LOs), and a processing module such as a Digital Signal Processor (DSP) in communication with the transmitter and receiver. The particular design of the communication subsystems 104, 105, 122, or other communication subsystem is dependent upon the communication network with which the electronic device 100 is intended to operate. Thus, it should be understood that the foregoing description serves only as one example.
Text-based content that is rendered for display may be obtained from a document such as a message, word processor document, webpage, or similar file, which is either obtained from memory at the device such as flash memory 108 or RAM 106, or obtained over a network connection. A suitable application, such as a messaging application, viewer application, or browser application, can process and render the document for display in accordance with any formatting or stylistic directives included with the document.
The browser application 160 includes a user interface engine 161, layout or rendering engine 163, a script processor, plug-in, or virtual machine 162 for executing code snippets, scripts and the like embedded in, received with, or invoked by the webpage being processed. The browser application 160 may also have its own local store 164, allocated to the application from the volatile and/or non-volatile memory 106, 108 of the electronic device 100. In some cases, messaging applications such as the email messaging application 155 are not provided with their own script processors 158 and/or layout engines 159; instead, the processing and layout functionality of the analogous components of the browser application 160 are used. This is particularly the case where the email messaging application 155 and the browser application 160 are provided by the same developer or publisher.
When a document such as a message or webpage is received or retrieved for processing and display, it is processed by the appropriate layout engine, with any scripts embedded in or provided with the document passed to the script processor for execution. The layout engine parses the document to generate a rendered version for output at the display 110. The rendered output may be provided to the visualization module and thence to the display 110.
Messaging services are implemented using one or more servers 250 provided with means for storing messages (e.g., a database or a suitable data repository 255) for each message service or format available using the host system, such as email, instant messaging, voicemail, and the like. The server 250 (or a plurality of such servers) and its corresponding data repository 255 can therefore store all received and sent messages on behalf of each user, whether those messages originated inside or outside the host system. In some embodiments, messages sent and received by a user may be stored only locally on the user's client device and not maintained in a persistent store in the host system, while in other embodiments the messages are stored both locally at the client device as well as the server, in which case the message data stores on the client device and the server are synchronized or reconciled periodically. The user device may be any suitable computing or communication device adapted for composition and transmission of messages such as the client devices 251 or electronic devices 100, 100′, 100″ illustrated in
The host system may operate from behind a firewall or proxy server 266, which provides a secure node and optionally a wireless internet gateway for the host system. Client devices such as the electronic device 100 can then access the host system wirelessly through the firewall or proxy server 266, as denoted by the access point 207. External access to the host system by devices 100 may also be provided via a public or private network 224. The device 100 may be configured to access the public switched telephone network 222 through a wireless network 200, which may comprise one or more nodes 202 configured for communication in accordance a suitable mobile telephony standard. In turn, the wireless network 200 provides the electronic device 100 with connectivity to the Internet or other public wide area network 224, and thence to the organization's host system. Alternatively or additionally, if the mobile device is provisioned to communicate over wireless networks that are typically IP-based, such as wireless LANs implementing the Wi-Fi protocol (one or more of the IEEE 802.11 suite of protocols), personal area networks implementing other protocols such as Bluetooth, other wireless networks implementing wireless broadband standards such as WiMAX (one or more of the IEEE 802.16 suite of protocols), and the like, the mobile device 100 accesses the public or private wide area network 224 through a third-party access point, such as the user's own personal access point and Internet connection, or a third party hotspot device, as denoted by the access point 205.
The services above, such as directory services and messaging, can be provided in a self-hosted system as suggested above, i.e., a host system supplied by and managed by the organization itself. However, the person skilled in the art will appreciate that one or more services provided to organization users may instead by provided by third parties in software as a service, platform as a service, or infrastructure as a service arrangement, colloquially referred to as cloud computing services. For example, email messaging services or collaborative applications can be hosted by a third party service maintaining an external server 260 and data repository 265. Access to the external server 260 can be made available both externally to external client devices such as the electronic device 100, and to client devices 251 within the host system's LAN over the public or private network 224. Regardless, the host system's network services are made available only to those users who possess sufficient credentials to access the services, whether they are accessed internally or externally, and whether provided by the self-hosted or the virtually (externally) hosted system. Each user is therefore provisioned with an account for accessing the host system's services, whether self-hosted or externally hosted by a third party. Messaging services in particular are accessible by the users through client messaging applications executing on the users' electronic devices 100 which communicate with a message server such as the server 250 or 260.
The person skilled in the art will appreciate that the network arrangements and host system described with reference to
The electronic device 100, 100′, 100″, other client device 251, and/or the server 250, 260 (or another computing device in the host system) may be configured to implement the methods described herein. These embodiments are described principally with reference to email messages, the general form and construction of which will be known to those skilled in the art. Email is selected for these examples due to its prevalence; however it will be appreciated by those skilled in the art that these embodiments need not be restricted to text-based electronic communication data structures, but can be applied, with suitable modifications, to the addressing of other types of electronic communication data structures. For instance, a meeting invitation or other type of calendar event, or a task item, may be composed by a user of the electronic device 100 and may involve the selection of recipients (e.g., invitees or delegates), as might posts or messages generated and transmitted using social networking applications. Further, rather than using the embodiments and examples described herein to select addressees for a message being composed, they may be applied in other contexts where a selection of one or more users or entities is required, as in the cases of access control or privacy (e.g., the selection of users to be given access to a particular domain, subdomain or document).
When composing messages or otherwise selecting users, recipients or other such designates, the user composing the message or engaging in the selection is typically required to either manually enter the addressees by typing in some identifier for each addressee, or manually select the addressees from a list or directory. The identifier for a given addressee (here referred to as a “recipient identifier”) may be an address associated with the addressee, in a form compliant with a governing standard or protocol. The common form of an email address or other electronic message address will be known to those skilled in the art. The recipient identifier may also be a common name or friendly name for the addressee, which may be the addressee's personal or entity name (e.g. first and last name, first name only, last name only, corporate or department name), a nickname, or a screen name. Addressees, of course, need not be individual recipients. Addressees can include other entities (corporate, departmental, etc.) to which a messaging address has been assigned
The common or friendly name may be stored in association with the formal address in a data store such as a directory or repository accessible to the electronic device 100 sending a message, or in a local data store such as an “address book” or contact database, or another type of contact data store located at the electronic device 100 itself. An address book, typically, includes those addressees that the user of the electronic device 100 or of an account associated with the electronic device 100 has chosen to include in the address book. A local data store, however, may include other addressees (by address and optionally by common or friendly name) that were not selected for inclusion in the address book, but were previously identified as a correspondent of the electronic device user due to their inclusion as an addressee or sender of a message sent by or received at the electronic device 100. An example of a method of compiling a contact data store of this type is described in co-pending U.S. patent application Ser. No. 12/755,186 filed on 6 Apr. 2010 (US 2011/0087747), the entirety of which is incorporated herein by reference. Briefly, a contact data store is compiled through collection of recipient identifiers from incoming and outgoing messages in a message data store, optionally with a timestamp denoting the last time that recipient identifier was obtained from the message data store and a frequency value. Each time a message is received or sent, a contact data store management process is notified, and collects the recipient identifiers from the message. Recipient identifiers may be maintained in the contact data store using a first-in-first out methodology, with the contact data store being limited to a specified size or number; thus, older recipient identifiers are gradually removed from the contact data store, so that the contact data store represents a set of addressees currently used by the electronic device user. Alternatively, if the recipient identifiers in the contact data store are stored with a timestamp, those identifiers that have been present in the contact data store for longer than a predetermined period of time are removed; or those recipient identifiers that are used most frequently in messages are maintained in the contact data store longer than identifiers used less frequently.
Another source of recipient identifiers are the message data stores at the electronic device 100 (or indeed at a server associated with an account provisioned at the electronic device 100), since messages are typically stored in association with a recipient identifier (either the formal address, common or friendly name, or both). In the case of email, for example, the formal address, and/or the common or friendly name, is typically included within the email message itself. The format in which a message is stored by the messaging application at the electronic device 100 may vary according to the specific implementation details. For example, each message may be stored as a distinct object in memory at the electronic device 100. In other cases, messages may be concatenated and stored in a single file.
A typical view of a message composition screen 300a as might be generated and displayed by a messaging application executing at an electronic device 100 for use in composing messages is illustrated in
In the examples depicted herein, the screens are shown with a superimposed virtual keyboard 350. Virtual keyboards 350 of this type are often provided on touchscreen-based electronic devices 100 for the entry of text, and may be automatically displayed for receiving user input (via touch) when a text-based input field is in focus, i.e., capable of receiving input. The meaning of “focus” will be understood by those skilled in the art. It will be understood by those skilled in the art, however, that the virtual keyboard 350 is not required, and in some implementations (even those executing on touchscreen-based devices) the virtual keyboard 350 is not provided, and user input may be effected using some other user interface mechanism, such as a physical keyboard, voice command interface, and so forth.
When a new message composition screen 300a is generated and displayed, the various input fields 310, 320, 330, 340 are typically blank. In some implementations, not every field 310, 320, 330, 340 may be shown in a single message composition screen 300a. In some implementations, the content of one or more of these fields may be predefined. For example, when composing a message in reply to, or forwarding, a previously received message, default subject line content is typically generated by the messaging application that includes the subject line of the previously received message, and optionally a token to indicate that the new message is a reply to or forward of that previously received message (e.g., a “Re:” or “Fw:”) token preceding the subject line). In addition, the message body input field 340 may be pre-populated with content quoted from the previous message. Similarly, when the message is being composed in reply, at least the identifier of the sender of the previous message is included as a direct recipient of the new message. Other recipients of the previous message may be included as direct or indirect recipients. If the input fields 310, 320 and/or 330 are included in the message composition screen 300a, then these fields may be pre-populated with this content. In some implementations, one or more of these input fields may be omitted altogether, although this may prevent the user from editing those fields if desired. In still other implementations, message composition may take place over multiple screens: a first screen may receive input identifying the intended recipients of the message, while a second screen receives input of message body content. The examples described herein may be carried out, with modification as required, with or without pre-populated input fields 310, 320, 330.
As mentioned above, the user composing the message or otherwise selecting the recipients or designates must engage in some amount of manual effort to enter or select those recipients. If the message is a reply message, then as noted above recipient identifiers may already be included in one or more of the recipient identifier input fields 310, 320. Regardless, the user may wish to add direct or indirect recipients. This may be done by inputting text or some other data in the corresponding input field 310, 320 using techniques known in the art, such as inputting using the virtual keyboard 350. In the example of
In this particular example, the first recipient identifier entry field 310 is in focus and, as illustrated in
Typically, the user must enter sufficient text in the field 310 to unambiguously identify a recipient by identifier. This identifier may be a formal messaging address, or a common or friendly name; if the latter, the messaging application may query the address book or contact data store for an address matching the input common or friendly name, and associate that address with the input field as well (although the message composition screen 300a may continue to display only the common or friendly name). The address, whether input directly by the user or retrieved by the messaging application, is then used to address the message for transmission to the recipient(s). It is useful to include a feature, such as a drop-down list (not shown in
This procedure is then carried out for each desired recipient of the message being composed. Thus, if the message is intended to be sent to five recipients, the user must carry out a selection method for each one of those recipients. The device processor executing the messaging application and any other operating system functions to implement this procedure must therefore execute those functions for each added recipient. This is particularly onerous for both the device processor and the user when the message is intended to have many recipients. If the user forgets to include one of the intended addressees, then he or she may need to send a second message to the missed addressee (or perhaps to all addressees, including the missed addressee), thus increasing message traffic.
Users often develop communication habits; they may tend to message the same set of addressees. In a social context, they may tend to message the same group of friends; in a professional context, they may tend to always copy messages to an assistant or manager when sending messages to certain individuals in an organization. A “shortcut” sometimes implemented by a user who needs to send a message to a number of recipients is to locate a previous message having the same set of recipients as addressees or sender, and to compose a message in reply to all of those addressees. That way, the recipient identifier input fields 310, 320 are pre-populated as described above, avoiding the need for the user to manually select each individual recipient. However, as noted above, the reply message typically includes the previous message's subject line and content quoted from the previous message body. If the user does not take steps to edit the subject line and message body, then they will be included in the new message as well. The unnecessary inclusion of the quoted content of the previous message can unduly inflate the size of the new message.
An alternative solution is to expressly define a group of recipients using a group identifier (e.g., using an alias or messaging service that permits the creation of recipient groups), so that the message need only be addressed to that group identifier. However, a user might send messages to a variety of groups of varying composition, and remembering what group identifier corresponds to which set of recipients may not be any more convenient than manually selecting each recipient each time. In addition, these groupings may be fluid; if one addressee is away, the user might wish to send the message to an alternate addressee. Further, if one member of the group is unavailable for messages, they will continue to receive these group messages since they are included in the group, resulting in unnecessary transmission of messages. In addition, some recipient groupings are of a transitory nature, whereas when a group identifier is defined, it is typically stored until the user or an administrator expressly instructs its deletion.
Accordingly, an enhancement to identification and retrieval of recipient identifiers for populating a recipient identifier input field is provided. Turning to
In
The assortment of suggested entries is presented in a suggested entry user interface element 360 that may be in the form of a drop-down list, as illustrated in
The assortment may be provided in another user interface format. For example, in a graphical presentation, the suggested entries may be arranged in a scattered or “cloud” format, with more frequently contacted addressees depicted in a larger and/or bolder font face, and/or closer to the centre of the cloud. The suggested entries may also be presented audibly or using a different non-visual interface. An example of one such suggested entry is the first entry 362; as shown in that entry, those parts of the recipient identifiers (both common name and email address) for the addressee of that entry 362 are visually distinguished from the remainder of the identifier, for ease of identification. Other entries of this type shown in
In addition to locating and presenting entries of this type, the electronic device 100 also provides suggested entries that comprise a combination of recipients, i.e., multiple recipients, such as multiple recipient entry 364. A multiple recipient entry may be distinguished from the group identifiers discussed above, in that a group identifier has not necessarily been defined for the set of recipients included in the multiple recipient entry; rather, the multiple recipients each have distinct recipient identifiers (e.g., a distinct email address). The multiple recipient entry thus comprises a plurality of addresses or other recipient identifiers. The recipient identifiers within a given multiple recipient entry are obtained, in this example, from data sources such as the message data store. The multiple recipient identifiers are recipient identifiers taken from a previous message associated with a recipient identifier matching the partial recipient identifier input in the field 310. The previous message may have been sent or received from or by a messaging account associated with the electronic device 100, and/or from or by the electronic device 100 itself; the recipient identifier associated with the previous message may have been a sender or recipient of the message.
In the example of
Once the suggested entries are displayed in the interface element 360, as in
The foregoing examples were illustrated in the context of a new message being composed, without any other data (e.g., other addressees) being input in any of the input fields. As a further example, additional suggested entries may be provided even after at least one recipient identifier has been added to one of the fields 310, 320. Turning to
In the example of
The suggested entry 410 may remain visible, and available for selection by the user, until such time that the user provides further input causing the suggested entry 410 to cease to be displayed in the field 310, such as a dismiss command to remove the suggested entry 410, inputting additional text (i.e., a new partial recipient identifier), or moving focus away from the field 310. If, on the other hand, further input is provided that selects the suggested entry 410 or confirms that the suggested entry 410 is to be added as a recipient (e.g., a touch event such as a tap on the suggested entry user interface element), then the suggested entry 410 continues to be displayed, in which case its appearance may change to signify that its inclusion in the field 310 has been confirmed. For example, it may be changed so that it no longer is visually distinct from the appearance of the entered recipient identifier 382, but instead resembles the identifier 382 in color, font face and/or indicator, and so on. If this suggested entry feature is not desired, a messaging application option setting may be used to disable this feature.
The suggested entries can also include multiple recipient entries such as 526 and 528, again identified in the manner described above. However, in this variation, not only those previous messages designating recipient identifiers corresponding to the partial recipient identifier are used to generate suggested entries, but also those previous messages that designate both recipient identifiers corresponding to the partial recipient identifier as well as the recipient identifier already entered 382 in the recipient identifier entry field 310. The resultant list of suggested entries provided may therefore differ from the list of suggested entries that might be provided, had there been no entered recipient identifier 382. In the example of
If the user repeats the action of confirming the addition of the suggested entry 610, then the display may update to the example screen 600b shown in
Thus, as can be seen from the sequence of example screens 400, 600a and 600b, as the user selects suggested entries for inclusion as recipients of the message, the suggested entries displayed in the recipient identifier entry field 310 can continually update to suggest additional recipients until focus is moved away from the field 310.
Similarly, even after multiple recipients have been suggested by the device 100 and confirmed by the user as recipients of a given message, the user may continue to input further partial recipient identifiers as in the examples of
As the user continues to change the input content in the recipient identifier entry field 310, the initial set of suggested recipient entries continues to be updated and re-presented on the screen in response to the changed content. Thus, in screen 700b of
Updating may continue in response to each detected change to the partial recipient identifier input in the entry field 310—for instance, as individual letters are added or deleted—until such time that selection of one of the suggested recipients or recipient combinations in the list 750 is detected, input of recipient identifiers for that field 310 is cancelled (for example, by moving focus to another field in the screen 700b), no further recipient identifiers matching the input string 716 can be located, or a timeout or cancellation of message composition (which can include discarding the message or saving the message in draft form) occurs. Updating may result in new combinations of recipient identifiers being located and presented in the list 750 as appropriate.
It will be appreciated by those skilled in the art that the foregoing examples can also be applied to other recipient identifier input fields as well, such as the indirect addressee field 320 or a “Bcc:” field, if available. A further example implementation relating to an indirect addressee field is shown in
As with the examples described above, the suggested entries 830 may be dismissed by moving focus to another field, by expressly dismissing the suggested entries 830, by selecting one of the suggested entries 832, 834, 836, or by inputting data in the field 820 (i.e., a partial recipient identifier).
In still a further example, suggested entries may be generated based on an input subject line. Turning to
As mentioned above, in the case where a message is composed in reply to a previous message, the messaging application will typically populate the input fields 310, 320, 330 with content from the previous message, in which case there may not be a need to add further recipient identifiers to the reply message being composed. In some instances, however, the user may wish to add further direct or indirect addressees.
A further variation of this example is illustrated in
In still a further example, the foregoing methods of providing suggested entries for one of the recipient identifier entry fields 310, 320 may be extended to provide suggested entries for several recipient identifier entry fields (i.e., both 310 and 320). Turning to
It will thus be appreciated by those skilled in the art that the foregoing examples provide a method of electronic device operation enabling more efficient input of data in various input fields of a message composition screen, or input fields of any other type of composition or data entry selection screen where selection of users or sets of users is required. With a single action—such as a click, tap or swipe of an element such as the multiple recipient entry 1016 of FIG. 10—one or more input fields can be populated with multiple recipient identifiers, rather than requiring the user to repeatedly engage in inputting data for each desired addressee. Also, rather than requiring the device processor and other modules to engage in repeated queries and searches of message data stores or other local data stores for entries to populate the suggested entries user interface each time the user enters data to specify a new recipient, these queries and searches are effectively consolidated into a single search process, thereby reducing processing and memory overhead.
In all of the foregoing embodiments and examples, at least some suggested entries—including multiple recipient entries—are determined by locating messages meeting one or more of the constraints obtained from entered data in the various input fields 310, 320, 330, such as a partial recipient identifier, subject line, or complete (entered) recipient identifier. To improve the efficiency of the electronic device 100 in carrying out these methods, and to restrict the suggested entries to those suggested addressees or combinations of addressees that are likely to be the most relevant to the user's current activities, the scope of messages searched or queried may be restricted temporally to a recent time period, such as the previous day, week, or month. This temporal constraint on the identification and provision of suggested entries may be imposed by the local message data store or the contact data store, since either data store may automatically purge any entries or messages older than a preset age (for example, messages older than 30 days may be automatically deleted from device storage). However, this temporal constraint may also be defined separately from any memory management processes on the electronic device 100, such that only a subset of the messages on the device are searched to locate recipient identifiers for inclusion in the suggested entries.
In these various examples, when messages are located in order to generate suggested entries for display, the scope of messages searched may extend to any messages belonging to the same message thread as those messages that match the specified constraints, i.e., the partial or complete recipient identifier or subject line entered in one of the various input fields 310, 320, 330. The determination of thread membership for a received or sent message will be known to those skilled in the art. An example of such may be found in co-pending U.S. patent application Ser. No. 12/966,077 filed 13 Dec. 2010 (US 2011/0231499), the entirety of which is incorporated herein by reference.
In the above examples, suggested entries were obtained, at least in part, by searching a message data store for messages matching the specified constraints, and obtaining the set of recipient identifiers specified in those messages. In still a further variation, as messages are sent or received by the electronic device 100, a further process executes to catalog recipient identifiers and subject lines to provide a separate data store reflecting the usage of those recipient identifiers at the electronic device 100, and how they are used in combination with other recipient identifiers. The process of collecting recipient identifiers in this manner may be carried out in a manner similar to that described above with regard to the contact data store. Rather than searching a message data store to locate recipient identifiers for multiple recipient entries, this separate data store may instead be queried to obtain the identifiers for inclusion in the suggested entries.
If the detected input is further input of a text string (i.e., an addition to the partial input already detected), at 1140 the device 100 determines whether a complete recipient identifier has been input. This determination may be made by comparing the input string to a known valid form of a messaging address. The determination may also be made by comparing the input string to recipient identifiers stored in the address book or the contact data store at the electronic device 100; if there is an unambiguous (i.e., unique) match between the input string and one recipient identifier, the string is associated with the address associated with that recipient identifier, and the device 100 does not attempt to match the input string any further—for example, the device 100 does not engage in the same matching process carried out at block 1120 in respect of the message data store. If a complete recipient identifier has not been input, the electronic device 100 repeats the search and retrieval at 1120 using the updated input, thus refining the suggested entries to a narrower set matching the updated input. As the user continues to add further input to the input field, the search process is repeated, further refining the resultant set of suggested entries. As these entries are further refined, the contents of the suggested entry interface element (such as the element 360 in
At 1210, the next message matching the search constraints—in this case, the field input, and optionally a time range or similar constraint on the scope of messages searched—is located, and the recipient identifiers from that message retrieved at 1220. If it is determined that there is only a single recipient at 1230, then this single recipient identifier is added as a single entry to a list of entries that may be presented to the user in the suggested entries interface at 1240. If there are multiple recipients, then the multiple recipient identifiers are added as a single entry to the list of entries at 1260. At 1260, the electronic device 100 determines whether the search has reached the end of the range of the message data store to be searched. If there is a temporal constraint and the messages in the message data store are being searched in reverse chronological order, then the determination may be whether the next message falls outside the specified date or time range for the search. If the search is not complete, the process returns to 1210. If the search is complete, the list of entries obtained at 1240 and 1250 is then sorted and presented to the user. Sorting may include organizing all entries in alphabetical order. In the examples described above, entries are also ordered by frequency of use. In the course of searching through the message data store, the same single recipient identifiers or set of multiple recipient identifiers may have been found and added to the list at 1240 or 1250 multiple times. The electronic device 100 then identifies these multiple occurrences, and ranks the retrieved entries in decreasing order of occurrence.
There is thus provided a method implemented at an electronic device, the method comprising: detecting input of a partial recipient identifier in a recipient identifier entry field of a message composition screen displayed at the electronic device; in response to detecting the input, presenting an initial set of suggested entries matching the partial recipient identifier for selection for the recipient identifier entry field, the initial set comprising at least one entry having a combination of recipient identifiers specified in a previous message, where at least one recipient identifier of the combination of recipient identifiers matches the partial recipient identifier; while the initial set of suggested entries is displayed, detecting a change to the partial recipient identifier in the recipient identifier entry field; and in response to detecting the change, updating the initial set of suggested entries and presenting the updated set of suggested entries in place of the initial plurality of suggested entries.
In one aspect, updating the initial set of suggested entries comprises filtering the initial set of suggested entries based on the detected change.
In another aspect, the updated set of suggested entries comprises at least one entry having a combination of recipient identifiers retrieved from a previous message, where at least one recipient identifier of the combination of recipient identifiers matches the changed partial recipient identifier.
In a further aspect, the recipient identifier entry field comprises a previously-selected recipient identifier, and the previous message specifies the previously-selected recipient as a sender or recipient.
Still further, presenting the initial set of suggested entries may comprise: locating, in at least one data store of the electronic device, one or more sent messages addressed to a recipient identifier matching the partial recipient identifier, and for each located message addressed to multiple recipient identifiers, obtaining the multiple recipient identifiers and presenting the multiple recipient identifiers as a combination of recipient identifiers in a single entry.
In yet another aspect, the recipient identifier entry field is a Cc: or a Bcc: field of the message composition screen.
In still another aspect, the message composition screen includes a To: recipient identifier entry field comprising a previously-selected recipient identifier, and the initial set of suggested entries comprises at least one entry having a combination of recipient identifiers specified in a previous message where the previously-selected recipient identifier is a direct addressee of the previous message.
In a further aspect, the message composition screen includes a subject line entry field comprising entered subject line content, and the initial set of suggested entries matches both the partial recipient identifier and the entered subject line content.
Still further the method may comprise: detecting selection of one of the updated set of suggested entries; in response to detecting the selection, inserting the one or more recipient identifiers of the selected entry in the recipient identifier entry field; and when the recipient identifier entry field is in focus, presenting a further set of suggested entries for the recipient identifier entry field, the further set comprising at least one recipient identifier specified in a previous message in which the selected one or more recipient identifier are also specified. The method may further comprise: while the further set of suggested entries is displayed, detecting input of a further partial recipient identifier in the recipient identifier entry field; and in response to detecting the input of the further partial recipient identifier, presenting still a further set of suggested entries matching the further partial recipient identifier.
There is also provided a method implemented at an electronic device, the method comprising: while a message composition screen is displayed at the electronic device, the message composition screen including a subject line entry field comprising entered subject line content and at least one recipient identifier entry field, in response to an instruction to retrieve suggested entries for one of the at least one recipient identifier entry field, retrieving from at least one data store a plurality of suggested entries matching the entered subject line content, the plurality of suggested entries including at least one multiple recipient entry, the multiple recipient entry comprising a plurality of recipient identifiers designated as addressees of a message previously sent from an account associated with the electronic device, a subject line of the message previously sent matching the entered subject line content; and displaying the plurality of suggested entries at the electronic device.
In one aspect, displaying the plurality of suggested entries occurs when one of the at least one recipient identifier entry field is capable of receiving input, and does not occur when the one of the at least one recipient identifier entry field is not capable of receiving input.
In another aspect, the instruction to retrieve suggested entries comprises detection that the at least one recipient identifier entry field is capable of receiving input.
There is also provided an electronic device, which may comprise at least one input subsystem; a display; and at least one processor in communication with the at least one input subsystem and display, the electronic device, for example through its processor, being capable of implementing the methods and variants described herein.
There is also provided a computer-readable medium, which may be physical or non-transitory, bearing code which, when executed by one or more processors of an electronic device, causes the electronic device to implement the any one of the methods and variants described herein.
It should be understood that steps and the order of the steps in the processing described herein may be altered, modified and/or augmented and still achieve the desired outcome. Throughout the specification, terms such as “may” and “can” are used interchangeably and use of any particular term should not be construed as limiting the scope or requiring experimentation to implement the claimed subject matter or embodiments described herein. Further, unless stated otherwise, the various features and adaptations described in respect of one example or embodiment in this disclosure can be used with other examples or embodiments described herein, as would be understood by the person skilled in the art.
The systems' and methods' data may be stored in one or more data stores. The data stores can be of many different types of storage devices and programming constructs, such as RAM, ROM, flash memory, programming data structures, programming variables, etc. It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
Code adapted to provide the systems and methods described above may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions for use in execution by a processor to perform the methods' operations and implement the systems described herein.
The computer components, software modules, functions and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. Various functional units described herein have been expressly or implicitly described as modules and agents, in order to more particularly emphasize their independent implementation and operation. It is also noted that an agent, module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The various functional units may be implemented in hardware circuits such as custom VLSI circuits or gate arrays; field-programmable gate arrays; programmable array logic; programmable logic devices; commercially available logic chips, transistors, and other such components. Modules implemented as software for execution by a processor or processors may comprise one or more physical or logical blocks of code that may be organized as one or more of objects, procedures, or functions. The modules need not be physically located together, but may comprise code stored in different locations, such as over several memory devices, capable of being logically joined for execution. Modules may also be implemented as combinations of software and hardware, such as a processor operating on a set of operational data or instructions.
A portion of the disclosure of this patent document contains material which is or may be subject to one or more of copyright, design patent, industrial design, or unregistered design protection. The rights holder has no objection to the reproduction of any such material as portrayed herein through facsimile reproduction of the patent document or patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all rights whatsoever.
This application claims priority to U.S. Provisional Application No. 61/603,142 filed 24 Feb. 2012, the entirety of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61603142 | Feb 2012 | US |