Aspects of the disclosure are related to computing and communication technology, and in particular, to inclusion gestures in contact environments.
Many software applications provide contact-related tools and environments through which users may search for people in their contacts and implement commands, such as initiating communication sessions, managing their contacts, and the like. For example, a user may navigate to a particular contact associated with a person. A view of the contact may include various command options corresponding to the various ways in which a user may interact with the contact, such as organizational or communication options.
For example, it is possible in many contact environments to select a particular contact and modify details about the contact, assign the contact to a group, or perform other detailed or organizational functions. A variety of ways exist for creating contact groups. In many contact environments a group may be created by naming a group and then individually selecting contacts to place in the group. In other environments groups may be dynamically created from a communication, such as an email or invite that already includes or otherwise identifies a collection of contacts, and designating that collection of contacts as a group.
Once a group is created it is possible to interact with a group of contacts in a variety of ways to perform various functions. In one example a user may select an object representative of a pre-defined group and from there initiate a communication via one of several options presented to the user, such as an email or invite option. In another example a user may begin a group communication by launching a corresponding communication application and then selecting the group to involve in the group communication.
Provided herein are systems, methods, and software for facilitating contact environments. In an implementation, a contact environment includes contacts. Users may indicate via inclusion gestures their intention to include at least some of the contacts in an option group. A view of the contact environment may then be presented with the contacts and the option group, which includes the selected contacts sometimes referred to as included contacts. The contact environment may also various command options available for interacting with the included contacts in the option group. Responsive to an option gesture corresponding to a specific option represented in the command options, a command operation may be initiated in accordance with the specific option.
This Overview is provided to introduce a selection of concepts in a simplified form that are further described below in the Technical Disclosure. It should be understood that this Overview is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Many aspects of the disclosure can be better understood with reference to the following drawings. While several implementations are described in connection with these drawings, the disclosure is not limited to the implementations disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents.
Implementations described herein provide for enhanced contact environments that allow for the dynamic grouping of multiple contacts into option groups such that command operations may be performed with respect to the option groups. Such enhancements are facilitated by way a graphical representation of an option group that may be populated with multiple contacts using intuitive inclusion gestures. Users may communicate their intention to group multiple contacts together by performing an inclusion gestures for each contact.
The resulting group of included contacts can then be represented within the option group, in addition to graphical representations of command options applicable to the included contacts. Interaction with the command options, such as a touch or other indicative gestures, leads to the initiation of a command operation with respect to the included contacts. For example, an organizational operation such as assigning the included contacts to a group may be performed. In another example, a communication session may be initiated that involves the included contacts.
In some implementations, responsive to inclusion gestures, each of the of inclusion gestures indicative of an intention to include a different one of several contacts in an option group, a view is presented of a contact environment. The contact environment includes the several contacts, multiple included contacts in the option group, and command options applicable to the included contacts in the option group. Responsive to an option gesture corresponding to a specific option represented in by the command options, a command operation involving the included contacts is initiated in accordance with the specific option.
In some implementations the contact environment includes a canvas with the several contacts arranged separately from the multiple included contacts on the canvas. In some implementations, the contact environment includes the canvas, an application bar arranged adjacent to the canvas, and a contact basket arranged within the application bar which has the included contacts represented therein. In some scenarios, the contacts are individual contacts and the inclusion gestures are slide gestures directed from the individual contacts over the canvas towards the option group.
In various implementations the option group may be visually expanded or contracted in response to various gestures. For example, responsive to an exclusion gesture indicative of an intention to exclude a contact from the option group, a modified view of the contact environment may be presented with included contacts in the option group, less the contact subject to the exclusion gesture. In addition, the option group may be visually contracted in response to the exclusion gestures. In response to some inclusion gestures that add contacts to the option group, the option group may visually expand when the inclusion gestures occur.
In addition, to contacts, other types of objects may be included in the option group in some implementations. The other types of objects may then be included in any resulting command operation. For example, a document may be included in the option group by way of an object inclusion gesture. The document may then be distributed automatically to participants associated with the contacts in a subsequent communication session.
Referring now to the drawings,
The following discussion of
Turning to
Contact environment 101 includes contacts 103, 105, 107, 109, and 111. Contacts 103, 105, 107, 109, and 111 may each be any contact graphic, icon, object or other suitable element representative of contact information with which a user may interact by way of inclusion gestures. Each contact may generally correspond to a person and may include a collection of information corresponding to the person, at least a portion of which may be used to communicate with the person. For example, contact 107 and contact 109 may include a variety of contact information, such as a person's name, phone number, email address, service handle, a physical address, or any other suitable contact information.
Contact environment 101 also includes option group 113 and command options 115. Option group 113 may be any graphic, object, or other suitable element representative of a group in which some contacts may be included by way of inclusion gestures. Command options 115, represented herein by options X, Y, and Z, are representative of any graphic, object, or other suitable element representative of command options in accordance with which command operations may be initiated. As an example, option X, Y, and Z may correspond to phone, chat, and video conference command options.
In operation, contact environment 101 is presented, including at least a rendering of several contacts and option group 113 (step 201). Contact environment 101 may be presented for a variety of reasons or within a variety of scenarios. As an example, contact environment 101 may be presented within the context of launching a contacts application. In another example, a user may navigate to contact environment 101 from within another application. In any case, once presented, contact environment 101 allows a user to interact with contacts to assemble options groups and initiate a variety of types of communications once the groups are assembled.
In particular, a user may interact with contact environment 101 by way of inclusion gestures.
Responsive to inclusion gestures 108 and 110, which contacts are to be included in option group 113 are identified (step 203). This may generally be accomplished by analyzing information corresponding to inclusion gestures 108 and 110, such as the location, duration, and direction of a touch or other input used to create inclusion gestures 108 and 110. Such analysis is well known in the art within the context of user interfaces and thus the present disclosure refrains from a lengthy discussion. In this example, contacts 107 and 109 are identified as included in option group 113. Accordingly, option group 113 is presented with contacts 107 and 109 presented therein.
Note that, as a result of including contacts 107 and 109 in option group 113, two copies or versions of contacts 107 and 109 may be presented simultaneously. The visual features of contacts 107 and 109 as presented within option group 113 may be different relative to the visual features of contacts 107 and 109 as presented along with the other contacts in contact environment 101. For example, contacts 107 and 109 may be smaller or contain less visual information when presented within option group 113. It is also possible for the visual features of contacts 107 and 109 as presented separate from option group 113 to change upon their selection for inclusion in option group 113. For example, a shading effect or some other technique may be implemented to visually indicate that contacts 107 and 109 have been selected for inclusion in option group 113. When presented within option group 113, contacts 107 and 109 may be referred to as included contacts due to their inclusion in option group 113.
Command options 115 are also presented along with the representation of contacts 107 and 109 in option group 113. Any one of command options 115 may be selected by way of an option gesture, such as a touch, or any other type of user input suitable for selecting one of the options. Responsive to the option gesture corresponding to a specific option of command options 115, a command operation is initiated with the included contacts in option group 113 (step 205). For example, a group chat session may be initiated between the user interacting with contact environment 101 and other participants associated with contacts 107 and 109. In another example, a video conference may be initiated between the user interacting with contact environment 101 and other participants associated with contacts 107 and 109. In yet another example, an online meeting may be initiated between the user and other participants associated with contacts 107 and 109.
Variations of contact process 200 are possible, such as initiating each of the aforementioned steps, in addition to or in place of actually performing each of the aforementioned steps. For example, contact process 200 may include initiating the presentation of a contact environment, initiating the identification of contacts, and initiating the presentation of a modified view. In another example, others steps in addition to or in place of those described by contact process 200 may be implemented. In one implementation, contact process 200 may include receiving the inclusion gestures, each indicative of the intention to include a different one of the contacts in option group 113. In another implementation, contact process 200 may include presenting a modified view of contact environment 101, including a view of the included contacts in option group 113.
Computing system 300, illustrated in
Computing system 300 includes processing system 301, storage system 303, software 305, communication interface 307, and user interface 309. Processing system 301 is operatively coupled with storage system 303, communication interface 307, and user interface 309. Processing system 301 loads and executes software 305 from storage system 303. When executed by computing system 300 in general, and processing system 301 in particular, software 305 directs computing system 300 to operate as described herein for contact process 200 or variations thereof. Computing system 300 may optionally include additional devices, features, or functionality not discussed here for purposes of brevity.
Referring still to
Storage system 303 may comprise any computer readable storage media readable by processing system 301 and capable of storing software 305. Storage system 303 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the storage media a propagated signal. In addition to storage media, in some implementations storage system 303 may also include communication media over which software 305 may be communicated internally or externally. Storage system 303 may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other. Storage system 303 may comprise additional elements, such as a controller, capable of communicating with processing system 301.
Software 305 may be implemented in program instructions and among other functions may, when executed by computing system 300 in general or processing system 301 in particular, direct computing system 300 or processing system 301 to operate as described herein for contact process 200. Software 305 may include additional processes, programs, or components, such as operating system software or other application software. Software 305 may also comprise firmware or some other form of machine-readable processing instructions executable by processing system 301.
In general, software 305 may, when loaded into processing system 301 and executed, transform computing system 300 overall from a general-purpose computing system into a special-purpose computing system customized to facilitate contact environments as described herein for each implementation. Indeed, encoding software 305 on storage system 303 may transform the physical structure of storage system 303. The specific transformation of the physical structure may depend on various factors in different implementations of this description. Examples of such factors may include, but are not limited to the technology used to implement the storage media of storage system 303 and whether the computer-storage media are characterized as primary or secondary storage.
For example, if the computer-storage media are implemented as semiconductor-based memory, software 305 may transform the physical state of the semiconductor memory when the program is encoded therein, such as by transforming the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. A similar transformation may occur with respect to magnetic or optical media. Other transformations of physical media are possible without departing from the scope of the present description, with the foregoing examples provided only to facilitate this discussion.
It should be understood that computing system 300 is generally intended to represent a computing system with which software 305 is deployed and executed in order to implement contact process 200 (and variations thereof) and optionally all or portions of contact environment 101. However, computing system 300 may also represent any computing system on which software 305 may be staged and from where software 305 may be distributed, transported, downloaded, or otherwise provided to yet another computing system for deployment and execution, or yet additional distribution.
Referring again to
Referring again to
User interface 309 may include a mouse, a voice input device, a touch input device for receiving a touch gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, and other comparable input devices and associated processing elements capable of receiving user input, such as inclusion gestures and option gestures, from a user. Output devices such as a display, speakers, haptic devices, and other types of output devices may also be included in user interface 309. In some cases, the input and output devices may be combined in a single device, such as a display or surface capable of displaying images, such as views of contact environment 101, and receiving touch gestures. The aforementioned user input and output devices are well known in the art and need not be discussed at length here. User interface 309 may also include associated user interface software executable by processing system 301 in support of the various user input and output devices discussed above. Separately or in conjunction with each other and other hardware and software elements, the user interface software and devices may provide a graphical user interface, a natural user interface, or any other kind of user interface.
In view 421A, the contact environment includes a title bar 423 that describes the view and a viewing mode. In this example, the viewing mode may be one of a name mode or a group mode, which are provided for illustrative purposes only and may vary. In the name mode, contacts may be viewed by name, while pivoting to the group mode allows contacts to be viewed in groups. When adding contacts to contact basket 427, as is discussed in more detail below, it is possible to add contacts from within the name mode, the group mode, or both. In fact, it may be possible to pivot between the two such that contacts can be added from each view mode.
The contact environment also includes a canvas 424 on which contacts 431-438 are arranged and displayed. Application bar 425 includes a clear function 426, a contact basket 427, and a separation bar 428 that separates contact basket 427 from communication commands 429. Communication options 429 includes several options for communicating with participants associated with contacts that may be included in contact basket 427, including instant message, voice call, and video conferencing options.
View 421A further illustrates some operational aspects of the content environment. In operation, the contact environment is presented for interaction with a user. The contact environment may be presented for a variety of reasons or within a variety of scenarios, such as the launching of a dedicated contacts applications, the navigation to the contact environment from within some other application, or for any other reason. Once presented, a user may interact with at least some of contacts 431-438 to assemble them in contact basket 427. A variety of types of communications may then be initiated once the group is assembled.
It is assumed for exemplary purposes in view 421A that contact 432 had previously been selected by an inclusion gesture to be included in contact basket 427. View 421A illustrates two additional inclusion gestures 441 and 443 corresponding to contacts 431 and 438 respectively. Inclusion gestures 441 and 443 are both represented as downward swipes beginning nearby contacts 431 and 438 respectively and proceeding towards contact basket 427. Note that the inclusion gestures may occur in a serial manner, although it may be possible to perform both gestures in a substantially simultaneous manner. Inclusion gestures 441 and 443 are indicative of an intention to include contacts 431 and 438 in contact basket 427. While inclusion gestures 441 and 443 are illustrated and downward swipes or slides, it may be appreciated that other types of gestures are possible and may be considered within the scope of this disclosure.
Referring now to view 421B, responsive to inclusion gestures 441 and 443, contacts 431 and 438 are rendered in contact basket 427. Considered in sequence, it may be appreciated that view 421B differs relative to view 421A by the inclusion of contacts 431 and 438 in contact basket 427. In addition, contact basket 427 has been visually expanded by moving separation bar 428 to the right in order to accommodate the addition of contacts 431 and 438 in contact basket 427.
View 421B also illustrates an option gesture 445 representative of a selection of one of the communication commands 429. For exemplary purposes it is assumed that the instant messaging function or command is selected, in response to which an instant message or chat sessions may be initiated with the included contacts in contact basket 427, contact 432, contact 431, and contact 438. Other commands may also be possible, such as a command to define a new group consisting of the contacts in contact basket 427 or a command to add the contacts in contact basket 427 to an existing group.
As mentioned above, it may be possible to select contacts in both viewing modes—when contacts are arranged by name and when contacts are arranged by groups. In fact, in some scenarios a contact may initially be selected when viewed in the name mode. Upon pivoting to the group mode, the same contact may have its appearance altered such that the user is alerted to the fact that the contact has already been selected for inclusion in contact basket 427. A similar change in the appearance of any contact is possible upon the contact being included in contact basket 427. For example, a shading effect may be implemented with a particular contact upon its inclusion in contact basket 427 to alert the user to the fact.
Referring to
View 421C also illustrates an option gesture 555 representative of a selection of one of the communication commands 429. For exemplary purposes it is assumed that the video conference function or command is selected, in response to which a video conference may be initiated with the included contacts in contact basket 427, contact 432 and contact 438, but not contact 431 due to its exclusion. Other commands may also be possible, such as a command to define a new group consisting of the contacts in contact basket 427 or a command to add the contacts in contact basket 427 to an existing group.
Referring to
Instead, as illustrated in view 421F contact basket 427 becomes visually scrollable to either side. All five contacts are included in contact basket 427, but only some of them are visible at any given time. For example, contact 436 and contact 437 can be viewed in their entirety, but only portions of contact 431 and contact 438 can be viewed. Contact 432 is hidden entirely. However, scrolling to the left would uncover contact 432, while scrolling to the right would bring contact 438 into full view. In the event that one or more contacts are removed from contact basket 427, then the visibility of each contact may revert back to a state where each contact can be seen in its entirety.
View 421F also illustrates an option gesture 655 representative of a selection of one of the communication commands 429. For exemplary purposes it is assumed that the voice call function or command is selected, in response to which a conference call may be initiated with the included contacts in contact basket 427, contacts 432, 431, 436, 437, and 438. Other commands may also be possible, such as a command to define a new group consisting of the contacts in contact basket 427 or a command to add the contacts in contact basket 427 to an existing group.
Referring to
In operation, a user may make inclusion gesture 479, such as by providing a downward slide across canvas 424 towards contact basket 427. Such a gesture, having originated on or nearby object 477, provides an indication of an intention to include object 477 in contact basket 427. As a result, object 477 is rendered within contact basket 427, as illustrated by view 421H. View 421H also illustrates an option gesture 755 representative of a selection of one of the communication commands 429. For exemplary purposes it is assumed that the instant message or chat feature is selected, in response to which a group chat may be initiated with the included contacts in contact basket 427, contacts 432, 431, and 438, and object 477. For example, an invitation to the group chat may be distributed to contacts 432, 431, and 438 with object 477 attached thereto. In another example, object 477 may be automatically deposited into or uploaded to a group chat room from which it may be downloaded or otherwise retrieved by the participants.
While
In addition, it may be possible to add entire groups to contact basket 427. For example, a pre-defined group may be represented by a group icon or object, similar to a contact. An inclusion gesture may be performed with respect to the group icon such that the group is dropped into or otherwise included in contact basket 427, possibly along with other individual contacts. The group could remain represented as a group in contact basket 427. However, in some scenarios it may be that the group is separated out into its individual contacts such that multiple contacts from the group are displayed within contact basket 427.
In another example, application bar 425 or at least contact basket 427 may persist even upon navigating to other views. One such example is provided above with respect to object source 470. However, it may be possible to navigate to other views or variations of views 421A-H while persisting application bar 425 or at least contact basket 427 so that other contacts or objects available through those views can be included.
Computing system 400 includes processing system 401, storage system 403, software 405, communication interface 407, and user interface 409. Processing system 401 is operatively coupled with storage system 403, communication interface 407, and user interface 409. Processing system 401 loads and executes software 405 from storage system 403. When executed by computing system 400 in general, and processing system 401 in particular, software 405 directs computing system 400 to operate as described herein with respect to views 421A-H. Computing system 300 may optionally include additional devices, features, or functionality not discussed here for purposes of brevity.
Referring still to
Storage system 403 may comprise any computer readable storage media readable by processing system 401 and capable of storing software 405. Storage system 403 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the storage media a propagated signal. In addition to storage media, in some implementations storage system 403 may also include communication media over which software 405 may be communicated internally or externally. Storage system 403 may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems co-located or distributed relative to each other. Storage system 403 may comprise additional elements, such as a controller, capable of communicating with processing system 401.
Software 405 may be implemented in program instructions and among other functions may, when executed by computing system 400 in general or processing system 401 in particular, direct computing system 400 or processing system 401 to operate as described herein for views 421A-H. Software 405 may include additional processes, programs, or components, such as operating system software or other application software. Software 405 may also comprise firmware or some other form of machine-readable processing instructions executable by processing system 401.
Communication interface 407 may include communication connections and devices that allow for communication between computing system 400 and other computing systems (not shown) over a communication network or collection of networks (not shown). Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. The connections and devices may communicate over communication media to exchange communications with other computing systems or networks of systems, such as metal, glass, air, or any other suitable communication media. The aforementioned communication media, network, connections, and devices are well known and need not be discussed at length here.
User interface 409 may include a mouse, a voice input device, a touch input device for receiving a touch gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, and other comparable input devices and associated processing elements capable of receiving user input, such as inclusion gestures and option gestures, from a user. Output devices such as a display, speakers, haptic devices, and other types of output devices may also be included in user interface 409. In some cases, the input and output devices may be combined in a single device, such as a display or surface capable of displaying images, such as views of contact environment 101, and receiving touch gestures. The aforementioned user input and output devices are well known in the art and need not be discussed at length here. User interface 409 may also include associated user interface software executable by processing system 401 in support of the various user input and output devices discussed above. Separately or in conjunction with each other and other hardware and software elements, the user interface software and devices may provide a graphical user interface, a natural user interface, or any other kind of user interface.
The functional block diagrams, operational sequences, and flow diagrams provided in the Figures are representative of exemplary architectures, environments, and methodologies for performing novel aspects of the disclosure. While, for purposes of simplicity of explanation, methods included herein may be in the form of a functional diagram, operational sequence, or flow diagram, and may be described as a series of acts, it is to be understood and appreciated that the methods are not limited by the order of acts, as some acts may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a method could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.
The included descriptions and figures depict specific implementations to teach those skilled in the art how to make and use the best option. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these implementations that fall within the scope of the invention. Those skilled in the art will also appreciate that the features described above can be combined in various ways to form multiple implementations. As a result, the invention is not limited to the specific implementations described above, but only by the claims and their equivalents.