Aspects of the disclosure are related to computing and communication technology, and in particular, to conversation applications and environments.
Conversation applications allow participants in a conversation to exchange communications with each other. The conversation may be carried out by phone, video conference, instant messaging or by some other form of communication exchange between the participants. Conversation applications may at times be implemented as stand-alone applications but may also be integrated within other applications. A variety of communication devices and other computing systems support conversation applications, such as laptop, desktop, and tablet computers, smart phones, and gaming devices.
Many conversation applications when executed provide for the rendering of conversation environments with which the participants in a conversation may interact to carry out various functions related to the conversation or other aspects of the application. Some conversation environments may be presented within multi-window contexts that allow for the presentation of multiple windows that persist independently of each other.
For example, a conversation environment may include a main conversation window within which communications are exchanged. The conversation environment may also include a separate window within which contacts associated with the participants in the conversation may be viewed. The selection of one of the contacts may trigger the presentation of yet another, independently persistent window containing contact information for the selected contact. In some cases, the multiple windows may be nested such that a user cannot navigate back to a root window without first closing any intermediate windows.
Provided herein are systems, methods, and software for facilitating conversation environments. In an implementation, a view of a conversation environment is presented that includes a conversation component within which to present communications exchanged during a conversation between a participants in the conversation. In response to a participant list gesture, the view is modified to include a list component presented over a portion of the conversation component. The list component may include contacts associated with the participants in the conversation. In response to a contact gesture corresponding to one of the contacts, the view is modified again to replace the list component with a contact component associated with the one of the contacts. In some implementations the view is a single window view within which the components are arranged.
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 transitions within views of conversation environments. The enhanced transitions provide users with unobtrusive ways to navigate within and interact with conversation environments by replacing or subsuming various components within a conversation environment with other components. In at least one implementation, a view of a conversation environment is modified to present a list component over a portion of a conversation component responsive to a participant list gesture. Then, responsive to a contact gesture, the list component is replaced with a contact component. A user may return to the list component by way of a back gesture, but may also proceed to another contact component. To return to the list component from the additional contact component, the user need only indicate that intention by way of another back gesture, rather than navigate through the previously presented contact component.
Some operational scenarios may involve the presentation of a conversation environment within a single window view and the application of the enhanced transitions therein, although the enhanced transitions may be applicable to multiple window environments as well. In such scenarios involving single window views, the various components rendered within the single window view may be presented in such a way that the user experiences no more than two layers. For example, at a first layer a conversation canvas may be presented within which conversation communications are embedded. A list gesture, such as a swipe or slide from the left, top, bottom, or right of the conversation canvas, may trigger the rendering of a list panel that is presented one layer above or over the conversation canvas.
A selection of a contact presented within the list panel may result in the rendering of a contact panel at the same layer or on the same plane as the list panel. In fact, the list panel may be replaced or subsumed entirely by the contact panel. The contact panel itself may also include other contacts, the selection of which may trigger the rendering of an additional contact panel, again at the same layer or on the same plane as both the initial contact panel and the list panel. In fact, the initial contact panel may be replaced by the additional contact panel, just as the initial contact panel replaced the list panel.
In some implementation scenarios, the various contact panels may be linked or chained directly to the list panel such that returning to the list panel from a contact panel can be achieved in a single gesture. From the preceding example above, a user may return to the list panel by selecting a back button included within the contact panel or making some other suitable back gesture. Even when viewing the additional contact panel which was navigated to from within the initial contact panel, the selection of a back button or making some other suitable back gesture may return the user directly to the list panel, rather than requiring the user to navigate back through the initial contact panel or any other intermediate panels. In fact, some technical aspects may be appreciated from the forthcoming examples, such as improved processing power, battery life, and other resource utilization due to the unobtrusive way in which conversation environments may be presented within single window implementations.
Referring now to the drawings,
Referring now to
The view of the conversation environment may be modified in various ways in response to various user inputs or interactions during the course of a conversation or other operations. For example, a user may interact with the conversation environment by way of gestures to control the view of the conversation environment. In response to one such gesture, sometimes referred to as a participant list gesture, the conversation environment is modified to include a list component presented over a portion of the conversation component (step 103). The list component is a component that includes, possibly among other things, contacts associated with the participants in a conversation.
The user may continue to control or otherwise interact with the contact environment by way of gestures associated with the contacts or other elements included in the list component. With respect to the contacts, the user may desire to view contact information associated with one of the contacts as indicated by another gesture, sometimes referred to as a contact gesture. In response to the contact gesture, the list component is replaced with a contact component associated with the selected contact (step 105). The contact component may include, for example, contact information associated with the contact, such as a name, an email address, a phone number, or a photo, as well as other types of contact information, combinations of contact information, or variations thereof.
The contact component may also include additional contacts. The additional contacts may be those associated with the contact represented by the contact component. Thus, the user may again select a contact by way of an additional contact gesture, this time from the contact component rather than the list component. In response to the additional contact gesture, the contact component is replaced with an additional contact component (step 107). The additional contact component may also include, for example, contact information associated with the additional contact, such as a name, an email address, or phone number, or a photo, as well as other types of contact information, combinations of contact information, or variations thereof.
When presented with either the contact component or the additional contact component, the user may be able to return directly to the list component by way of a return gesture, a back gesture, or some other type of user input indicative of an intention to return the list component. The contact component and the additional contact component may each include, for example, a back graphic that when touched or otherwise selected initiates a return to the list component. In this manner, a direct link may be preserved from any contact component to the list component, even if the contact component was reached by way of several navigation steps through another or other contact components. It may also be appreciated that other gestures or types of interactions with the contact component or additional contact component are possible. For example, the additional contact component may also include other contacts that may also be selected, resulting in the replacement of the additional contact component with another additional contact component.
Variations of transition process 100 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, transition process 100 may include initiating the presentation of a conversation environment and initiating modifications to the conversation environment, among other steps that may be initiated. In addition, others steps in addition to or in place of those described by transition process 100 may be implemented.
In operation, a user may interact with conversation environment 201 by way of gestures. In response to a participant list gesture, for example, view 200 of conversation environment 201 transitions to a state that includes list component 205 presented over a portion of conversation component 203 (t1). List component 205 may include contacts representative of the participants in the conversation. List component 205 may be, for example, a panel, a card, a separate window, or some other type of component suitable for presenting contacts representative of the participants in the conversation. While in view 200 list component 205 is represented as arranged towards the left portion of conversation component 203, it may be appreciated that list component 205 could be arranged otherwise, such as positioned towards the top, bottom, middle, or right portion of conversation component 203.
In response to a contact gesture indicative of an intention to view one of the contacts included in list component 205, list component 205 is replaced with contact component 207 (t2). Contact component 207 may include, for example, contact information associated with the contact, such as a name, an email address, a phone number, or a photo, as well as other types of contact information, combinations of contact information, or variations thereof. Contact component 207 may be, for example, a panel, a card, a separate window, or some other type of component suitable for presenting contact information associated with a contact. While in view 200 contact component 207 is represented as arranged towards the left portion of conversation component 203, it may be appreciated that contact component 207 could be arranged otherwise, such as positioned towards the top, bottom, middle, or right portion of conversation component 203.
Contact component 207 may also include additional contacts. The additional contacts may be those associated with the contact represented by the contact component. Thus, the user may again select a contact by way of an additional contact gesture. In response to the additional contact gesture, contact component 207 is replaced with additional contact component 209 (t4). Additional contact component 209 may also include, for example, contact information associated with the additional contact, such as a name, an email address, or phone number, or a photo, as well as other types of contact information, combinations of contact information, or variations thereof. Additional contact component 209 may be, for example, a panel, a card, a separate window, or some other type of component suitable for presenting contact information associated with a contact. While in view 200 additional contact component 209 is represented as arranged towards the left portion of conversation component 203, it may be appreciated that additional contact component 209 could be arranged otherwise, such as positioned towards the top, bottom, middle, or right portion of conversation component 203.
When presented with either the contact component or the additional contact component, the user may be able to return directly to the list component by way of a return gesture, a back gesture, or some other type of user input indicative of an intention to return the list component. The contact component and the additional contact component may each include, for example, a back graphic that when touched or otherwise selected initiates a return to the list component. In this manner, a direct link may be preserved from any contact component to the list component, even if the contact component was reached by way of several navigation steps through another or other contact components. It may also be appreciated that other gestures or types of interactions with the contact component or additional contact component are possible. For example, the additional contact component may also include other contacts that may also be selected, resulting in the replacement of the additional contact component with another additional contact component.
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 transition process 100 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 transition process 100. 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 conversation 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 transition process 100 (and variations thereof) and optionally all or portions of conversation environment 201. 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 conversation environment 201, 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.
As an example, computing system 300 includes display system 319, representative of a portion of user interface 309. Display system 319 is capable of displaying or otherwise presenting view 200 of conversation environment 201. In some implementation scenarios display system 319 may be a display with which a user may interact, such as a touch screen other similar surface capable of receiving gestures.
Referring now to
At times, other components may be displayed over conversation canvas 403 in response to various gestures or other user input. Gesture 404 is one example whereby a user may make a swiping or sliding gesture moving from the bottom most portion of conversation environment 401 to the right, indicative of an intention to draw out list panel 405. In response to gesture 404, list panel 405 is displayed, including contact 407, contact 409, and contact 411. Contact 407, contact 409, and contact 411 may each represent one of the participants in an ongoing conversation within conversation environment 401.
In
Indeed, in
Contact panel 425 illustrated in
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 preceding discussion of
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.