1. Field
The aspects of the disclosed embodiments generally relate to user interfaces and more particularly to unified navigation between applications and the use of web-based navigation methods with local applications and processes.
2. Brief Description of Related Developments
Opening more than one application in or with a device generally involves opening separate instances of each application, each instance or application running in a different window. To switch between applications, one must select the desired application window or view. When operating on the Web, the “Back” and “Forward” functionality of the browser or interface will generally allow a user to traverse backwards and forwards along a historical or hierarchical chain of sites that have been visited. In a mix of local applications and web-based applications, there is no such similar feature or functionality.
There are changes in how software applications and services are being implemented and deployed. Previously, the services were installed as applications in the user's local device, such as a PC or a smartphone. The new trend is to deploy services as web-based applications, accessed with a generic browser. However, there are many scenarios where local applications need to be used (because of offline capability, or computing requirements, etc.).
In the case where local applications are used, it is often necessary to integrate them with web applications. For instance, a local contacts list application might contain a link to a contact photo collection, which resides in a service on or accessible via the web. In this case, it is typical that a new browser window is launched. To go back to the local application, the user has to switch between the windows using a window manager, or in some cases, close the web browser. There is typically no way to go “back” to the application and then go “forward” to the web page again without changing windows. Desktop platforms allow for opening a new browser window while keeping the application window running in background. For simple operations, such as opening a single browser window, some mobile platforms provide support for going back to the launching application with the “back” soft key. However, forward navigation is not supported.
In some instances, there can be interlinking between two local applications. From within one application, there is a link, such as a hypertext link, to another application. Activating the link will launch or open the other application. Typically, such situations launch new instances of each of the applications, with each application or instance thereof running in a separate window. After completing a task in an application launched from within another application, the second application stays open until the user closes it. The user cannot resume what they were doing, or go back to the original application, except by selecting the original application or closing the second launched application. The user needs to explicitly exit the application and in some cases, locate the application that was first used.
There are also situations where secure local functionality is integrated into a web application. For instance, a web application might need or allow the user to select and import a message recipient's email address directly from an address book or contact application that is local to the device. Once a contact is selected from the address book, this local application needs to navigate back to the web application with the contact data, such as the recipient's email address, as a parameter. A current problem is that the addressing and navigation model is different between the local and the web-based application, and it is generally not possible to achieve this back and forth navigation in a simple or usable manner.
Problems with all of the cases above include non-unified bookmarking and history, hyperlink, and back-forward navigation models. While Web applications allow intra- and inter-application hypertext linking, this model does not extend to the local applications. It would be advantageous to be able to mix and move seamlessly between applications, as well as between local and web applications, in a user interface without any perceptible differences in the navigation model.
On Web browsers, the “Back” operation or function tends to be one of the most used functionalities. The “Back” function generally allows one to return to a previously visited Web page. Similarly, the “history” functionality of a web browser is often used. The “history” operation will generally take one back to a list of previously visited Web pages. A user can then select from any one of the listed Web sites to return to the Web site. Browsing can generally create a long history of visited pages, and Web browser will generally provide the ability to step or jump back several Web pages at once, whereas the Back function generally jumps back one page at a time. A history menu in a Web browser is generally where previously visited pages appear, and can group pages according to time and web domain, for example. In a mobile device, where screen size can be limited, providing multi-stepping back functionality can be difficult. Searching or parsing the history menu can also be difficult due to the limited screen size and difficulties in text entry. It would be advantageous to be able to provide a compact and concise history list that is easily navigated using a device that has limited screen or display area.
In a personal computer (PC), due to the availability of large screen views, multiple windows can be visible and used substantially simultaneously. A user can switch between windows when needed. In smaller devices, where screen real estate is limited, multiple windows are not optimal for task switching. It would be advantageous to be able to track ongoing tasks and return to another view in a device that has limited screen or display area.
Ordinary Web browsers will generally provide functions by which to store links to web pages that are important or commonly visited. These functions are generally referred to as Bookmarks or Favorites. In a mobile device it would be advantageous to be able to identify important Web pages and provide links to more important Web pages automatically.
Similar to web browsing, a mobile device treats each individual view as a unit of analysis and users are able to freely navigate between views. A “view” as that term is used herein, generally refers to the counterpart of a web page in a mobile device whose user interface is based on associative browsing. When navigating through a number of views, the navigation history can grow quickly, and the history list may become too long to be usable. It would be advantageous to be able to analyze and process each view in a mobile device in a meaningful way to reduce the number of views in the history list and provide a usable history.
The aspects of the disclosed embodiments are directed to at least a system, method, apparatus and computer program product for applying Web style navigation methods across applications and webpages, whether local or web-based. Hypertext navigation methods used in the web are extended to local applications. Local and web applications are mixed seamlessly so that the user does not perceive any difference between navigation within either one of, or between, those types of applications. The user navigates between different user interface states, in and out of different types of applications. All views and states of views are recorded and the user can switch to a previous view, in the state in which it was viewed, using a back, history or other suitable state recording and retrieval function. Individual views are processed in terms of objects and actions in order to categorize views in terms of importance as well as to provide streamlined history lists.
The foregoing aspects and other features of the embodiments are explained in the following description, taken in connection with the accompanying drawings, wherein:
FIG. 2A1 illustrates examples of a hierarchical and networked navigation structure;
The aspects of the disclosed embodiments integrate the navigation methods of local applications and Web applications and use the same core navigation methods for navigating in and between both local and web applications. The navigation methods used in web applications are generally extended to local applications and programs. An application can include many screens and views, where each view belongs to only one application. The aspects of the disclosed embodiments allow a user to navigate to and from, and interact with, one or more views.
In one aspect, the disclosed embodiments provide a network of views, with unidirectional links between views. Each view can provide specific information and allow for specific interaction by and with the user. Each view can be reachable from at least one other view, and a view may include hyperlinks to other views. In one embodiment, a user navigates between views using hyperlinks. In alternate embodiments, any suitable mechanism can be used to navigate between views, other than including hyperlinks.
A view can be local application based or web-based, and a user can navigate between and among local application views and/or web application views within the same window or screen of the user interface. The user does not have to open, close or switch between windows since the navigation model of the disclosed embodiments is “windowless.” The navigation between application and/or program views are mixed seamlessly, so that the user does not perceive any difference between navigation in and between applications and/or programs. For description purposes herein, navigation between applications and/or programs is intended to include and comprise navigation to and interacting with one or more views.
A view can have one or more states and the user navigates between different states of the user interface. In one embodiment, a user enters a view in its default state, unless the user enters the view using for example, the history function, which provides, or brings the user to, a specific state of a view. A state of the user interface can include the visited view, and each selection, modification, deletion or addition of an object belonging to the view by the user or the system can create a different state. For example, actions such as playing a song in a media player, typing text in an SMS editor, taking a picture from within a camera view or deletion of a message from the inbox, will each create or result in a state. A media player playing song after song, such as traversing a playlist, creates a new or different state for each song. Additionally, interaction with an object in a view can be recorded as a distinct state. For example, a user panning a map can be one view state, and selecting or focusing on particular maps or geographic locations, such as “Helsinki” or “Espoo”, can be other, distinct view states.
In one embodiment, the granularity of the recording of different states can be configured by the user. The criteria for what comprises a view state can be the user perception of what makes one state distinct from neighboring states.
Self active views are views that make state progressions on their own, and create entries in the state recording function, even if the user has navigated away from the state. For example, music players and chat applications are instances of self-active views. These types of views may require that the user explicitly stop the view from progressing on its own.
The aspects of the disclosed embodiments generally extend hypertext navigation methods used in web applications to local applications and programs. Hypertext navigation methods are generally defined as the combination of some well-known patterns such as page activation by hyperlink navigation, page activation by back-forward navigation, bookmarking and page activation by bookmark activation and age activation via history search and browsing.
As the term is used herein, a web page is a page which is referenced with or by a Uniform Resource Locator (“URL”), transferred over Hypertext transfer protocol (“HTTP”), and rendered or presented to the user via the user's web browser. A web application is an entity, composed of one or more web pages. A view is a dialog in a local application that shows specific information and allows for specific interaction. A local application is one where the application is stored and executed by the user's local device. The local application can also be stored remotely from the local device, such as on a server, but must be accessible by the local device. A local application is an entity, which has one or more views. For instance, a typical mobile phone contact book application can have at least two views, a view of a contact list and a view of contact details.
Previously, to navigate between views, the user would typically have to select the view, which may open in a separate window on the display of the user interface. For example, to navigate between a web entity view and a local application view required switching between the different instances or windows. However, the aspects of the disclosed embodiments provide a seamless way to maintain a single window while switching between a web entity or application view and a local application view. By extending and improving the hypertext navigation methods used in web application navigation to local applications, the user does not perceive a difference in navigating between views between local applications or between local applications and web applications. The user merely navigates between different states of the user interface (“UI”).
Referring to
The input device(s) 104 is generally configured to allow a user to input data, instructions and commands to the system 100. In one embodiment, the input device 104 can be configured to receive input commands remotely or from another device that is not local to the system 100. The input device 104 can include devices such as, for example, keys 110, touch screen 112, menu 124, a camera device 125 or such other image capturing system. In alternate embodiments the input device can comprise any suitable device(s) or means that allows or provides for the input and capture of data, information and/or instructions to a device, as described herein. The output device 106 is configured to allow information and data to be presented to the user via the user interface 102 of the system 100 and can include one or more devices such as, for example, a display 114, audio device 115 or tactile output device 116. In one embodiment, the output device 106 can be configured to transmit output information to another device, which can be remote from the system 100. While the input device 104 and output device 106 are shown as separate devices, in one embodiment, the input device 104 and output device 106 can be combined into a single device, and be part of and form, the user interface 102. The user interface 102 can be used to receive and display information pertaining to content, objects and targets, as will be described below.
The process module 122 is generally configured to execute the processes and methods of the disclosed embodiments. The application process controller 132 can be configured to interface with the applications module 180, for example, and execute applications processes with respects to the other modules of the system 100. In one embodiment the applications module 180 is configured to interface with applications that are stored either locally to or remote from the system 100 and/or web-based applications. The applications module 180 can include any one of a variety of applications that may be installed, configured or accessed by the system 100, such as for example, office, business, media players and multimedia applications, web browsers and maps. In alternate embodiments, the applications module 180 can include any suitable application. The communication module 134 shown in
In one embodiment, the aspects of the disclosed embodiments provide a user interface state recording engine or state library 136 for the local application user interfaces. The state library 136 is configured to track application states and forces the system 100 to return to a certain state from a current state. In one embodiment, the state library 136 receives state information from the state manager 138 and state listener(s) 140. The state manager 138 and state listener(s) 140 are configured to identify a state of the user interface and create a link, such as for example a hypertext link, related to the state, which can be recorded in the state library 136. Although a hypertext link will be generally referred to herein, in alternate embodiments, any suitable mechanism for providing an identifier and link to a specific state can be utilized, other than including a hypertext link. The state manager 138, in conjunction with the state library 136, can identify, monitor and track application states, and state changes, as well as respond to state change requests from a local application.
The system 100 can also include a system user interface module 142. In one embodiment, the system user interface module 142 is configured to control back-forward navigation, bookmarks and history functions as described herein.
In one embodiment the state listener(s) 140, also referred to as the state change listener 140, reside in each application 180. Each state listener 140 can be configured to notify the state manager 138 that a state change request has been made or that a state change has occurred. The state change recording engine 136 notifies each application 180, via the state listener, of possible state changes.
For example, an application changes its state. This change of state can occur for any number of reasons, including, for example, an external event or user interaction. The application 180, via the state listener 140, notifies the state recording engine 136 that the application state has changed.
As another example, the user selects a specific application state using the system user interface module 142. The selected state is enforced by the state recording engine 136. Enforcing a state of an application generally implies starting the application and getting the application to a specific, usually non-default state. The aspects of the disclosed embodiments allow an application to know how to save/record its state so that later on it can be brought back into the same state. For example, to save the state of a SMS editor view, this view would need to save the recipients of the edited message and the text content. Enforcing the state of the SMS application would mean opening the SMS editor view and setting the recipients and text content to what was saved.
The activation module 137 may start a new application with this state, or if the activation module 137 knows that the application is running already, it may reuse that running application and force the running application to change its state. In one embodiment, the activation module 137 is configured to work in conjunction with the state recording engine 136 and state manager 138, track the launching of any application from an existing state and force the application to automatically close when going to another view or state.
The state change request can come from outside the application, for example by the user navigating “back”, or from inside the application by calling a change state. Calling a change state can comprise for example an external event or user interaction. The back and history functions or commands are examples of external events. For example, a user is preparing an electronic mail message on the device. The device receives a call, which interrupts the preparation of the electronic mail message. In accordance with the aspects of the disclosed embodiments, the user can revert back or return from the call to the preparation of the electronic mail message. The state listener 140 can monitor the different hypertext navigation command functions, back, forward, history, home and bookmarks controlled by the system user interface module, and advise the state manager 138 when such a command is received during navigation.
In one embodiment, the system 100 can include a system user interface module 142. The system user interface module 142 can be configured to generate a task history list and present the task history list as described herein. The system user interface module 142 can also be configured to allow a user to interface with the views and functions described herein
The aspects of the disclosed embodiments generally provide each state with a unique identifier that can be used and referenced by the system. For example, in one embodiment an application state can be represented by a uniform resource locator (“URL”). In alternate embodiments, any suitable identifier can be used to reference a state. In the embodiment where the identifier comprises a URL, each URL can be locally addressable at any point in the future after its creation. Each URL has two main parts—the application and the application-specific state parameters. Referring to the above example of saving the state of a SMS editor view, the URL would need to include information including the SMS editor and the saved message. The state recording engine 136 creates the URL using the information provided by the view, namely the state parameters. The URL should include the application, which is used to construct the view, and application-specific parameters, which are used to initialize the state corresponding to the URL. A state can include one or more data members. In one embodiment, the main data members of a state will include a string URL, a string title, a string thumbnail URL and data date. In one embodiment there can be additional information per each state that is not embedded in the URL including for example, thumbnails, user readable titles and search terms. In one embodiment, the state information is stored in a persistent storage facility such as for example, storage device 182 or a relational database.
Certain states can be created and then rendered invalid by some action. In the situation where a state is deleted, the application, which is encoded in the representation of the state, must present meaningful content related to the state to the user. For example, in a messaging application, the main inbox view can be presented on the user interface, if the message referred to by the state is deleted.
Legacy applications, which do not expose the current state, only the launching of the application—along with any parameters—are tracked, and going “back” from such a legacy application effectively closes it. In one embodiment, the legacy application is similar to application(s) 180, except that the legacy application does not or may not have a link to the state listener 140 and state recording engine 136.
Each of these functions uses the same hypertext navigation methods that can be used with local applications, webpages and web applications. In embodiments that mix web-based applications and local applications, there is a perceived integration of webpages and local applications to the user. In the aspects of the disclosed embodiments, from the user perspective it does not matter whether a certain part of an application resides on the local device or whether it is implemented in the web. Thus, the aspects of the disclosed embodiments improve the usability of both local and web applications, particularly in situations where the local and web applications are interlinked.
As shown in
As shown in
The bookmark repository 216 includes links A-F, which are links to local or Web applications. The user can store 201a links to webpages and local applications from the state 201. The history repository 218 includes links 1-6, which also include links to local applications or Web applications that the user has visited or has caused to be stored.
In
States 202 and 204 can also be reached by activating a corresponding function or link, a hypertext link, in the history repository 218. As shown in
States 205, 206 and 207 are achieved using the “back” functionality of the user interface. The navigation model of the disclosed embodiments does not present a hierarchy of views, as is seen in most devices, but rather a network of views, as shown for example in FIGS. 2A and 2A1. For example, when using a browser, such as Internet Explorer™, the user can select or activate the “Back” function to traverse back to a previous page. One can also view the hierarchy of pages visited using an “Up” function. Selecting the “Up” function allows the user to traverse up the hierarchy chain, all the way to the first page viewed or visited.
The aspects of the disclosed embodiments will not present such a hierarchy of views. Rather, selection or activation of the “Back” function 302 in the user interface 300 shown in
In one embodiment, executing the “forward” function of the user interface 300 shown in
Executing the “Back” functionality 302 can cause the current state, application or web page, to close. Thus, when traversing “back” from state 205, view 220, to state 206, view 210, the application or page represented by view 220 will close and the application or page represented by view 210 will open. All the navigation methods described above can require the same interaction by the user regardless of whether the state is a webpage view or a local application view.
As noted above, with respect to
The aspects of the disclosed embodiments will prioritize all the views and generate a concise history. In one embodiment, individual views are processed in terms of the objects and actions associated with the view. A view will typically contain one or more objects. For example, a contact card view has contact details, a photo browsing view contains a photo. In one embodiment, if a view does not have an evident object, a relevant object can be assigned to the view. For example, an empty editing view can have “note” as its object and a calculating view can have “calculator” as its object.
When a view has more than one object, all of the relevant objects in the view can be recorded. A main object in the view can be identified from all of the other objects, or a new object derived. For example, in one embodiment, the object “Contact” is the main object of a contact card view, even if the contact card view contains photos and images related to the contact. In alternate embodiments, any suitable object can be defined as the main object for a corresponding view.
In one embodiment, the history can focus on views with significant objects, actions or both. When analyzing a view, the individual objects and actions can be prioritized. For example, objects can be assigned different weights or levels to signify importance. In one embodiment, an object becomes more important when it is associated with actions with high weight in an adaptive user interface. An important object can generate a “cloud” in the same way as a tag cloud. A tag cloud, which can also be referred to as a weighted list, is generally used to define a visual depiction of user-generated tags or the word content of a web site. Tags can be single words, listed alphabetically, the importance of which can be illustrated by font, size or color, or some combination thereof, for example. Actions can be prioritized and weighted in a similar fashion.
Referring to
In one embodiment, a weight can be assigned B206 to the view based on the importance of the objects and actions involved.
The history repository 218, or view, can then be configured to organize and present B208 the history views according to the assigned weight. In one embodiment, the history repository 218 can eliminate views that have a weight not meeting a pre-determined weighting criteria.
In one embodiment, a threshold weight value can be established separately for each action and object. The history view can then be prioritized based on relevant objects, actions or both, that meet or exceed the established threshold values. In this fashion, the length of the history view can be controlled. For example, where a rigid set of criteria is applied, such as both action and object threshold, the history view can be much shorter than when less strict criterion is applied, such as only one of the action or object thresholds.
The action type for a view can be deduced or determined when there is interaction with the view through an operation. For example, a button can be pressed to place a call or a menu item selected to edit a contact, in respective views that correspond to such actions or operations. When such an action, or execution of an action, is detected, an action item or category can be assigned to the view, also referred to herein as an action tag. Generally, the input actions performed by the user on a given view on a particular object are identified. In one embodiment, the aspects of the disclosed embodiments can also look at the actions that are available to the user with respect to a particular view. For example, an SMS Editor view can include actions such as editing a message, sending the message, or deleting the message. In one embodiment, the action tags can include, for example send, create, change, receive, query, and read. In alternate embodiments, any suitable action tags can be used. In this example, this list of action tags is ranked or prioritized in order of importance from high to low, “send” being the highest and “read” being the lowest. The initial action tag assigned to a view is “read”. When an operation is detected, such as a press of a button(s), an edit, send, or save, or the entering of text, the initial action tag assignment is overridden and an action tag corresponding to the new action is assigned. Other actions can include a user leaving a view without performing an operation such as, for example, entering a view and then activating the back function.
In one embodiment, a special action tag can be created for views that are started, but not completed. For example, in a messaging view, the message is composed but not sent. In a telephone view, a call is attempted but the connection is not made. In both of these views, the desired operation is not completed. The special tags can be used to highlight these views since it is likely one may wish to revisit the view at some point in the future to attempt to complete the operation, such as sending the message or making the call, without the need to re-start the entire process associated therewith.
For views that have a special tag, the history view selection will bring the user to the exact view they left. In one embodiment, an instruction can be provided on how to continue or proceed in this view. Referring to the examples above, in returning to a composed message view, the instruction “edit message” can be provided. In returning to the telephone application where the call task was not completed, the instruction “call him again” can be provided. The instruction can be provided in any suitable manner, such as for example, text on the screen or view, a pop-up window, or a voice command.
For views that are not assigned a special tag, the view that will be returned to is the view corresponding to the relevant action. For example, for a view that is assigned a “read” action, the view will return or go to the latest version of the relevant view. In one embodiment, it can be possible to return to the exact view that was visited earlier. For views that are assigned action tags such as send, create, or change, the view can return to the view that contains the results after that particular action. For example, for a view with an action tag “send” the view shown can be the view showing the sent message or posted comment. For a view with “query” action, the view can return to the view prior to activating the search button.
In one embodiment, separate threshold values are set for each action and object. The history view can highlight the prioritized views in terms of the relevant object, the relevant action or both object and action. In one embodiment, all views that include special tags can be assigned high values, as these are views that are more likely to be revisited. The criteria for prioritizing views can be pre-set or configured by the user. This allows the user to control the length of the history view. The application of a rigid criteria can be used to limit the number of views in a history list.
In one embodiment, the action/object analysis can include other “invisible” objects. For example, each view will generally be associated with metadata such as location, time, temperature, battery level and signal strength, for example. In alternate embodiments, a view can be associated with any suitable metadata. The action/object view analysis can also consider such information, together with the visible object. The metadata can be used to weight each view and generate history views. The metadata can be used as criteria for the selection of a view.
With reference to
For example, in the view “Contact List” C202, the object is the list-Contacts C204. This view C202 has an assigned action tag of “Read” C206. This can mean that the contact list was opened and viewed with no other action taken.
As another example, for the view “Lisa's photo 2” C208, the objects C210 include “contact-Lisa, photo-2, comment”, with an action tag “create” C212. This means that while in the contact view, the contact “Lisa” was viewed together with a corresponding photo, and a comment created.
In a web browser, activation of the history function usually leads to the view with exactly the same URL. Thus, a return to a messaging application view will generally return to an initial state of a view, and not necessarily the exact view the user was in previously. The aspects of the disclosed embodiments provide for the ability to return to the exact view by examining the relevant action and object. Thus, when in a messaging application view where the message is composed, but the view is exited prior to sending the message, traditional history functionality will return to the initial messaging application view. The aspects of the disclosed embodiments can return to the view where the message is composed, but not sent.
In one embodiment, the history view sequence does not have to be the same sequence or order in which a user experienced each view. Rather, certain internal views can be created or filtered out to create a custom history experience. For example, when listening to music as background, the user may not encounter a dedicated view when a song changes. However, the aspects of the disclosed embodiments can consider such changes as distinct views and record such an event as an “internal” view in creating a history item. The aspects of the disclosed embodiments can also filter some views out. The views to be filtered out can be pre-configured. In one embodiment, the filtering criteria can be the assigned action tag. In alternate embodiments, any suitable criteria can be used for the filtering criteria.
In one embodiment, relationships between neighboring views can be quantified and views can be grouped based on common objects and actions. This can be advantageous to identify different tasks from each other and provide a logical grouping for different views. For example, neighboring views can be grouped together when the views involve a common object. For example, referring to
When a group is based on object similarity, the view with a more heavily weighted action can override the view with the weaker action. For example, when the common object between neighboring views is a photo, the action “publishing” can be assigned a greater weight that the action “view.” Thus, the view for “viewing a photo” will be overridden by the view for “publishing photo”, and the view can be combined into the single view “publishing a photo.”
When views involve a common action, the views can be grouped together. For example, the views “viewing photo A” and “viewing photo B” can be combined into a single action view “viewing photos.”
In one embodiment, a view can be assigned as a separator between different views. For example a sequence of views is broken into groups, when the home view appears in the middle of the view sequence.
The state of a screen can change due to user interaction with the device. If the new state is relevant, the new state can generate a separate item in the history view list D202. A user navigating away from a screen will generate an item in the history view list D202. The state of a screen can also change due to the system. In one embodiment, a change in the state of a screen due to the system will not generate additional items for the history view list D202.
In one embodiment, non-important views or expired views can be filtered from the history view list D202. For example, it may not be desirable to include non-important views and expired views in the history view list D202. Non-important views can be those views that are “near”, in the navigational sense, to the home screen. An expired view can be one that is no longer active or available. Some non-important views can include, for example, History, Inbox, My Media, Contacts, Places and Home. In alternate embodiments, any suitable criteria can be used to classify non-important views. In the history view list D202, a view is shown only once, ordered by its most recent use or occurrence.
In one embodiment, background activities such as, for example, a music player playing songs in the background, will not generate items for the history view list D202. In one embodiment, if the background activity generates history items, activation of the Back function will ignore the background activity history items, similar to expired items. User interaction can trigger state changes within a screen of a user interface, as can an active application, such as for example, the music player application referenced above. If the state changes are relevant enough, they can be included in the history view list D202.
A task can be named by a combination of a strong object, person, place and/or time of the most recent user action.
The selection by the user of the Home or History functions can generate a new item in the history view list E202. A new history item gets appended to the same Task as the previous view. The creation of a new Task can also be triggered due to application specific reasons.
In one embodiment, the effect of the user selecting a view from the history view list (task switching) on the Task History is that the selected view is restored, and any interaction by the user creates a new view that is stored. For example, the user selects a view E206 from the history task list E202 of
In this embodiment, the state of a screen can also change due to the system. State changes due to the system can generate additional items to the history view list.
In one embodiment, one or more links, such as link G214 can be added to a the history view list G202 that provides a link to strong objects. An object is generally identified as the focal point of user interaction across multiple views. For example, “Call Joe”, “SMS Joe”, “Search for Joe on Web” are actions associated with the object “Joe”. The aspects of the disclosed embodiments can provide a link G214 to a main view G212 for the object, such as “Joe's homepage”. The link G212 can be included in the history visualization, e.g. the history view list G202, even if the view related to link G212 has not been visited before. Selection of the link G21 of Object, Persons, and/or Places will open the corresponding Main View G212. As other examples, the main view for a person can be their Contact Card. A main view for an object can focus on a visual or audible representation of this object. The main view of a place can be a view to a map that includes this place.
The frequent area 318 can provide the user with the ability to open or launch applications that are frequently used. The favorites area 320 will allow the user to store links to webpages or applications. Activating any one of the links within the frequent area 318 or favorite area 320 will launch the corresponding webpage or application. The library 140 of
In one embodiment, the system 100 comprises a mobile communication device. The mobile communication device can be Internet enabled. Some of the applications of the device may include, but are not limited to, in addition to those described above, data acquisition (e.g. image, video and sound) and multimedia players (e.g. video and music players). In alternate embodiments, the system 100 can include other suitable devices and applications. The aspects of the disclosed embodiments are well suited for desktop but also non-desktop types of devices, such as for example mobile communication devices. Mobile communication devices typically have less screen space and different input methods than conventional desktop devices. Due to the limited screen space in mobile communication devices it is not always possible to represent more than one window simultaneously. Switching between windows can be difficult as well. The aspects of the disclosed embodiments provide a windowless navigation model where each view is provided in the same window and switching between windows to go from one application to another is not required.
Referring to
After viewing the details related to Contact A in state 401, the user selects to view the Contact list 402, which is presented in view 400 shown in State 404. From within State 404, the user selects to view the details related to Contact B, which are then presented in view 400 in State 405. If the user then selects, from a recent history view list 406, “Contact A Details”, the user is returned 407 to the state and view represented in State 401.
In
Referring to
The aspects of the disclosed embodiments provide for a step by step recording of states for both back and history navigation. All views are recorded and retrievable. As noted herein, in one embodiment, each distinct state can be recorded by the UI state recording engine 136 so that the user can navigate back to a specific state. However, depending on the number of distinct states viewed, the number of states that are recorded can become overwhelming. In one embodiment, a concise history abstraction can be created that allows for a more simplified view retrieval based on action types. For example, referring to FIG. 4C., the web-based application view 412 and contact application view 418 are related to the task of sending a message. While each view state described with respect to
Similarly, the history abstraction can be applied when browsing content. Rather than recording a distinct state for each content item viewed, content or projects can be group together by the action type. For example, when browsing a group of pictures, the selection of each picture can create a distinct view state. In one embodiment, the view state can be abstracted to “browsing pic A and others”, for example. The abstracted view state for this multiple step task is recorded for later retrieval.
In one embodiment, the abstraction can be based on object types. For example, referring to
In one embodiment, each entry in the task history list 406 is a previously performed task. The list item can include an action (a verb) and at least one object (for example, an image or other media content, a person or place). In alternate embodiments, any suitable object can be included. The visual representation can be textual and/or iconic.
In one embodiment, the object can be or include a hyperlink. Selecting the hyperlink can cause the task history list 406 to be filtered, so that only the tasks related to this object are presented in the list. In one embodiment, the whole list entry is a hyperlink that triggers a re-opening of the respective application in the recorded state. Objects within the list can also be hyperlinks. Selecting one of those hyperlinks can have a different effect.
In one embodiment, the task history for such multiple step tasks are stored, for example in the state recording engine 136, and can be searched or queried using keywords. The key words can comprise the user action and object or object structure. For example, referring to
By structuring the task history using keywords, each element or keyword can be used as a filter to narrow down the task candidates and lead to a specific task item and state view. For example, in the history list 500, the keywords “Sent a message” 504 and “Mika Rautava” 506 in the state entry 502 are enabled as hyperlink anchors. In one embodiment, the hyperlink anchors can be distinguished from other hyperlinks using any suitable highlighting mechanism such as, for example, color, font, icon or size. If the user desires to see or search what actions or tasks stored in the history list relate to “Mika Rautava”, the user can “click” or otherwise activate the hyperlink anchor 506. The corresponding search will generate a listing of tasks stored in the full history list 500 as shown in screen 510. The list of tasks shown are all tasks stored in the history list where the object is “Mika Rautava”, such as “Sent a msg to Mika Rautava” 512. By activating the hyperlink anchor associated with the entry 512, the user can navigate to the text message editor view 520 in which the message 522 that was sent to Mika Rautava can be viewed. This aspect of the disclosed embodiments provides a filtering mechanism that allows the task or view state history to be searched.
Referring to
Another example of navigating between applications and web pages is shown in
During web browsing, individual views are treated and units of analysis. A history function collects information related to a user's recent activity and a list of views visited can be created and stored. The aspects of the disclosed embodiments provide for analyzing and identifying the most important views to provide a manageable and concise history list.
Referring to
The terms “select” and “touch” are generally described herein with respect to a touch screen-display. However, in alternate embodiments, the terms are intended to encompass the required user action with respect to other input devices. For example, with respect to a proximity screen device, it is not necessary for the user to make direct contact in order to select an object or other information. Thus, the above noted terms are intended to include that a user only needs to be within the proximity of the device to carry out the desired function.
Similarly, the scope of the intended devices is not limited to single touch or contact devices. Multi-touch devices, where contact by one or more fingers or other pointing devices can navigate on and about the screen, are also intended to be encompassed by the disclosed embodiments. Non-touch devices are also intended to be encompassed by the disclosed embodiments. Non-touch devices include, but are not limited to, devices without touch or proximity screens, where navigation on the display and menus of the various applications is performed through, for example, keys 110 of the system or through voice commands via voice recognition features of the system.
Some examples of devices on which aspects of the disclosed embodiments can be practiced are illustrated with respect to
As shown in
In the embodiment where the device 600 comprises a mobile communications device, the device can be adapted for communication in a telecommunication system, such as that shown in
In one embodiment the system is configured to enable any one or combination of chat messaging, instant messaging, text messaging and/or electronic mail. It is to be noted that for different embodiments of the mobile terminal 700 and in different situations, some of the telecommunications services indicated above may or may not be available. The aspects of the disclosed embodiments are not limited to any particular set of services or communication system or protocol in this respect.
The mobile terminals 700, 706 may be connected to a mobile telecommunications network 710 through radio frequency (RF) links 702, 708 via base stations 704, 709. The mobile telecommunications network 710 may be in compliance with any commercially available mobile telecommunications standard such as for example the global system for mobile communications (GSM), universal mobile telecommunication system (UMTS), digital advanced mobile phone service (D-AMPS), code division multiple access 2000 (CDMA2000), wideband code division multiple access (WCDMA), wireless local area network (WLAN), freedom of mobile multimedia access (FOMA) and time division-synchronous code division multiple access (TD-SCDMA).
The mobile telecommunications network 710 may be operatively connected to a wide area network 720, which may be the Internet or a part thereof. An Internet server 722 has data storage 724 and is connected to the wide area network 720, as is an Internet client 726. The server 722 may host a worldwide web/wireless application protocol server capable of serving worldwide web/wireless application protocol content to the mobile terminal 700.
A public switched telephone network (PSTN) 730 may be connected to the mobile telecommunications network 710 in a familiar manner. Various telephone terminals, including the stationary telephone 732, may be connected to the public switched telephone network 730.
The mobile terminal 700 is also capable of communicating locally via a local link 701 to one or more local devices 703. The local links 701 may be any suitable type of link or piconet with a limited range, such as for example Bluetooth™, a Universal Serial Bus (USB) link, a wireless Universal Serial Bus (WUSB) link, an IEEE 802.11 wireless local area network (WLAN) link, an RS-232 serial link, etc. The local devices 703 can, for example, be various sensors that can communicate measurement values or other signals to the mobile terminal 700 over the local link 701. The above examples are not intended to be limiting, and any suitable type of link or short range communication protocol may be utilized. The local devices 703 may be antennas and supporting equipment forming a wireless local area network implementing Worldwide Interoperability for Microwave Access (WiMAX, IEEE 802.16), WiFi (IEEE 802.11x) or other communication protocols. The wireless local area network may be connected to the Internet. The mobile terminal 700 may thus have multi-radio capability for connecting wirelessly using mobile communications network 710, wireless local area network or both. Communication with the mobile telecommunications network 710 may also be implemented using WiFi, Worldwide Interoperability for Microwave Access, or any other suitable protocols, and such communication may utilize unlicensed portions of the radio spectrum (e.g. unlicensed mobile access (UMA)). In one embodiment, the navigation module 122 of
Although the above embodiments are described as being implemented on and with a mobile communication device, it will be understood that the disclosed embodiments can be practiced on any suitable device incorporating a display, processor, memory and supporting software or hardware. For example, the disclosed embodiments can be implemented on various types of music, gaming and multimedia devices. In one embodiment, the system 100 of
The user interface 102 of
The disclosed embodiments may also include software and computer programs incorporating the process steps and instructions described above. In one embodiment, the programs incorporating the process steps described herein can be executed in one or more computers.
Computer systems 802 and 804 may also include a microprocessor for executing stored programs. Computer 802 may include a data storage device 808 on its program storage device for the storage of information and data. The computer program or software incorporating the processes and method steps incorporating aspects of the disclosed embodiments may be stored in one or more computers 802 and 804 on an otherwise conventional program storage device. In one embodiment, computers 802 and 804 may include a user interface 810, and/or a display interface 812 from which aspects of the invention can be accessed. The user interface 810 and the display interface 812, which in one embodiment can comprise a single interface, can be adapted to allow the input of queries and commands to the system, as well as present the results of the commands and queries, as described with reference to
The aspects of the disclosed embodiments apply Web style navigation methods across applications and webpages, whether local or web-based. Hypertext navigation methods used in the web are extended to local applications. Local and web applications are mixed seamlessly so that the user does not perceive any difference between navigation within either one of, or between, those types of applications. The navigation model of the disclosed embodiments is windowless, meaning that a user does not have to open, close or switch between windows in order to move between different types of applications and different views. Rather, the user navigates between different UI states, in and out of different types of applications. Navigation from view to view is accomplished using hyperlinks, one view at a time. All views and states of views are recorded and the user can switch to a previous view, in the state in which it was viewed, using a back, history or other suitable state recording and retrieval function. The aspects of the disclosed embodiments allow a user to navigate in and about both local and web-based applications, or a combination of both, in a seamless and simplified manner. Selecting different windows to view different applications or access different view states is not needed as each view, whether for a local application or web application, is provided in a seamless fashion in the user interface of the device.
It is noted that the embodiments described herein can be used individually or in any combination thereof. It should be understood that the foregoing description is only illustrative of the embodiments. Various alternatives and modifications can be devised by those skilled in the art without departing from the embodiments. Accordingly, the present embodiments are intended to embrace all such alternatives, modifications and variances that fall within the scope of the appended claims.