Context-specific user interfaces
By dynamically changing the displayed content on portable devices based on context, the solution addresses inefficiencies in existing user interfaces, reducing interactions and conserving power.
Patent Information
- Application Number
- JP2024098958
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-10-17
- Filing Date
- 2024-06-19
- Publication Date
- 2026-01-14
- Estimated Expiration
- 2038-05-10
AI Technical Summary
Existing context-specific user interfaces on portable multifunction devices are cumbersome and inefficient, requiring multiple key presses or keystrokes and consuming unnecessary time and power, especially in battery-operated devices.
Implement methods and interfaces that dynamically change the displayed content on the screen based on the user's context, such as time of day, by swapping or reflecting portions of the interface to show relevant information without redundant user inputs, thereby optimizing screen usage and conserving power.
The solution reduces the cognitive burden on users, minimizes unnecessary interactions, and extends battery life by providing context-specific information efficiently.
Smart Images

Figure 0007798966000001 
Figure 0007798966000002 
Figure 0007798966000003
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Patent Application No. 62 / 505,782, entitled "Context-Specific User Interfaces," filed May 12, 2017, Danish Patent Application Publication No. 201770397, entitled "Context-Specific User Interfaces," filed May 29, 2017, and Danish Patent Application Publication No. 201770791, entitled "Context-Specific User Interfaces," filed October 17, 2017, the contents of each of which are incorporated herein by reference in their entirety.
[0002] This application is related to the following applications: International Application No. PCT / US2015 / 034604, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022203; International Application No. PCT / US2015 / 034606, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022204; and International Application No. PCT / US2015 / 034607, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022205, the contents of which are incorporated herein by reference in their entireties.
[0003] [Technical field] TECHNICAL FIELD This disclosure relates generally to computer user interfaces, and more particularly to techniques for providing context-specific user interfaces. [Background technology]
[0004] Portable multifunction devices allow users to access information from a variety of applications and data sources on a small device that can be carried throughout the day in a variety of contexts (e.g., at work, at home, on the move, etc.). However, as the context changes, the types of information a user may want to view may also change. Therefore, providing an efficient interface that displays relevant information to a user throughout the day is a challenge. For example, a user may want to know the time of sunset, but a widget dedicated to sunset times is only relevant to a user for whom sunset is imminent. For the rest of the day, this screen "real estate" provides irrelevant information, taking up space that could be used to provide more relevant information. This is a particular concern for portable devices with small interfaces. Summary of the Invention
[0005] Users rely on portable multifunction devices to tell the time, among other operations, including running software applications. However, some technologies that provide context-specific user interfaces (e.g., for telling the time and / or other operations) are generally cumbersome and inefficient. For example, some existing technologies use complex and time-consuming user interfaces that may involve multiple key presses or keystrokes. Some existing technologies require additional user interaction to display all of the information the user wants to view. Existing technologies require more time than necessary, wasting the user's time and the device's power. The latter problem is particularly acute in battery-operated devices.
[0006] Thus, the present technology provides electronic devices with faster, more efficient methods and interfaces for providing context-specific user interfaces. Such methods and interfaces, optionally, complement or replace other methods for providing context-specific user interfaces. Such methods and interfaces reduce the cognitive burden on users and provide a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power, extend the time between battery charges, and reduce the number of unnecessary, irrelevant, and / or repetitively received inputs required to access information.
[0007] In some embodiments, a method includes, in an electronic device comprising a display, one or more processors, and memory, displaying on the display a user interface screen including a current time indicator and a first platter at a first position on the display, wherein the first platter is associated with a first application and displays a first set of information obtained from the first application, the first set of information related to a first time context of the current date; detecting a user input; and in response to detecting the user input, displaying the first platter at a second position on the display different from the first position; and displaying a second platter at the first position on the display, wherein the second platter is associated with a second application and displays a second set of information obtained from the second application, the second set of information related to a second time context of the current date, the first application and the second application being different.
[0008] In some embodiments, a method includes, in an electronic device comprising a display, one or more processors, and a memory, displaying a first user interface screen at a first time of a current date on the display, the first user interface screen including: a current time indicator reflecting the first time of the current date on the display; a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; and an affordance at a second position on the display, the affordance representing the application; detecting a first user input corresponding to a request to scroll the first user interface screen; in response to detecting the first user input, maintaining display of the affordance at the second position; and displaying a second platter at the first position, the affordance representing the application. the second platter is associated with a second application and displays a second set of information obtained from the second application, the second set of information relating to the current date; a current time indicator on the display at a second time of the current date that is different from the first time, the current time indicator reflecting the second time of the current date; a third platter at a first position on the display, the third platter is associated with a third application and displays a third set of information obtained from the third application, the third set of information relating to a third time context of the current date; and an affordance at the second position on the display; detecting a second user input corresponding to a request to scroll the second user interface screen; and in response to detecting the second user input, maintaining the display of the affordance at the second position; and displaying the second platter at the first position.
[0009] In some embodiments, a method includes, in an electronic device comprising a display, one or more processors, and memory, displaying on the display a user interface screen including a current time indicator and a first non-text graphical representation of a first set of information obtained from a first application, the first set of information relating to a first time context of the current date; detecting a user input; and in response to detecting the user input, ceasing the display of the first non-text graphical representation; and displaying a second non-text graphical representation depicting a second set of information obtained from a second application, the second set of information relating to a second time context of the current date, the first and second applications being different.
[0010] In some embodiments, a method includes, in an electronic device comprising a display, one or more processors, and memory, displaying a user interface screen on the display, the user interface screen including a current time indicator and a background; detecting a time change; in response to detecting the time change, selecting a first portion of the image, the first portion being smaller than the entire image; reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions; replacing the background with a first composite image including the first plurality of reflective portions; detecting a second time change; in response to detecting the second time change, selecting a second portion of the image, the second portion being smaller than the entire image and different from the first portion; reflecting the second portion across the second plurality of reflective axes to generate the second plurality of reflective portions; and replacing the first composite image with the second composite image including the second plurality of reflective portions.
[0011] In some embodiments, a method includes, in an electronic device comprising a display, one or more processors, and a memory, displaying on the display a user interface screen including a current time indicator and a first composite image, wherein the first composite image is generated by the electronic device by selecting a first portion of the image, reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions, and displaying the first plurality of reflective portions; detecting a user input corresponding to a request to edit the first composite image; and in response to detecting the user input, ceasing to display the first composite image and displaying a second composite image, wherein the second composite image is generated by the electronic device by selecting a second portion of the image and reflecting the second portion across a second plurality of reflective axes to generate the second plurality of reflective portions, wherein the first plurality of reflective axes and the second plurality of reflective axes are different;
[0012] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; detecting a user input; and in response to detecting the user input, displaying the first platter at a second position on the display different from the first position; and displaying a second platter at the first position on the display, the second platter being associated with a second application and displaying a second set of information obtained from the second application, the second set of information being related to a second time context of the current date, the first application and the second application being different.
[0013] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including: displaying a first user interface screen on the display at a first time of a current date, the first time indicator reflecting the first time of the current date; a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; and an affordance at a second position on the display, the affordance representing the application; detecting a first user input corresponding to a request to scroll the first user interface screen; in response to detecting the first user input, maintaining the display of the affordance at the second position; and scrolling the second platter to the second time. the second platter is associated with a third application and displays a third set of information obtained from the third application, the third set of information being related to a third time context of the current date; and an affordance at the second position on the display; detecting a second user input corresponding to a request to scroll the second user interface screen; and in response to detecting the second user input, maintaining the display of the affordance at the second position; and displaying the second platter at the first position.
[0014] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first non-text graphical representation of a first set of information obtained from a first application, the first set of information relating to a first time context of the current date; detecting user input; and in response to detecting the user input, ceasing display of the first non-text graphical representation; and displaying a second non-text graphical representation depicting a second set of information obtained from a second application, the second set of information relating to a second time context of the current date, the first and second applications being different.
[0015] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for displaying a user interface screen on the display, the user interface screen including a current time indicator and a background; detecting a time change; in response to detecting the time change, selecting a first portion of the image, the first portion being smaller than the entire image; reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions; replacing the background with a first composite image including the first plurality of reflective portions; detecting a second time change; in response to detecting the second time change, selecting a second portion of the image, the second portion being smaller than the entire image and different from the first portion; reflecting the second portion across the second plurality of reflective axes to generate the second plurality of reflective portions; and replacing the first composite image with the second composite image including the second plurality of reflective portions.
[0016] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first composite image, wherein the first composite image is generated by the electronic device by selecting a first portion of the image, reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions, and displaying the first plurality of reflective portions; detecting a user input corresponding to a request to edit the first composite image; and in response to detecting the user input, ceasing display of the first composite image and displaying a second composite image, wherein the second composite image is generated by the electronic device by selecting a second portion of the image, reflecting the second portion across a second plurality of reflective axes to generate the second plurality of reflective portions, wherein the first plurality of reflective axes and the second plurality of reflective axes are different.
[0017] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; detecting a user input; and in response to detecting the user input, displaying the first platter at a second position on the display different from the first position; and displaying a second platter at the first position on the display, the second platter being associated with a second application and displaying a second set of information obtained from the second application, the second set of information being related to a second time context of the current date, the first application and the second application being different.
[0018] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including: displaying, at a first time of a current date, on the display a first user interface screen including: a current time indicator reflecting a first time of the current date; a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; and an affordance at a second position on the display, the affordance representing the application; detecting a first user input corresponding to a request to scroll the first user interface screen; in response to detecting the first user input, maintaining the display of the affordance at the second position; and scrolling the second platter to the second position. the second platter is associated with a third application and displays a third set of information obtained from the third application, the third set of information being related to a third time context of the current date; and an affordance at the second position on the display; detecting a second user input corresponding to a request to scroll the second user interface screen; and in response to detecting the second user input, maintaining the display of the affordance at the second position; and displaying the second platter at the first position.
[0019] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first non-text graphical representation of a first set of information obtained from a first application, the first set of information relating to a first time context of the current date; detecting user input; and in response to detecting the user input, ceasing display of the first non-text graphical representation; and displaying a second non-text graphical representation depicting a second set of information obtained from a second application, the second set of information relating to a second time context of the current date, the first and second applications being different.
[0020] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for displaying a user interface screen on the display, the user interface screen including a current time indicator and a background; detecting a time change; in response to detecting the time change, selecting a first portion of the image, the first portion being smaller than the entire image; reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions; replacing the background with a first composite image including the first plurality of reflective portions; detecting a second time change; in response to detecting the second time change, selecting a second portion of the image, the second portion being smaller than the entire image and different from the first portion; reflecting the second portion across the second plurality of reflective axes to generate the second plurality of reflective portions; and replacing the first composite image with the second composite image including the second plurality of reflective portions.
[0021] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first composite image, wherein the first composite image is generated by the electronic device by selecting a first portion of the image, reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions, and displaying the first plurality of reflective portions; detecting a user input corresponding to a request to edit the first composite image; and in response to detecting the user input, ceasing display of the first composite image and displaying a second composite image, wherein the second composite image is generated by the electronic device by selecting a second portion of the image, reflecting the second portion across a second plurality of reflective axes to generate the second plurality of reflective portions, wherein the first plurality of reflective axes and the second plurality of reflective axes are different.
[0022] In some embodiments, an electronic device comprises a display, one or more processors, and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; detecting a user input; and in response to detecting the user input, displaying the first platter at a second position on the display different from the first position; and displaying a second platter at the first position on the display, the second platter being associated with a second application and displaying a second set of information obtained from the second application, the second set of information being related to a second time context of the current date, the first application and the second application being different.
[0023] In some embodiments, an electronic device comprises a display, one or more processors, and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including: displaying a first user interface screen at a first time of a current date on the display, the first user interface screen including: a current time indicator reflecting a first time of the current date on the display; a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; and an affordance at a second position on the display, the affordance representing the application; detecting a first user input corresponding to a request to scroll the first user interface screen; and in response to detecting the first user input, maintaining the display of the affordance at the second position. the second platter being associated with a third application and displaying a third set of information obtained from the third application, the third set of information being related to a third time context of the current date; and an affordance at the second position on the display; detecting a second user input corresponding to a request to scroll the second user interface screen; and in response to detecting the second user input, maintaining the display of the affordance at the second position; and displaying the second platter at the first position.
[0024] In some embodiments, an electronic device comprises a display, one or more processors, and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first non-text graphical representation of a first set of information obtained from a first application, the first set of information relating to a first time context of the current date; detecting a user input; and in response to detecting the user input, ceasing the display of the first non-text graphical representation; and displaying a second non-text graphical representation depicting a second set of information obtained from a second application, the second set of information relating to a second time context of the current date, the first and second applications being different.
[0025] In some embodiments, an electronic device comprises a display, one or more processors, and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising instructions for: displaying a user interface screen on the display including a current time indicator and a background; detecting a time change; in response to detecting the time change, selecting a first portion of the image, the first portion being smaller than the entire image; reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions; replacing the background with a first composite image including the first plurality of reflective portions; detecting a second time change; in response to detecting the second time change, selecting a second portion of the image, the second portion being smaller than the entire image and different from the first portion; reflecting the second portion across the second plurality of reflective axes to generate the second plurality of reflective portions; and replacing the first composite image with the second composite image including the second plurality of reflective portions.
[0026] In some embodiments, an electronic device comprises a display, one or more processors, and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: displaying on the display a user interface screen including a current time indicator and a first composite image, wherein the first composite image is generated by the electronic device by selecting a first portion of the image, reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions, and displaying the first plurality of reflective portions; detecting a user input corresponding to a request to edit the first composite image; and in response to detecting the user input, ceasing display of the first composite image and displaying a second composite image, wherein the second composite image is generated by the electronic device by selecting a second portion of the image and reflecting the second portion across a second plurality of reflective axes to generate the second plurality of reflective portions, wherein the first plurality of reflective axes and the second plurality of reflective axes are different.
[0027] In some embodiments, the electronic device includes a display; means for displaying on the display a user interface screen including a current time indicator and a first platter at a first position on the display, wherein the first platter is associated with a first application and displays a first set of information obtained from the first application, the first set of information related to a first time context of the current date; means for detecting user input; means for displaying the first platter at a second position on the display different from the first position at least in part in response to the detection of the user input; and means for displaying a second platter at the first position on the display at least in part in response to the detection of the user input, wherein the second platter is associated with a second application and displays a second set of information obtained from the second application, the second set of information related to a second time context of the current date, the first application and the second application being different.
[0028] In some embodiments, an electronic device includes means for displaying a first user interface screen including a display; a current time indicator reflecting a first time of the current date on the display at a first time of the current date; a first platter at a first position on the display, the first platter being associated with a first application and displaying a first set of information obtained from the first application, the first set of information being related to a first time context of the current date; and an affordance at a second position on the display, the affordance representing the application; means for detecting a first user input corresponding to a request to scroll the first user interface screen; means for maintaining display of the affordance at the second position in response at least in part to the detection of the first user input; and means for displaying a second platter at the first position in response at least in part to the detection of the first user input, the second platter representing the second application. the second platter at a first position on the display, the third platter being associated with a third application and displaying a third set of information obtained from the third application, the third set of information relating to a third time context of the current date; and an affordance at the second position on the display. The second user interface screen includes: means for displaying a second user interface screen, the second platter being associated with a third application and displaying a second set of information obtained from the second application, the second set of information relating to a third time context of the current date; a current time indicator on the display at a second time of the current date that is different from the first time, the current time indicator reflecting a second time of the current date
[0029] In some embodiments, the electronic device includes a display; means for displaying on the display a user interface screen including a current time indicator and a first non-text graphical representation of a first set of information obtained from a first application, the first set of information relating to a first time context of the current date; means for detecting a user input; means for stopping the display of the first non-text graphical representation at least in part in response to the detection of the user input; and means for displaying, at least in part in response to the detection of the user input, a second non-text graphical representation depicting a second set of information obtained from a second application, the second set of information relating to a second time context of the current date, the first and second applications being different.
[0030] In some embodiments, an electronic device includes a display, means for displaying a user interface screen on the display, the user interface screen including a current time indicator and a background, means for detecting a change in time, means for selecting a first portion of the image at least in part in response to the detection of the change in time, the first portion being smaller than the entire image, means for reflecting the first portion across a first plurality of reflective axes at least in part in response to the detection of the change in time to generate a first plurality of reflective portions, and means for selecting the background at least in part in response to the detection of the change in time from the first plurality of reflective portions. means for detecting a second time change; means for selecting a second portion of the image at least in part in response to the detection of the second time change, the second portion being smaller than the entire image, the second portion being different from the first portion; means for reflecting the second portion across a second plurality of reflection axes to generate a second plurality of reflected portions at least in part in response to the detection of the second time change; and means for replacing the first composite image with the second composite image including the second plurality of reflected portions at least in part in response to the detection of the second time change.
[0031] In some embodiments, the electronic device includes a display; and means for displaying on the display a user interface screen including a current time indicator and a first composite image, where the first composite image is generated by the electronic device by selecting a first portion of the image, reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions, and displaying the first plurality of reflective portions; means for detecting a user input corresponding to a request to edit the first composite image; and means for, at least in part in response to detecting the user input, ceasing display of the first composite image and displaying a second composite image, where the second composite image is generated by the electronic device by selecting a second portion of the image and reflecting the second portion across a second plurality of reflective axes to generate the second plurality of reflective portions, where the first plurality of reflective axes and the second plurality of reflective axes are different, and displaying the second plurality of reflective portions.
[0032] Executable instructions to perform these functions are optionally contained in a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. Executable instructions to perform these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.
[0033] Thus, faster and more efficient methods and interfaces for providing context-specific user interfaces are provided, which may complement or replace other methods for providing context-specific user interfaces. [Brief explanation of the drawings]
[0034] For a better understanding of the various embodiments described, reference should be made to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings, in which:
[0035] [Figure 1A] FIG. 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display according to some embodiments.
[0036] [Figure 1B] FIG. 2 is a block diagram illustrating example components for event processing, according to some embodiments.
[0037] [Figure 2] FIG. 1 illustrates a portable multifunction device with a touch screen according to some embodiments.
[0038] [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface in accordance with some embodiments.
[0039] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device according to some embodiments.
[0040] [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device with a touch-sensitive surface that is separate from the display, according to some embodiments.
[0041] [Figure 5A] FIG. 1 illustrates a personal electronic device according to some embodiments.
[0042] [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device according to some embodiments.
[0043] [Figure 5C] FIG. 1 illustrates exemplary components of a personal electronic device having a touch-sensitive display and intensity sensor, according to some embodiments. [Figure 5D] FIG. 1 illustrates exemplary components of a personal electronic device having a touch-sensitive display and intensity sensor, according to some embodiments.
[0044] [Figure 5E] 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 5F] 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 5G] 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 5H] 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments.
[0045] [Figure 6A] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6B] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6C] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6D] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6E] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6F] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6G] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6H] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6I] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6J] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6K] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6L] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6M] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6N] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6O] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6P] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6Q] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6R] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6S] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6T] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6U] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 6V] FIG. 1 illustrates an exemplary context-specific user interface.
[0046] [Figure 7A] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 7B] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 7C] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 7D] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 7E] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments.
[0047] [Figure 8A] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 8B] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 8C] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 8D] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 8E] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 8F] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 8G] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments.
[0048] [Figure 9A] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9B] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9C] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9D] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9E] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9F] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9G] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9H] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9I] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9J] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9K] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 9L] FIG. 1 illustrates an exemplary context-specific user interface.
[0049] [Figure 10A] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 10B] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 10C] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments.
[0050] [Figure 11A] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11B] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11C] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11D] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11E] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11F] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11G] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11H] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11I] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11J] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11K] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11L] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11M] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 11N] FIG. 1 illustrates an exemplary context-specific user interface.
[0051] [Figure 12] FIG. 1 illustrates an exemplary personal electronic device.
[0052] [Figure 13]FIG. 1 illustrates an exemplary context-specific user interface.
[0053] [Figure 14A] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 14B] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 14C] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 14D] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 14E] FIG. 1 illustrates an exemplary context-specific user interface.
[0054] [Figure 15A] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 15B] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 15C] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 15D] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 15E] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments.
[0055] [Figure 16A] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 16B]FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 16C] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments. [Figure 16D] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments.
[0056] [Figure 17A] FIG. 1 illustrates an exemplary technique for providing a context-specific user interface. [Figure 17B] FIG. 1 illustrates an exemplary technique for providing a context-specific user interface.
[0057] [Figure 18] FIG. 1 is a flow diagram illustrating a process for providing a context-specific user interface according to some embodiments.
[0058] [Figure 19A] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 19B] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 19C] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 19D] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 19E] FIG. 1 illustrates an exemplary context-specific user interface. [Figure 19F] FIG. 1 illustrates an exemplary context-specific user interface. DETAILED DESCRIPTION OF THE INVENTION
[0059] In the following description, example methods, parameters, etc. are set forth. However, it is to be understood that the purpose of such description is not to limit the scope of the present disclosure, but rather to provide a description of example embodiments.
[0060] For example, there is a need for electronic devices that provide efficient methods and interfaces for context-specific user interfaces that display the time along with additional information. This is particularly true for portable multifunction devices with small displays. By conveniently providing users with relevant information (e.g., obtained from one or more applications) at a glance, customizable interfaces can reduce the number of inputs required to access the information and preserve battery life. Additionally, providing a user interface that changes the displayed content as the context in which the user is using the interface changes (e.g., throughout the day) can allow more efficient access to such information through the interface. An interface that changes the type of information displayed as the user's context changes can more efficiently utilize screen "real estate," thereby reducing the number of user interactions required to access relevant data at any time of day. Such techniques can reduce the cognitive burden on users of accessing information and / or keeping track of time using context-specific user interfaces. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0061] 1A-1B, 2, 3, 4A-4B, and 5A-5B provide a description of an exemplary device for implementing techniques for configuring a context-specific user interface. 6A-6V, 9A-9L, 11A-14E, 17A, 17B, and 19A-19F show exemplary user interfaces for providing a context-specific user interface. The illustrated user interfaces are also used to illustrate processes described below, including the processes of FIGS. 7A-8G, 10A-10C, 15A-16D, and 18.
[0062] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of the various embodiments being described. A first touch and a second touch are both touches, but are not the same touch.
[0063] The terminology used in the description of the various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various embodiments set forth and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. As used herein, the term "and / or" should also be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0064] Optionally, the term "if" is interpreted to mean "when," "upon," "in response to determining," or "in response to detecting," depending on the context. Similarly, the phrases "if it is determined" or "if (a stated condition or event) is detected" are optionally interpreted to mean "upon determining," "in response to determining," "upon detecting (the stated condition or event)," or "in response to detecting (the stated condition or event)," depending on the context.
[0065] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile telephone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Other portable electronic devices, such as laptops or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), are also optionally used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer with a touch-sensitive surface (e.g., touchscreen displays and / or touchpads).
[0066] In the following discussion, electronic devices are described that include a display and a touch-sensitive surface, but it should be understood that the electronic device optionally includes one or more other physical user interface devices, such as a physical keyboard, a mouse, and / or a joystick.
[0067] The device typically supports a variety of applications such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephony application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and / or a digital video player application.
[0068] Various applications running on the device optionally use at least one common physical user interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture (such as the touch-sensitive surface) of the device optionally supports various applications with user interfaces that are intuitive and transparent to the user.
[0069] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 with touch-sensitive display system 112, according to some embodiments. Touch-sensitive display 112 may be conveniently referred to as a “touch screen,” and may also be known or referred to as a “touch-sensitive display system.” Device 100 includes memory 102 (optionally including one or more computer-readable storage media), memory controller 122, one or more processing units (CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, input / output (I / O) subsystem 106, other input control devices 116, and external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on device 100 (e.g., a touch-sensitive surface, such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 for generating tactile output on device 100 (e.g., generating tactile output on a touch-sensitive surface, such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0070] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a surrogate (proxy) for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values that includes at least four different values and, more typically, includes hundreds (e.g., at least 256) different values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, the force measurements of multiple force sensors are combined (e.g., weighted average) to determine the estimated force of a contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as a surrogate for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure of the force or pressure of the contact is used directly to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is stated in units corresponding to the surrogate measure). In some implementations, the surrogate measure of the force or pressure of the contact is converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using contact intensity as an attribute of user input allows a user access to additional device functionality that may otherwise be inaccessible to the user on reduced-size devices with limited area for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical controls such as knobs or buttons).
[0071] As used herein and in the claims, the term “tactile output” refers to a physical displacement of a device relative to its previous position, a physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., a housing), or a displacement of a component relative to the center of mass of the device, that is detected by a user with the user's sense of touch. For example, in a situation where a device or a component of the device is in contact with a touch-sensitive surface of a user (e.g., the fingers, palm, or other part of the user's hand), the tactile output produced by the physical displacement is interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, a user will feel a tactile sensation such as a “downclick” or “upclick” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that has been physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. While such user interpretation of touch depends on the user's personal sensory perception, there are many sensory perceptions of touch that are common to the majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., "upclick," "downclick," "roughness"), unless otherwise specified, the generated tactile output corresponds to a physical displacement of the device or a component of the device that will produce the described sensory perception for a typical (or average) user.
[0072] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of components. The various components shown in Figure 1A are implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0073] Memory 102 optionally includes high-speed random access memory, and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.
[0074] A peripheral interface 118 can be used to connect input and output peripherals of the device to the CPU 120 and memory 102. The one or more processors 120 operate or execute various software programs and / or instruction sets stored in memory 102 to perform various functions for device 100 and to process data. In some embodiments, the peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.
[0075] The radio frequency (RF) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. The RF circuitry 108 converts electrical signals to electromagnetic signals or electromagnetic signals to electrical signals and communicates with communication networks and other communication devices via electromagnetic signals. The RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. The RF circuitry 108 optionally communicates wirelessly with other devices and with networks, such as the Internet, also known as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs), and / or metropolitan area networks (MANs). The RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as near field communication radio. The wireless communication optionally uses any of a plurality of communication standards, protocols, and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (WDMA), and the like.Wireless technology may include wireless LANs, wireless LANs, and wireless LANs, including wireless LANs with a WAN-based standard, wireless LANs, wireless LANs with a WAN-based standard ... Such communication protocols include, but are not limited to, SIMPLE (Simple Message Extensions), Instant Messaging and Presence Service (IMPS), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.
[0076] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 further comprises a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a removable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., single or double ear headphones) and an input (e.g., a microphone).
[0077] I / O subsystem 106 couples input / output peripherals of device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes one or more input controllers 160 for display controller 156, light sensor controller 158, intensity sensor controller 159, haptic feedback controller 161, and other input or control devices. One or more input controllers 160 receive / send electrical signals from / to other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller(s) 160 are optionally coupled to any (or none) of a keyboard, infrared port, USB port, and pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2) optionally include up / down buttons for adjusting the volume of the speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206 in FIG. 2).
[0078] A quick press of a push button optionally unlocks the touchscreen 112 or optionally initiates a process of using gestures on the touchscreen to unlock the device, as described in U.S. Patent Application No. 11 / 322,549, filed December 23, 2005, U.S. Patent No. 7,657,849, entitled "Unlocking a Device by Performing Gestures on an Unlock Image," which is incorporated herein by reference in its entirety. A longer press of a push button (e.g., 206) optionally powers the device 100 on or off. The functions of one or more of the buttons are optionally user-customizable. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0079] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 receives and / or sends electrical signals to touchscreen 112. Touchscreen 112 displays visual output to the user. The visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively referred to as "graphics"). In some embodiments, optionally, some or all of the visual output corresponds to user interface objects.
[0080] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on tactile and / or haptic contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contacts (and any movement or cessation of contact) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.
[0081] Touchscreen 112 optionally uses LCD (liquid crystal display), LPD (light emitting polymer display), or LED (light emitting diode) technology, although other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally detect contact and any movement or disruption thereof using any of a number of now known or later developed touch sensing technologies, including, but not limited to, capacitive, resistive, infrared, and surface ultrasonic technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as found in the iPhone® and iPod Touch® by Apple Inc. of Cupertino, California.
[0082] The touch-sensitive display in some embodiments of touchscreen 112 is optionally similar to the multi-touch-sensing touchpads described in the following U.S. Patents: 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Application Publication No. 2002 / 0015024 A1, each of which is incorporated by reference in its entirety herein. However, touchscreen 112 displays visual output from device 100, whereas touch-sensitive touchpads do not provide visual output.
[0083] Touch-sensitive displays in some embodiments of touchscreen 112 are described in the following applications: (1) U.S. Patent Application No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller"; (2) U.S. Patent Application No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen"; (3) U.S. Patent Application No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices"; (4) U.S. Patent Application No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices"; (5) U.S. Patent Application No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices"; (6) U.S. Patent Application No. 11 / 228,758, filed September 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface"; (7) US Patent No. 11 / 228,700, filed September 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) US Patent No. 11 / 228,737, filed September 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) US Patent No. 11 / 367,749, filed March 3, 2006, entitled "Multi-Functional Hand-Held Device," all of which are incorporated herein by reference in their entirety.
[0084] Touchscreen 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user optionally contacts touchscreen 112 using any suitable object or appendage, such as a stylus, finger, or the like. In some embodiments, the user interface is designed to function primarily through finger-based contact and gestures, which may be less precise than stylus-based input due to the large contact area of a finger on the touchscreen. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor position or commands to perform the user's desired action.
[0085] In some embodiments, in addition to a touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0086] Device 100 also includes a power system 162 for providing power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with generating, managing, and distributing electrical power within a portable device.
[0087] Device 100 also optionally includes one or more light sensors 164. FIG. 1A shows a light sensor connected to light sensor controller 158 in I / O subsystem 106. Light sensor 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment, projected through one or more lenses, and converts the light into data representing an image. In conjunction with imaging module 143 (also referred to as a camera module), light sensor 164 optionally captures still images or video. In some embodiments, a light sensor is located on the back of device 100, opposite touchscreen display 112 on the front of the device, to enable the touchscreen display as a viewfinder for still image and / or video capture. In some embodiments, the light sensor is optionally located on the front of the device to obtain an image of the user for a videoconference while the user simultaneously views other videoconference participants on the touchscreen display. In some embodiments, the position of the light sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), thereby using a single light sensor 164 in conjunction with a touchscreen display for both video conferencing and capturing still and / or video images.
[0088] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the surrounding environment. In some embodiments, at least one contact intensity sensor is located on or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0089] Device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows proximity sensor 166 coupled with peripherals interface 118. Alternatively, proximity sensor 166 is optionally connected to input controller 160 within I / O subsystem 106. Proximity sensor 166 optionally functions as described in U.S. patent application Ser. No. 11 / 241,839, "Proximity Detector In Handheld Device," Ser. No. 11 / 240,788, "Proximity Detector In Handheld Device," Ser. No. 11 / 620,702, "Using Ambient Light Sensor To Augment Proximity Sensor Output," Ser. No. 11 / 586,862, "Automated Response To And Sensing Of User Activity In Portable Devices," and Ser. No. 11 / 638,251, "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference in their entireties. In some embodiments, the proximity sensor turns off and disables touchscreen 112 when the multifunction device is placed near the user's ear (e.g., when the user is on a phone call).
[0090] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generators coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives haptic feedback generation instructions from haptic feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is located on or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and, optionally, generates a tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or laterally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0091] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 in I / O subsystem 106. Accelerometer 168 optionally functions as described in U.S. Patent Application Publication Nos. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices," and 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated herein by reference in their entireties. In some embodiments, information is displayed on a touchscreen display in portrait or landscape orientation based on an analysis of data received from one or more accelerometers. In addition to accelerometer(s) 168, device 100 optionally includes a magnetometer and a GPS (or GLONASS or other global navigation system) receiver for obtaining information about the position and orientation (e.g., vertical or horizontal) of device 100.
[0092] In some embodiments, software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a touch / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a text input module (or instruction set) 134, a Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction sets) 136. Additionally, in some embodiments, as shown in FIGS. 1A and 3, memory 102 (FIG. 1A) or memory 370 (FIG. 3) stores device / global internal state 157. Device / global internal state 157 includes one or more of the following: an active application state, indicating which applications, if any, are currently active; a display state, indicating which applications, views, or other information are occupying various regions of touchscreen display 112; a sensor state, including information obtained from the device's various sensors and input control devices 116; and location information regarding the device's position and / or orientation.
[0093] Operating system 126 (e.g., an embedded operating system such as Darwin®, RTXC®, LINUX®, UNIX®, OS X®, iOS®, WINDOWS®, or VxWorks®) includes various software components and / or drivers for controlling and managing common system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communication between various hardware and software components.
[0094] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE®, etc.) is adapted to couple to other devices directly or indirectly through a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector the same as or similar to, and / or compatible with, the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.
[0095] Contact / motion module 130 (in cooperation with display controller 156) optionally detects contact with touch screen 112 and other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact occurs (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is contact movement and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has stopped (e.g., detecting a finger-up event or an interruption of the contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point represented by the series of contact data optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point. These actions are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0096] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds for determining whether an action has been performed by a user (e.g., for determining whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator and may be adjusted without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set to any of a wide range of predefined thresholds without modifying the trackpad or touchscreen display hardware. Additionally, in some implementations, a user of the device is provided with software settings for adjusting one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once with a system-level click “intensity” parameter).
[0097] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensity of the detected contact). Thus, a gesture is optionally detected by detecting a particular contact pattern. For example, detecting a finger tap gesture includes detecting a finger down event (e.g., at the location of an icon), followed by detecting a finger lift (lift-off) event at the same location (or substantially the same location) as the finger down event. As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by detecting one or more finger drag events, followed by detecting a finger lift (lift-off) event.
[0098] Graphics module 132 includes various known software components for rendering and displaying graphics on touchscreen 112 or other display, including components for modifying the visual effects (e.g., brightness, transparency, saturation, contrast, or other visual characteristics) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, but not limited to, text, web pages, icons (such as user interface objects including soft keys), digital images, video, animation, etc.
[0099] In some embodiments, graphics module 132 stores data representing graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, along with coordinate data and other graphic characteristic data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.
[0100] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 167 to generate tactile outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0101] The text input module 134 is optionally a component of the graphics module 132 and is used to input text into various applications (e.g., contacts, Module 137. Email Client Module 140, IM Module 141. Browser Module 147, and any other application requiring text input).
[0102] The GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., location-based telephony). Module 138, camera as photo / video metadata Module 143, and to applications that provide location-based services, such as weather widgets, local yellow pages widgets, and map / navigation widgets).
[0103] The application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: • a contacts module 137 (sometimes called an address book or contact list); ●Telephone module 138, ●Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141; ●Training support module 142, a camera module 143 for still and / or video images, ● Image management module 144; ●Video player module, ●Music playback module, ● Browser module 147, ● Calendar module 148, A widget module 149, optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5 and other widgets obtained by the user, and a user-created widget 149-6; a widget creation module 150 for creating user-created widgets 149-6; ● Search module 151, A video and music player module 152 that integrates a video player module and a music player module; ● Memo module 153, Map module 154 and / or ●Online video module 155.
[0104] Examples of other applications 136 optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA® enabled applications, encryption, digital rights management, voice recognition, and voice duplication.
[0105] Contacts module 137, along with touch screen 112, display controller 156, touch module 130, graphics module 132, and text input module 134, is optionally used to manage an address book or contact list (e.g., stored in memory 102 or in the application internal state 192 of contacts module 137 in memory 370), including adding name(s) to the address book, deleting name(s) from the address book, associating phone number(s), email address(es), address(es), or other information with names, associating images with names, categorizing and sorting names, providing phone numbers or email addresses, and Module 138, Videoconferencing module 139, Email Module 140 or IM Module 141, etc.
[0106] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, telephone module 138 is optionally used to enter a series of characters corresponding to a telephone number, access one or more telephone numbers in contacts module 137, modify an entered telephone number, dial the corresponding telephone number, conduct a conversation, and disconnect or hang up when the conversation is completed. As noted above, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.
[0107] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch screen 112, display controller 156, light sensor 164, light sensor controller 158, touch / motion module 130, graphics module 132, text input module 134, contacts module 137, and telephone module 138, videoconferencing module 139 includes executable instructions for initiating, conducting, and terminating videoconferences between a user and one or more other participants in accordance with the user's instructions.
[0108] In cooperation with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for composing, sending, receiving, and managing emails in response to user instructions. In cooperation with image management module 144, email client module 140 makes it very easy to compose and send emails with still or video images captured by camera module 143.
[0109] In cooperation with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions for entering text corresponding to an instant message, modifying entered text, sending the corresponding instant message (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephone-based instant messaging, or using XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0110] In conjunction with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 creates workouts (e.g., with time, distance, and / or calorie burn goals), communicates with training sensors (sports devices), receives training sensor data, calibrates sensors used to monitor workouts, selects and plays music for workouts, and displays, stores, and transmits workout data.
[0111] In conjunction with touch screen 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, camera module 143 contains executable instructions to capture still images or video (including video streams) and store them in memory 102, change the characteristics of the still images or video, or delete the still images or video from memory 102.
[0112] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 includes executable instructions for arranging, modifying (e.g., editing) or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slide show or album), and storing still and / or video images.
[0113] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, browser module 147 contains executable instructions for browsing the Internet according to user instructions, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0114] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 contains executable instructions to create, display, modify, and store calendars and data associated with calendars (e.g., calendar entries, to-do lists, etc.) in accordance with user instructions.
[0115] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget module 149 is a mini-application (e.g., weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) that is optionally downloaded and used by a user, or a mini-application (e.g., user-created widget 149-6) created by a user. In some embodiments, a widget includes a Hypertext Markup Language (HTML) file, a Cascading Style Sheets (CSS) file, and a JavaScript file. In some embodiments, a widget includes an Extensible Markup Language (XML) file and a JavaScript file (e.g., Yahoo! Widgets).
[0116] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget creation module 150 is optionally used by a user to create widgets (e.g., turn user-specified portions of a web page into widgets).
[0117] In cooperation with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, search module 151 contains executable instructions for searching memory 102 for text, music, sound, images, video, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with a user's instructions.
[0118] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 contains executable instructions that enable a user to download and play pre-recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, as well as executable instructions for displaying, presenting, or otherwise playing videos (on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).
[0119] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, notes module 153 contains executable instructions for creating and managing notes, to-do lists, and the like, in accordance with user instructions.
[0120] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 is optionally used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data for stores and other points of interest at or near a particular location, and other location-based data) in accordance with user instructions.
[0121] In cooperation with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 contains instructions that enable a user to access, view, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124), and send and otherwise manage emails containing links to particular online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140. Additional description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, filed June 20, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," and U.S. Patent Application No. 11 / 968,067, filed December 31, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," the contents of which are incorporated by reference herein in their entireties.
[0122] Each of the above-identified modules and applications corresponds to an executable instruction set and method described herein (e.g., computer-implemented methods and other information processing methods described herein) that performs one or more of the above functions. These modules (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules; thus, various embodiments optionally combine or otherwise rearrange various subsets of these modules. For example, a video playback module is optionally combined with a music playback module into a single module (e.g., video and music playback module 152 of FIG. 1A ). In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not described above.
[0123] In some embodiments, device 100 is a device on which operation of a predefined set of functions is performed exclusively through a touchscreen and / or touchpad. By using the touchscreen and / or touchpad as the primary input control device for operation of device 100, the number of physical input control devices (push buttons, dials, etc.) on device 100 is optionally reduced.
[0124] The set of predefined functions performed exclusively through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device instead of a touchpad.
[0125] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or memory 370 (FIG. 3) includes event sorter 170 (e.g., in operating system 126) and corresponding application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).
[0126] Event sorter 170 receives the event information and determines application 136-1 and application view 191 of application 136-1 to which the event information should be delivered. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) that are displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine application view 191 to which the event information should be delivered.
[0127] In some embodiments, application internal state 192 includes additional information such as one or more of resume information used when application 136-1 resumes execution, user interface state information indicating information being displayed or prepared for display by application 136-1, a state queue to allow the user to return to a previous state or view of application 136-1, and a redo / undo queue of previous actions taken by the user.
[0128] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about a sub-event (e.g., a user touch on touch-sensitive display 112 as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (through audio circuitry 110). Information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.
[0129] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receiving an input above a predetermined noise threshold and / or for longer than a predetermined duration).
[0130] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .
[0131] Hit view determination module 172 provides software procedures for determining where a sub-event occurred within one or more views when touch-sensitive display 112 displays more than one view. A view consists of controls and other elements that a user can see on the display.
[0132] Another aspect of a user interface associated with an application is a set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application views (of each application) in which touches are detected optionally correspond to programmatic levels within the application's programmatic or view hierarchy. For example, the lowest-level view in which touches are detected is optionally referred to as a hit view, and the set of events that are recognized as appropriate inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch-based gesture.
[0133] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which the first sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events related to the same touch or input source for which it was identified as the hit view.
[0134] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive the particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive the particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-events are actively participating views, and therefore, all actively participating views should receive the particular sequence of sub-events. In other embodiments, even if the touch sub-event is completely confined to the region associated with a particular view, views higher in the hierarchy remain actively participating views.
[0135] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers event information to event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information obtained by corresponding event receivers 182 in an event queue.
[0136] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or part of another module stored in memory 102, such as contact / motion module 130.
[0137] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a corresponding view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, a corresponding application view 191 includes multiple event recognizers 180. In other embodiments, one or more of event recognizers 180 are part of a separate module, such as a user interface kit or a higher-level object from which application 136-1 inherits methods and other properties. In some embodiments, the corresponding event handler 190 includes one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or invokes data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 includes one or more corresponding event handlers 190. Also, in some embodiments, one or more of the data updater 176, object updater 177, and GUI updater 178 are included in the corresponding application view 191.
[0138] A corresponding event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (optionally including sub-event delivery instructions).
[0139] The event receiver 182 receives event information from the event sorter 170. The event information includes information about a sub-event, for example, information about a touch or a touch movement. Depending on the sub-event, the event information also includes additional information, such as the position of the sub-event. When the sub-event involves a touch movement, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a device rotation from one orientation to another (e.g., from portrait to landscape orientation, or vice versa), and the event information includes corresponding information about the device's current orientation (also called the device's attitude).
[0140] The event comparator 184 compares the event information with predefined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a predefined series of sub-events), such as Event 1 (187-1), Event 2 (187-2), etc. In some embodiments, the sub-events in Event 187 include, for example, a start of touch, an end of touch, a movement of touch, a stop of touch, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a displayed object. This double tap includes, for example, a first touch on a displayed object for a predetermined stage (start of touch), a first lift-off (end of touch) for the predetermined stage, a second touch on a displayed object for the predetermined stage (start of touch), and a second lift-off (end of touch) for the predetermined stage. In another example, the definition of event 2 (187-2) is a drag operation on a displayed object, including, for example, a touch (or contact) on the displayed object for a predetermined step, a movement of the touch across the touch-sensitive display 112, and a lift-off of the touch (end of the touch). In some embodiments, the event also includes information about one or more associated event handlers 190.
[0141] In some embodiments, event definitions 187 include definitions of events for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine the user interface object associated with the sub-event. For example, in an application view in which three user interface objects are displayed on touch-sensitive display 112, if a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a corresponding event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 should be activated. For example, event comparator 184 selects the event handler associated with the sub-event and object that triggers the hit test.
[0142] In some embodiments, the definition for the corresponding event (187) also includes a delay action that delays delivery of the event information until after it has been determined whether a set of sub-events corresponds to the event type of the event recognizer.
[0143] When the corresponding event recognizer 180 determines that the sequence of sub-events does not match any of the events in the event definition 186, the corresponding event recognizer 180 enters an event disabled, event failed, or event finished state and thereafter ignores the next sub-event of the touch-based gesture. In this situation, other event recognizers, if any, that remain active for the hit view continue to track and process sub-events of the ongoing touch-based gesture.
[0144] In some embodiments, corresponding event recognizer 180 includes metadata 183 with configurable properties, flags, and / or lists that indicate to actively participating event recognizers how the event delivery system should perform sub-event delivery. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact or are enabled to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in the view or programmatic hierarchy.
[0145] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and deferring sending) the sub-events to the respective hit view. In some embodiments, the event recognizer 180 pops a flag associated with the recognized event, and the event handler 190 associated with the flag catches the flag and performs predefined processing.
[0146] In some embodiments, event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions deliver the event information to an event handler associated with the set of sub-events or to an actively participating view. The event handler associated with the set of sub-events or to an actively participating view receives the event information and performs predefined processing.
[0147] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used by contacts module 137 or stores video files used by a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.
[0148] In some embodiments, event handler(s) 190 include or have access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of the respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0149] It should be understood that the foregoing discussion regarding event processing of a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 with input devices, not all of which are initiated on the touchscreen. For example, mouse movements and mouse button presses, optionally coordinated with single or multiple keyboard presses or holds, touch movements such as tapping, dragging, scrolling, etc. on a touchpad, pen stylus input, device movement, verbal commands, detected eye movement, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the event to be recognized.
[0150] FIG. 2 illustrates portable multifunction device 100 having touchscreen 112, according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as embodiments described below, a user can select one or more of the graphics by making a gesture on the graphics, for example, with one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics occurs when the user loses contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward and / or downward), and / or rolling of a finger in contact with device 100 (right to left, left to right, upward and / or downward). In some implementations or situations, accidental contact with a graphic does not select the graphic. For example, a swipe gesture sweeping over an application icon optionally does not select the corresponding application when the gesture corresponding to selection is a tap.
[0151] Device 100 also optionally includes one or more physical buttons, such as a "home" or menu button 204. As mentioned above, menu button 204 is optionally used for navigation to any application 136 within a set of applications optionally running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on touchscreen 112.
[0152] In some embodiments, device 100 includes touchscreen 112, menu button 204, pushbutton 206 for turning power to the device on / off and locking the device, volume control button(s) 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to turn power on / off on the device by pressing and holding the button down for a predetermined time, lock the device by pressing and releasing the button before the predetermined time has elapsed, and / or unlock the device or initiate an unlocking process. In an alternative embodiment, device 100 also receives verbal input through microphone 113 for activating or deactivating certain functions. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.
[0153] FIG. 3 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface, according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia player device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 for interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interfaces 330, including a display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator(s) 167 described above with reference to FIG. 1A ) for generating tactile output on device 300, sensors 359 (e.g., optical sensors, acceleration sensors, proximity sensors, touch-sensitive sensors, and / or contact intensity sensors similar to contact intensity sensor(s) 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310.In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disc authoring module 388, and / or spreadsheet module 390, while memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.
[0154] 3 is optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set that performs the functions described above. The above-identified modules or programs (e.g., instruction sets) optionally need not be implemented as separate software programs, procedures, or modules; thus, various embodiments combine or otherwise rearrange various subsets of these modules. In some embodiments, memory 370 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 370 optionally stores additional modules and data structures not described above.
[0155] Attention is now directed to embodiments of user interfaces, for example, that are optionally implemented on portable multifunction device 100.
[0156] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth indicator 405, ● Battery status indicator 406, A tray 408 containing icons for frequently used applications, such as: ○ An icon 416 for the phone module 138, labeled "Phone", optionally including an indicator 414 of the number of missed calls or voicemail messages; An icon 418 for the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser", and ○ An icon 422 for the video and music player module 152, also referred to as the iPod (trademark of Apple Inc.) module 152, labeled "iPod", and ●Icons for other applications, such as: ○ An icon 424 for the IM module 141 labeled "Messages"; ○ Icon 426 for the Calendar module 148, labeled "Calendar" ○ Icon 428 for the image management module 144, labeled "Photos"; ○ An icon 430 for the camera module 143, labeled "camera"; ○ Icon 432 for the online video module 155, labeled "Online Video"; Icon 434 for stock price widget 149-2, labeled "Stock Price" ○ Icon 436 for map module 154, labeled "Map"; ○ Icon 438 for weather widget 149-1, labeled "Weather" ○ Icon 440 for alarm clock widget 149-4, labeled "Clock" ○ An icon 442 for the training support module 142, labeled "Training Support"; ○ An icon 444 for the notes module 153, labeled "Notes," and An icon 446 for a settings application or module, labeled "Settings," that provides access to settings related to the device 100 and its various applications 136.
[0157] 4A are merely exemplary. For example, icon 422 for video and music player module 152 is labeled "Music" or "Music Player." Other labels are optionally used for various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to the particular application icon.
[0158] 4B shows an exemplary user interface on a device (e.g., device 300 of FIG. 3) that includes a touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) for detecting the intensity of a contact on touch-sensitive surface 451 and / or one or more tactile output generators 357 for generating a tactile output for a user of device 300.
[0159] Although some of the following examples are described with reference to input on touchscreen display 112 (when the touch-sensitive surface and display are combined), in some embodiments, the device detects input on a touch-sensitive surface that is separate from the display, as shown in FIG. 4B . In some embodiments, this touch-sensitive surface (e.g., 451 in FIG. 4B ) has a major axis (e.g., 452 in FIG. 4B ) that corresponds to a major axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to their respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this manner, when the touch-sensitive surface is separate from the display, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device. It should be understood that similar methods are optionally used for the other user interfaces described herein.
[0160] Additionally, while the following examples are described primarily with reference to finger input (e.g., finger touches, finger tap gestures, finger swipe gestures), it should be understood that in some embodiments, one or more of those finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced with a mouse click (e.g., instead of a touch), followed by cursor movement along the path of the swipe (e.g., instead of moving the contact). As another example, a tap gesture is optionally replaced with a mouse click while the cursor is positioned over the location of the tap gesture (e.g., instead of detecting a touch followed by ceasing contact detection). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger touches are optionally used simultaneously.
[0161] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 can include some or all of the features described with respect to devices 100 and 300 (e.g., FIGS. 1A-4B ). In some embodiments, device 500 includes a touch-sensitive display screen 504, hereafter referred to as touchscreen 504. Instead of, or in addition to, touchscreen 504, device 500 includes a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or the touch-sensitive surface) optionally includes one or more intensity sensors for detecting the intensity of an applied contact (e.g., a touch). The one or more intensity sensors in touchscreen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. The user interface of device 500 can respond to a touch based on the intensity of the touch, meaning that touches of different intensities can invoke different user interface actions on device 500.
[0162] Exemplary techniques for detecting and processing touch intensity can be found, for example, in related applications, International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application" (published as WO 2013 / 169849), and International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships" (published as WO 2014 / 105276), each of which is incorporated herein by reference in its entirety.
[0163] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, can be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, can allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms can allow device 500 to be worn by a user.
[0164] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 may include some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 500 has a bus 512 operably coupling I / O unit 514 to one or more computer processors 516 and memory 518. I / O unit 514 may be connected to a display 504, which may have touch-sensing components 522 and, optionally, an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O unit 514 may connect to a communication unit 530 for receiving application and operating system data using Wi-Fi, Bluetooth, near-field communication (NFC), cellular, and / or other wireless communication technologies. Device 500 may include input mechanism 506 and / or input mechanism 508. Input mechanism 506 is optionally, for example, a rotatable input device or a depressible and rotatable input device. Input mechanism 508 is optionally, in some implementations, a button.
[0165] Input mechanism 508 is optionally a microphone in some embodiments. Personal electronic device 500 optionally includes various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to I / O section 514.
[0166] The memory 518 of the personal electronic device 500 may include one or more non-transitory computer-readable storage media for storing computer-executable instructions that, when executed by one or more computer processors 516, may cause the computer processors to perform the techniques described below, including processes 700, 800, 1000, 1500, 1600, and 1800 (FIGS. 7A-8G, 10A-10C, 15A-16D, and 18). A computer-readable storage medium may be any medium that can tangibly contain or store computer-executable instructions for use by or in connection with an instruction execution system, apparatus, or device. In some examples, the storage medium is a transient computer-readable storage medium. In some examples, the storage medium is a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CD, DVD, or Blu-ray technology, and persistent solid-state memory such as flash, solid-state drives, etc. Personal electronic device 500 is not limited to the components and configuration of Figure 5B and may include other or additional components in multiple configurations.
[0167] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that is optionally displayed on a display screen of device 100, 300, and / or 500 (FIGS. 1, 3, and 5A-5B). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each optionally constitute an affordance.
[0168] As used herein, the term “focus selector” refers to an input element that indicates the current portion of a user interface with which a user is interacting. In some implementations involving a cursor or other position marker, when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 in FIG. 3 or touch-sensitive surface 451 in FIG. 4B ) and the cursor is over a particular user interface element (e.g., a button, window, slider, or other user interface element), the cursor acts as a “focus selector,” and the particular user interface element is adjusted according to the detected input. In some implementations involving a touchscreen display (e.g., touch-sensitive display system 112 in FIG. 1A or touchscreen 112 in FIG. 4A ) that allows direct interaction with user interface elements on the touchscreen display, contact detected on the touchscreen acts as a “focus selector,” such that when input (e.g., a press input by contact) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface (e.g., by using the tab key or arrow keys to move focus from one button to another) without corresponding cursor movement or contact movement on the touchscreen display, and in those implementations, the focus selector moves to follow the movement of focus between different regions of the user interface. Regardless of the specific form taken by the focus selector, the focus selector is generally a user interface element (or contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface with which the user intends to interact).For example, when a pressure input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of the focus selector (e.g., cursor, contact, or selection box) over a corresponding button indicates that the user intends to activate the corresponding button (rather than other user interface elements shown on the device's display).
[0169] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of the contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predefined number of intensity samples or a set of intensity samples collected during a predefined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) relative to a predefined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean value of the intensity of the contact, the average value of the intensity of the contact, the top 10% of the intensity of the contact, half the maximum intensity of the contact, 90% of the maximum intensity of the contact, etc. In some embodiments, the duration of the contact is used to determine the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an action is performed by the user. For example, the set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action being performed, a contact having a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second action being performed, and a contact having a characteristic intensity that exceeds the second threshold results in a third action being performed. In some embodiments, the comparison between the characteristic intensity and the one or more thresholds is not used to determine whether to perform the first or second action, but rather to determine whether to perform one or more actions (e.g., whether to perform each action or to forgo performing each action).
[0170] FIG. 5C illustrates the detection of multiple contacts 552A-552E on touch-sensitive display screen 504 by multiple intensity sensors 524A-524D. FIG. 5C additionally includes an intensity diagram illustrating the current intensity measurements of intensity sensors 524A-524D in terms of intensity units. In this example, the intensity measurements of intensity sensors 524A and 524D are each 9 intensity units, and the intensity measurements of intensity sensors 524B and 524C are each 7 intensity units. In some implementations, the total intensity is the sum of the intensity measurements of multiple intensity sensors 524A-524D, which in this example is 32 intensity units. In some embodiments, each contact is assigned a respective intensity that is a fraction of the total intensity. FIG. 5D illustrates the assignment of the total intensity to contacts 552A-552E based on the distance of contacts 552A-552E from center of force 554. In this example, contacts 552A, 552B, and 552E are each assigned a contact intensity of 8 intensity units of the total intensity, and contacts 552C and 552D are each assigned a contact intensity of 4 intensity units of the total intensity. More generally, in some implementations, each contact j is assigned a respective intensity Ij, which is a portion of the total intensity A, according to a predetermined mathematical function Ij=A·(Dj / ΣDi), where Dj is the distance from the center of force to the respective contact j, and ΣDi is the sum of the distances from the center of force to all respective contacts (e.g., from i=1 to the end). The operations described with reference to FIGS. 5C-5D can be performed using electronic devices similar to or identical to device 100, 300, or 500. In some embodiments, the characteristic intensity of a contact is based on one or more intensities of the contact. In some embodiments, an intensity sensor is used to determine a single characteristic intensity (e.g., a single characteristic intensity of a single contact). Note that the intensity plots are not part of the displayed user interface, but are included in FIGS. 5C-5D for the reader's convenience.
[0171] In some embodiments, a portion of the gesture is identified for purposes of determining the characteristic intensity. For example, the touch-sensitive surface optionally receives successive swipe contacts that transition from a start position to an end position, where the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end position is optionally based on only a portion of the swipe contacts (e.g., only the portion of the swipe contact at the end position), rather than the entire successive swipe contacts. In some embodiments, a smoothing algorithm is optionally applied to the intensity of the swipe contacts before determining the characteristic intensity of the contact. For example, the smoothing algorithm optionally includes one or more of an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, the smoothing algorithms remove small increases or decreases in the intensity of the swipe contacts for purposes of determining the characteristic intensity.
[0172] The intensity of the contact on the touch-sensitive surface is optionally characterized relative to one or more intensity thresholds, such as a contact-detection intensity threshold, a light pressure intensity threshold, a deep pressure intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light pressure intensity threshold corresponds to an intensity at which the device performs an operation typically associated with clicking a physical mouse button or trackpad. In some embodiments, the deep pressure intensity threshold corresponds to an intensity at which the device performs an operation different from an operation typically associated with clicking a physical mouse button or trackpad. In some embodiments, if the contact is detected with a characteristic intensity below the light pressure intensity threshold (e.g., and above a slight contact-detection intensity threshold below which the contact is no longer detected), the device moves a focus selector in accordance with the movement of the contact on the touch-sensitive surface without performing an action associated with the light pressure intensity threshold or the deep pressure intensity threshold. Generally, unless otherwise specified, these intensity thresholds are consistent across different sets of user interface diagrams.
[0173] An increase in the characteristic intensity of the contact from an intensity below the light pressure intensity threshold to an intensity between the light pressure intensity threshold and the deep pressure intensity threshold may be referred to as a "light press" input. An increase in the characteristic intensity of the contact from an intensity below the deep pressure intensity threshold to an intensity above the deep pressure intensity threshold may be referred to as a "deep press" input. An increase in the characteristic intensity of the contact from an intensity below the contact-detection intensity threshold to an intensity between the contact-detection intensity threshold and the light pressure intensity threshold may be referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of the contact from an intensity above the contact-detection intensity threshold to an intensity below the contact-detection intensity threshold may be referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact-detection intensity threshold is zero. In some embodiments, the contact-detection intensity threshold is greater than zero.
[0174] In some embodiments described herein, one or more operations are performed in response to detecting a gesture including a corresponding pressure input or in response to detecting a corresponding pressure input performed with a corresponding contact (or multiple contacts), where the corresponding pressure input is detected based at least in part on detecting an increase in the intensity of the contact (or multiple contacts) above a pressure input intensity threshold. In some embodiments, the corresponding action is performed in response to detecting an increase in the intensity of the corresponding contact above a pressure input intensity threshold (e.g., a “downstroke” of the corresponding pressure input). In some embodiments, the pressure input includes an increase in the intensity of the corresponding contact above a pressure input intensity threshold and a subsequent decrease in the intensity of the contact below the pressure input intensity threshold, and the corresponding action is performed in response to detecting a subsequent decrease in the intensity of the corresponding contact below the pressure input threshold (e.g., an “upstroke” of the corresponding pressure input).
[0175] Figures 5E to 5H show the results of the light pressure intensity threshold (e.g., "IT" in Figure 5E). L " ) to the deep press intensity threshold (e.g., "IT D5 illustrates the detection of a gesture including a press input corresponding to an increase in the intensity of contact 562 to an intensity above a deep pressure intensity threshold (e.g., "IT 2"). The gesture made by contact 562 is detected on touch-sensitive surface 560. In doing so, cursor 576 is displayed over application icon 572B corresponding to app2 on displayed user interface 570, which includes application icons 572A-572D displayed in predetermined region 574. In some embodiments, the gesture is detected on touch-sensitive display 504. An intensity sensor detects the intensity of the contact on touch-sensitive surface 560. The device detects when the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "IT 2"). D ") is determined to have peaked above a deep pressure intensity threshold (e.g., "IT D In response to contact 562 having an intensity greater than 0.001, app2 displays reduced representations 578A-578C (e.g., thumbnails) of recently opened documents for app2, as shown in FIGS. 5F-5H. In some embodiments, the intensity is a characteristic intensity of the contact, which is compared to one or more intensity thresholds. Note that the intensity diagram of contact 562 is not part of the displayed user interface, but is included in FIGS. 5E-5H for the reader's convenience.
[0176] In some embodiments, the display of representations 578A-578C includes animation. For example, representation 578A is initially displayed near application icon 572B, as shown in FIG. 5F. As the animation progresses, representation 578A moves up, displaying representation 578B near application icon 572B, as shown in FIG. 5G. Then, as shown in FIG. 5H, representation 578A moves up, and representation 578B moves up toward representation 578A, displaying representation 578C near application icon 572B. Representations 578A-578C form an array above icon 572B. In some embodiments, the animation progresses as a function of the intensity of contact 562, as shown in FIGS. 5F-5G, where the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "IT D "). In some embodiments, the intensity on which the animation progression is based is a characteristic intensity of the contact. The operations described with reference to FIGS. 5E-5H can be performed using electronic devices similar or identical to device 100, 300, or 500.
[0177] In some embodiments, the device employs intensity hysteresis to avoid accidental inputs, sometimes referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship to the pressure input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units below the pressure input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the pressure input intensity threshold). Thus, in some embodiments, the pressure input includes a corresponding increase in the intensity of the contact above the pressure input intensity threshold and a subsequent decrease in the intensity of the contact below a hysteresis intensity threshold that corresponds to the pressure input intensity threshold, and a corresponding action is performed in response to detecting a subsequent decrease in the intensity of the corresponding contact below the hysteresis intensity threshold (e.g., an “upstroke” of the corresponding pressure input). Similarly, in some embodiments, a pressure input is detected only when the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the pressure input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a corresponding action is performed in response to detection of the pressure input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).
[0178] For ease of explanation, actions described as being performed in response to a pressure input associated with a pressure input intensity threshold or in response to a gesture including the pressure input are optionally triggered in response to detecting any of: an increase in the intensity of the contact above the pressure input intensity threshold; an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the pressure input intensity threshold; a decrease in the intensity of the contact below the pressure input intensity threshold; and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold. Additionally, in examples described as performing an action in response to detecting a decrease in the intensity of the contact below a pressure input intensity threshold, the action is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and lower than the pressure input intensity threshold.
[0179] As used herein, an "installed application" refers to a software application that has been downloaded to an electronic device (e.g., device 100, 300, and / or 500) and is ready to be launched (e.g., opened) on that device. In some embodiments, a downloaded application becomes an installed application by an installation program that extracts program portions from a downloaded package and integrates the extracted portions with the computer system's operating system.
[0180] As used herein, the terms "open application" or "running application" refer to a software application for which state information is maintained (e.g., as part of device / global internal state 157 and / or application internal state 192). An open or running application is, optionally, any one of the following types of application: ● The active application currently displayed on the display screen of the device on which the application is being used; Background applications (or background processes) that are not currently displayed, but whose associated processes are being processed by one or more processors; and A suspended or hibernated application that is not running but has state information stored in memory (volatile and / or non-volatile, respectively) that can be used to resume execution of that application.
[0181] As used herein, the term "closed application" refers to a software application for which no state information is maintained (e.g., no state information about the closed application is stored in the device's memory). Thus, closing an application includes stopping and / or removing the application process for that application and removing state information about that application from the device's memory. Generally, opening a second application while a first application is running does not close the first application. Once the second application is displayed and the first application is no longer displayed, the first application becomes a background application.
[0182] Attention is now directed to embodiments that provide context-specific user interfaces and associated processes implemented on portable composite devices with a display and a touch-sensitive surface, such as devices 100, 300, and / or 500 (FIGS. 1A, 3, and / or 5A).
[0183] The following examples illustrate illustrative embodiments of context-specific user interfaces. General concepts relating to interactive and / or customizable context-specific user interfaces are described herein. It should be noted that the context-specific user interfaces described herein are editable in several ways. The user interface may display or otherwise indicate various types of time-related information, and the type(s) of information may be customizable by the user. The user interface may include aspects such as color, display intensity, and complications (or lack thereof), which are also customizable. As used herein, and consistent with its accepted meaning in the art, a complication refers to any clock face feature other than those used to indicate the hours and minutes of a time (e.g., clock hands or hour / minute display). Complications can provide different types of information to the user, such as data obtained from an application, and the information conveyed to the user by a complication is also customizable, as described below. In some embodiments, a complication may also serve as an affordance for launching an application.Additional descriptions of context-specific user interfaces, as well as their features and related techniques (e.g., editing and / or selecting context-specific user interfaces), can be found in International Application No. PCT / US2015 / 034604, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022203; International Application No. PCT / US2015 / 034606, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022204; and International Application No. PCT / US2015 / 034607, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022205, each of which is incorporated herein by reference in its entirety.
[0184] As discussed above, a user may desire to use a portable multifunction device to view different types of information in different contexts (e.g., throughout the day). A widget dedicated to a particular application may display a particular set of information from an application, but when that information or application is not of interest at a particular time, it takes up screen "real estate" that could be used to provide more immediately relevant information. Thus, providing application information based on time context and / or not limited by the particular application for which the information is obtained provides a more efficient interface, allowing the user to view the right information at the right time, reducing the number of inputs required to access the information, reducing demands on battery life (e.g., powering the display), and more efficiently using screen "real estate."
[0185] 6A-6V illustrate exemplary context-specific user interfaces that may be operated on device 600. In some embodiments, device 600 may be device 100, 300, or 500. The electronic device has a display 602 (e.g., 504). In some embodiments, display 602 is a touch-sensitive display. In some embodiments, device 600 includes a rotatable input mechanism 610a (e.g., 506) and / or an input mechanism or button 610b (e.g., 508).
[0186] 6A, device 600 displays a context-specific user interface on display 602. This exemplary context-specific user interface includes a current time indicator 604 (e.g., a digital clock). Indicator 604 can optionally include various features or aspects that are independently editable or configurable by a user.
[0187] Additionally, the context-specific user interface also includes complications 612 and 614. In some embodiments, complications 612 and / or 614 retrieve data from one or more applications and display information from the one or more applications. In some embodiments, the displayed information may be updated, for example, according to updates to data retrieved from the applications. For example, as shown in FIG. 6A , complication 612 may display information (e.g., date and / or day of the week) from a calendar application. In some embodiments, complication 614 displays a static representation of the application rather than displaying updated information according to updates to data retrieved from the application.
[0188] The user interface screen displayed in FIG. 6A also includes platters 606 and 608. Platters 606 and 608 are each associated with an application. In this example, platter 606 is associated with a weather application, and platter 608 is associated with a calendar application. Platter 606 displays a set of information obtained from the weather application, the time of a predicted change in weather conditions, or the time of predicted hazardous weather conditions, as well as a textual and graphical representation of the weather conditions. Platter 608 displays a set of information obtained from the calendar application, the time of an upcoming calendar event, and an indication of the event name and location. Platter 606 is displayed to appear larger and / or closer to emphasize its information (e.g., its time context (1:00 PM - 2:00 PM) is closer to the current time (10:09 PM) than the time context of platter 608 (4:30 PM - 5:30 PM)).
[0189] Both platters 606 and 608 display information regarding the time context of the current date. As used herein, "time context" may refer to a time associated with a set of information by a user (e.g., the time of a calendar event), a time associated with a set of information by an external data source (e.g., the time of a predicted weather change based on data obtained from an external server), or a time associated with a set of information by an electronic device of the present disclosure (e.g., device 600). For example, as described in more detail below, device 600 may specify a time for presenting a set of information to the user, such as a reminder to take a deep breath or start exercising.
[0190] Platters 606 and 608 are selected by device 600 for display based at least in part on the time context of the current day. Each represents a different application. Thus, information obtained from various applications can be presented to the user, optionally ordered by time context. This allows the user to view information obtained from one or more applications when relevant, rather than allocating screen "real estate" throughout the day to similarly unrelated dedicated information and / or applications. In some embodiments, platters displayed simultaneously can represent the same application (e.g., two platters represent sets of calendar application-related information associated with different time contexts).
[0191] The user rotates the rotatable input mechanism 610a (e.g., scrolls 616a, FIG. 6B ) to view information related to a closer time context. A scroll indicator 618a is also displayed adjacent to 610a on the display 602 to indicate to the user how many platters are viewable and the position of the currently displayed platter(s) within the series of viewable platters. In some embodiments, the scroll indicator 618a is displayed in response to detecting scrolling 616a, thereby indicating to the user that additional information can be viewed using rotational input via the rotatable input mechanism 610a.
[0192] In response to detecting scroll 616a, platters 606 and 608 translate on the screen, as shown in FIG. 6C , where platter 608 now appears larger and / or closer to the user. Additionally, platter 620 is displayed at the bottom of display 602. Platter 620 displays a set of information associated with and obtained from a navigation application (e.g., predicted traffic congestion times or predicted times of change in traffic conditions, such as typical times when the user will be driving or traveling by public transportation). Platter 620 displays information related to the time context of the current date that is the same as or later than the set of information displayed on platter 608. Scroll indicators (e.g., 618b) also update to continuously indicate the position of platter 608. In some embodiments, scroll indicator 618b is displayed in response to detecting scroll 616a, thereby indicating to the user that additional information can be viewed using rotary input via rotary input mechanism 610a.
[0193] The user again rotates 610a (e.g., scrolls 616b, FIG. 6C). In response to detecting scroll 616b, device 600 stops displaying platter 606 and displays it in its original position (e.g., by translating 608 on the screen (FIG. 6D)). In addition, platter 620 appears larger and / or closer to the user in platter 608's original position. In some embodiments, platter 620 displays additional information in this display position, such as "Leave Now," informing the user that their route home is forecast to be interrupted by traffic within 40 minutes. Platter 622 associated with the news application is displayed in platter 620's original position. A scrolling indicator (e.g., 618c) is also updated to continuously indicate the position of platter 620.
[0194] The user again rotates 610a (e.g., scrolls 616c, FIG. 6D). In response to detecting scroll 616c, device 600 stops displaying platter 608 (e.g., by translating 620 on the screen (FIG. 6E)) and displays platter 620 in its original position. In addition, platter 622 is displayed in platter 620's original position, at a larger size and / or closer to the user. In some embodiments, platter 622 displays additional information, such as the day's top headlines, in this display position. A partial view of platter 624 representing tomorrow's calendar events is also displayed. The scroll indicator (e.g., 618d) is also updated to continuously indicate the position of platter 622.
[0195] Platters 606, 608, 620, and 622 display sets of information obtained from various applications related to the time context(s) of the current day. Platter 624 indicates to the user that information about the next day is also available for display. The user rotates 610a (e.g., scrolls 616d, FIG. 6E), and in response to detecting scroll 616d, the display is updated as shown in FIG. 6F. In FIG. 6F, device 600 displays platter 620, 622 in 620's original position, and a full view of platter 624. Platter 624 is associated with a calendar application and displays information obtained from it, an indication of the number of calendar events scheduled for tomorrow and the time of the first calendar event scheduled for tomorrow. A partial view of platter 626 representing tomorrow's forecast weather is also displayed. A scroll indicator (e.g., 618e) is also updated to continuously indicate the position of platter 624.
[0196] The user rotates 610a (e.g., scrolls 618e, FIG. 6F) to view all of platters 624 and 626. As shown in FIG. 6G, platter 626 displays text and graphical depictions of tomorrow's forecasted weather conditions, along with forecasted high and low temperatures. A scroll indicator also updates (e.g., 618f) to continuously indicate the position of platter 626. In some embodiments, as shown in FIG. 6G, platters 624 and 626 do not display a set of information related to a separate time context for tomorrow, but rather display information related to tomorrow in general, or information related to multiple contexts for tomorrow. In some embodiments, the platter associated with the current day displays a set of information related to a separate time context for the current day (e.g., a single calendar event or weather notification), while the platter associated with tomorrow displays a set of information related to multiple time contexts for tomorrow or most of tomorrow (e.g., an overview of multiple calendar events or an overview of the weather for the entire day).
[0197] To return to the current time view, the user taps display 602 (e.g., tap 628). In response to detecting tap 628, device 600 displays and stops displaying platters 624 and 626 and displays platters 606 and 608 (FIG. 6H). Indicator 618a is also appropriately updated to reflect the position of platter 606 along the set of viewable platters. In some embodiments, the user returns to the user interface screen shown in FIG. 6H by scrolling in the opposite direction (e.g., by rotating 610a in the opposite direction of scrolls 616a, 616b, 616c, 616d, and 616e via a rotational input).
[0198] In some embodiments, rather than scrolling the user interface screen by rotating 610a, a user swipes display 602 to scroll the user interface screen and navigate through time contexts. For example, in response to detecting swipe 630a, device 600 translates platters 606 and 608, displays platter 620, and updates scroll indicator 618b (FIG. 6I). Figures 6I and 6C illustrate that swiping display 602 can be used interchangeably with rotating 610a to scroll the user interface (e.g., in either direction as described herein).
[0199] 6J illustrates exemplary platters 606, 608, 634, 636, 638, 640, 642, 644, 646, 648, 650, 652, 654, and 656 that may be displayed on display 602. For example, platter 632 may be associated with an activity application and display a reminder to engage in some type of physical activity for a particular duration consistent with an exercise goal, platter 634 may be associated with an alarm application and display a saved time for the next alarm, platter 636 may be associated with a breathing reminder application and display a reminder to take deep breaths / meditate, platter 638 may be associated with a navigation application and display an indication of predicted traffic conditions, platter 640 may be associated with a news application and display headlines, platter 642 may be associated with a reminder application and display a reminder and its designated time, and platter 644 may be associated with a stocks application and display a reminder. platter 646 is associated with a photo application and displays the user's photos; platter 648 is associated with a photo application and displays the user photos; platter 650 is associated with a wallet application and displays purchased movie tickets; platter 652 is associated with a sunrise / sunset application and displays today's sunset time; platter 654 is associated with a home application and displays affordances for activating stored settings for one or more home devices (e.g., lights, curtains, music, door / window locks, etc.); and platter 656 is associated with a sunrise / sunset application and displays tomorrow's sunrise time.
[0200] Device 600 can use various selection criteria, alone or in any combination, to select which set(s) of information to present to the user on the platters, as shown in FIG. 6J. In some embodiments, the set of selection criteria includes the time context of the set of information. For example, calendar events (e.g., as shown on platter 608), weather notifications (e.g., as shown on platter 606), reminders (e.g., as shown on platter 642), alarms (e.g., as shown on platter 634), photos (e.g., photos taken the day before the current date in the current month or year, as shown on platter 646), sunrise / sunset times (e.g., as shown on platters 652 and 656), or closing stock prices (e.g., as shown on platter 644) can be selected for display because they relate to the current time or an upcoming time (e.g., on the current date).
[0201] In some embodiments, the selection criteria include a time context for the set of information and one or more additional selection criteria. In some embodiments, whether to display a set of information obtained from an application on a platter is determined based on data obtained from multiple applications. For example, if the information is relevant to a particular application and determined based on data from other applications, the information can be presented to the user because it satisfies a set of selection criteria; a displayed reminder is relevant to an activity application (e.g., based on data regarding the user's daily activity goals) and a set of criteria is met (e.g., a predetermined time until the next scheduled calendar event) based on data from a calendar application and therefore can be selected for display on the activity platter. In some embodiments, the selection criteria include proximity to a second device (e.g., the device belongs to a contact).
[0202] In some embodiments, the selection criteria may include the time until the next scheduled calendar event. In this example, the time context relates to the time at which device 600 presents this set of information to the user. If the user has enough time between scheduled events, the device may present a reminder from an activity application (e.g., platter 632) because the user has time for a workout or other activity. In some embodiments, the selection criteria may include multiple calendar events scheduled for the current date. The set of information may relate to different time contexts and a breath reminder application, so platter 636 may be displayed. In this case, device 600 may present a breath reminder because several consecutive calendar events have ended, so the user may want to take a moment to take a deep breath and calm down. In some embodiments, the selection criteria may include the application from which the information is obtained. For example, device 600 may select an activity reminder (e.g., as shown in platter 632) because the activity goal for the day has not yet been met, or device 600 may select a breath reminder because the scheduled calendar events for the day have concluded (as described above). These functionalities allow the device to present sets of information from various applications at times when the user may wish to use these functionalities, rather than at predetermined times specified by the user or an external data source.
[0203] In some embodiments, the selection criteria may include location information. For example, platter 650 may be displayed because a set of information (movie tickets) is relevant to a time context (the next showtime for the current date, in this example, 7:15 PM) and a location (e.g., device 600 is close to the theater). Platter 638 may be displayed because a set of information (traffic conditions) is relevant to a time context (the time a user typically begins their commute, or the time of day when commuting is most common in general) and a location (e.g., device 600 is close to work but not home, and the traffic forecast is between work and home). Platter 648 may be displayed because a set of information (traffic conditions) is relevant to a location (e.g., device 600 is close to where a previous user photo was taken). In some embodiments, device 600 obtains data representing its current location from a location sensor associated with device 600 (e.g., GPS sensor 532 of device 600 or GPS module 135 of device 100 paired or coupled via wireless communication with device 600). In some embodiments, the location information is obtained from another application, such as a calendar application. For example, the device may display a platter with a set of information (e.g., weather conditions) from a weather application for the location of an upcoming calendar event. If the user is in San Francisco but has a calendar event in New York that afternoon or has a plane ticket to New York, the device may display a platter with weather information for New York.
[0204] In some embodiments, the selection criteria may include one or more previous user inputs. For example, platter 654 may be displayed before a time the user previously used the home application (e.g., bedtime). platter 638 may be displayed before a time the user previously started their commute. In this example, the user input may be device movement corresponding to the user heading home, e.g., one or more inputs received from GPS sensor 532, accelerometer 534, direction sensor 540 (e.g., compass), gyroscope 536, motion sensor 538, and / or combinations thereof.
[0205] In addition to displaying a set of information related to a particular time context of the current date, these context-specific user interfaces can also display, for example, a set of information related to the current date that is independent of a particular time context, or a set of information related to most of the current date. These "all-day" events are also accessible by scrolling the user interface. As shown in FIG. 6K, when platters 606 and 608 are displayed (e.g., current time view), the user rotates 610a in the opposite direction to scrolling 616a (e.g., scrolling 658a).
[0206] In response to detecting scroll 658a, device 600 displays the screen shown in FIG. 6L. Platter 606 is translated on the screen, scroll indicator 618b is updated, and "All Day" platter 660 is displayed. Platter 660 is associated with a weather application and displays a set of information for the entire current day (e.g., predicted weather conditions and forecasted high and low temperatures for the current day).
[0207] That afternoon, display 602 displays platters 620 and 622 (FIG. 6M). Current time indicator 604 is updated in FIG. 6M to reflect the current time. Compared to the screen shown in FIG. 6K, the screen shown in FIG. 6M shows different events because the current time is later (e.g., 1:00 compared to 10:09). Because the sets of information displayed on platters 620 and 622 are current, in this case at 1:00, these platters are displayed in place of platters 606 and 608. Thus, different platters can be displayed to the user at different times. In some embodiments, platters displaying sets of information related to past times on the current date cease displaying on display 602. In some embodiments, one platter corresponding to the most recent past event is displayed.
[0208] The user scrolls the user interface by rotating 610a via scroll 658b. In response to detecting scroll 658b, the device displays the screen shown in FIG. 6N. As shown in FIG. 6N, device 600 displays platters 620 and 660. Thus, the user can access information from the “All Day” platter (e.g., 660) at any time for the current date, while displaying an event-specific platter (e.g., 606 or 620) based on a particular time context within the current date. In summary, scrolling the user interface screen in one direction (e.g., by rotating and / or swiping 610a) reveals future event platters related to the current date and / or the next day (see FIGS. 6B-6I), and scrolling the user interface screen in another direction (e.g., by rotating and / or swiping 610a) reveals the “All Day” event platter for the current date (see FIGS. 6K-6N).
[0209] In some embodiments, one or more "all-day" event platters may be selected (e.g., by the device) for display based on one or more selection criteria, for example, as described above. For example, platter 660 may be presented to a user because it is relevant to an application for which a set or sets of information are obtained (e.g., all-day weather conditions at the device's current location) and / or (e.g., showing all-day weather platters).
[0210] In some embodiments, in addition to or instead of displaying a set of information obtained from a corresponding application, the event and all-day platters can also serve as affordances for launching the corresponding application. In Figure 6O, a user contacts the displayed platter 606 with a tap 662a. In response to detecting the tap 662a, the device 600 stops displaying the platter 606 and displays a user interface screen from the corresponding application (in this example, a weather application, Figure 6P).
[0211] The user can also select a displayed complication to launch an application. In FIG. 6Q, the user contacts the displayed complication 614 with a tap 662b to launch a personal assistant application. In response to detecting the tap 662b, the device 600 stops displaying the complication 614 and displays a user interface screen from the corresponding application (FIG. 6R). In some embodiments, the complication 614 is “pinned” to the user interface screen so that it remains displayed (and optionally displayed in a fixed position) while the event platter and / or all-day platter are scrolled (see FIGS. 6B-6N). This allows the user to use the complication at any time, regardless of which event platter is displayed. In some embodiments, the personal assistant application is launched to reflect the context of the currently running application or the most recently launched application.
[0212] A user may wish to edit the application represented by complications 614 and / or other aspects of the user interface, such as color, density of displayed information, etc. Further description of editing and / or selecting context-specific user interfaces and their subcomponents can be found in International Application No. PCT / US2015 / 034607, entitled "Context-Specific User Interfaces," filed June 7, 2015, published as WO 2016 / 022205, which is incorporated herein by reference in its entirety.
[0213] In FIG. 6S , the user accesses the edit mode of device 600 with a press 664, which in some embodiments may be a press having a duration longer than a predetermined duration (e.g., a “long press” input) or a contact having a characteristic intensity above an intensity threshold. In this example, in response to detecting press 664, device 600 transitions to a context-specific user interface selection mode and visually highlights the user interface screen to indicate the selection mode ( FIG. 6T ). Device 600 alerts the user that it has transitioned to the selection mode by displaying a reduced representation 666 of the user interface screen, a name 668 corresponding to the name of the currently selected context-specific user interface type, an adjacent stored partial view 670 of the context-specific user interface (conceivably selectable by the user by swiping to view the full interface and tapping to select it), and an edit affordance 672. To edit the user interface, the user contacts edit affordance 672 with a tap 674.
[0214] In response to detecting tap 674, the device transitions to an edit mode and visually highlights one or more aspects of the user interface for editing ( FIG. 6U ). In this example, complication 614 is selected for editing. Device 600 notifies the user that complication 614 has been selected for editing by visually highlighting complication 614 by displaying outline 676a around complication 614 and indicator 676b, which indicates the application represented by the complication (in this example, a personal assistant application). Device 600 also displays scroll indicator 680a, notifying the user that additional applications are selectable by scrolling and indicating the position of the personal assistant application along the set of viewable application options. Device 600 also displays paging affordance 678, indicating that two options for editing different aspects of the user interface can be selected (e.g., by swiping). In this example, the options include one or more colors associated with the application and user interface represented by complication 614 (eg, one or more colors of the current time indicator and / or the displayed platter).
[0215] In response to detecting scrolling 682 (rotation of 610a), device 600 replaces complication 614 with complication 684 representing the remote application (FIG. 6V). Additionally, indicator 676b is updated to indicate the remote application, and scrolling indicator 680b is updated to reflect the remote application's position along the set of selectable application options. In some embodiments, in response to detecting one or more additional inputs, device 600 displays a user interface screen based on display 602 shown in FIG. 6V (e.g., pressing 610a followed by a tap on the displayed user interface in a selection mode). In some embodiments, device 600 stores the edited user interface in memory (e.g., memory 518 and / or memory 102 of a device 100 paired or coupled via wireless communication with device 600). In some embodiments, the edited user interface screen can be subsequently selected in a selection mode (see, e.g., display 1322 in FIG. 13 ), as described, for example, in International Application PCT / US2015 / 034607, entitled “Context-Specific User Interfaces,” filed June 7, 2015, and published as International Publication No. WO 2016 / 022205.
[0216] 7A-7E show a flow diagram illustrating a process 700 for providing a context-specific user interface. In some embodiments, process 700 can be performed in an electronic device having a touch-sensitive display, one or more processors, and memory, such as device 100 (FIG. 1A), 300 (FIG. 3), 500 (FIGS. 5A-5H), or 600 (FIGS. 6A-6V). Some operations of process 700 can be combined, the order of some operations can be changed, and some operations can be omitted.
[0217] 7A, in block 702, the device displays a user interface screen including a current time indicator and a first platter in a first position (e.g., on the display). As shown in block 704, the first platter is associated with a first application and displays a first set of information obtained from the first application (e.g., platter 608 in FIG. 6C is associated with a calendar application and displays the time, name, and location of a scheduled calendar event). As shown in block 706, the first set of information is associated with a first time context (e.g., the time of the calendar event) for the current date. As described above, a "time context" can relate to a time associated with a set of information by a user, a time associated with a set of information by an external data source, or a time associated with a set of information by an electronic device of the present disclosure.
[0218] In block 708, the device detects user input. In some embodiments, detecting the user input includes detecting a rotation of a rotatable input mechanism (e.g., scroll 616b in FIG. 6C). In some embodiments, detecting the user input includes detecting a swipe on a touch-sensitive display (e.g., swipe 630a in FIG. 6H).
[0219] In block 710, in response to detecting user input, the device displays the first platter in a second position different from the first position (see the position of platter 608 in FIGS. 6C and 6D ). In some embodiments, the first platter is displayed in the second position at a larger size (e.g., appears larger and / or closer to the viewer) than when displayed in the first position (see platter 608 in FIGS. 6C and 6D ). In some embodiments, the first platter displays more information when displayed in the second position than when displayed in the first position (see platter 608 in FIGS. 6C and 6D ).
[0220] In response to detecting a user input at block 712, the device displays a second platter in the first position (e.g., platter 620 of FIG. 6D ). As shown in block 714, the second platter is associated with a second application and displays a second set of information obtained from the second application (e.g., see platter 620 of FIG. 6D associated with a navigation application and displaying times of predicted traffic conditions). As shown in block 716, the second set of information is associated with a second time context of the current date. In some embodiments, the first and second applications are different. For example, in some embodiments, the first and second applications are independently selected applications selected from a weather, calendar, activity, breath reminder, photo, reminder, and stocks application. In some embodiments, the first and second time contexts are different. In some embodiments, the first and second time contexts are the same. By displaying sets of information obtained from different applications across the time context of the current date, the user is provided with related application data (and optionally affordances to launch applications) from multiple applications without requiring the display of multiple dedicated application widgets (each dedicated to and showing information obtained from a single application). Providing additional control options without cluttering the user interface with additional displayed controls (e.g., dedicated application widgets) improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0221] 7B, at block 718, the device optionally detects a second user input (e.g., after displaying the second platter). In some embodiments, detecting the second user input includes detecting a rotation of a rotatable input mechanism (e.g., scroll 616c of FIG. 6D). In some embodiments, detecting the second user input includes detecting a swipe on the touch-sensitive display (e.g., swipe 630a of FIG. 6H).
[0222] In response to detecting the second user input, at block 720, the device optionally displays a second platter at a location on the display different from the first location (see platter 620 in FIG. 6E). As shown in block 722, in some embodiments, the device optionally stops displaying the first platter (see disappearance of platter 608 in FIGS. 6D-6E) before displaying the second platter (e.g., at the second location).
[0223] In response to detecting the second user input at block 724, the device optionally displays a third platter in the first position (see platter 622 in FIG. 6E ). In some embodiments, as shown in block 726, the third platter is associated with a third application and displays a third set of information obtained from the third application. The third application is different from the first and second applications, and the third set of information is associated with a third time context of the current date. In some embodiments, as shown in block 728, the third platter is associated with the first application and displays a third set of information obtained from the first application. The first and third sets of information are different, and the third set of information is associated with a third time context of the current date, and the first and third time contexts are different. This allows the device to display different sets of application information without requiring the user to launch an application(s) to access multiple sets of information, each of which may be relevant at a different time. Performing an operation when a set of conditions (e.g., relevant time context and / or specific application) is met without requiring further user input improves the usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate input when operating / interacting with the device and reducing user errors), as well as reducing the device's power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0224] In block 730, in response to detecting a second user input, the device optionally displays the first platter in a third position on the display different from the first and second positions (see the position of platter 620 in Figures 6C, 6D, and 6E).
[0225] 7C, at block 732, the device optionally displays an indicator of a position along the series of positions on the display (see indicator 618b in FIG. 6C), e.g., in response to detecting the first user input. The indicator of a position along the series of positions indicates the position of the second platter along the series of viewable platters.
[0226] In response to detecting the second user input at block 734, the device optionally updates the position indicator to indicate the position of the third platter along the series of displayable platters (see scroll indicators 618a-618f in FIGS. 6B-6G). Displaying an updated scroll indicator indicating the position of the currently selected option along the series of selectable options provides feedback to the user that the received user input (e.g., rotation of 610a) controls the selection of the displayed option while assisting the user in navigating through the series of options (while simultaneously indicating to the user that additional options are viewable). Providing improved feedback improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0227] At block 736, the device optionally detects contact (e.g., on the touch-sensitive display) after displaying the second platter. In some embodiments, the contact occurs at a location on the display that is different from the location of the displayed platter(s) and / or complication(s). In some embodiments, the contact is a tap gesture (e.g., tap 628 in FIG. 6G).
[0228] At block 738, in response to detecting the contact, the device optionally stops displaying the second platter.
[0229] At block 740, in response to detecting the contact, the device optionally displays a first platter in a first position (see platter 608 in FIG. 6H).
[0230] At block 742, the device optionally detects a third user input, e.g., after displaying the second platter. In some embodiments, detecting the third user input includes detecting a rotation of a rotatable input mechanism (e.g., scroll 616d or 616e in FIGS. 6E and 6F). In some embodiments, detecting the third user input includes detecting a swipe on the touch-sensitive display (e.g., swipe 630a in FIG. 6H).
[0231] 7D , in block 744, the device optionally displays a fourth platter on the display in response to detecting a third user input. In some embodiments, the fourth platter displays a fourth set of information associated with and obtained from a fourth application, the fourth application being different from the first and second applications, as shown in block 746. In some embodiments, the fourth platter displays a fourth set of information associated with and obtained from the first application, the first and fourth sets of information being different, as shown in block 748. The fourth set of information relates to a time context of a future day (e.g., tomorrow), such as the set of information shown by platters 624 and 626 in FIG. 6G.
[0232] At block 750, the device optionally detects a user input corresponding to the selection of the first platter. For example, in some embodiments, detecting the user input includes detecting contact on a touch-sensitive display at (e.g., on or near) the displayed first platter (see tap 662a in FIG. 6O).
[0233] In response to detecting user input corresponding to selection of the first platter, the device optionally launches a first application at block 752. In some embodiments, launching the first application includes ceasing display of the first user interface screen and displaying a second user interface screen corresponding to the application (see FIG. 6P).
[0234] At block 754, the device optionally displays an affordance representing the application (see complication 614 in FIG. 6Q). In some embodiments, the affordance is displayed at a location on the display that is different from the first and second locations. In some embodiments, the affordance represents an application that is different from the first and second applications. In some embodiments, the affordance represents either the first or second application. In some embodiments, the affordance includes a set of information obtained from the application that the affordance represents. In some embodiments, the set of information is updated according to data (e.g., updated data) obtained from the application that the affordance represents. In some embodiments, the affordance is displayed at the same location on the display before and after updating the set of information.
[0235] At block 756, the device optionally detects user input corresponding to a selection of the affordance (a tap on or near the displayed affordance, such as tap 662 in FIG. 6Q).
[0236] In response to detecting user input corresponding to selection of the affordance, the device optionally launches an application represented by the affordance at block 758. In some embodiments, launching the application includes ceasing display of the first user interface screen and displaying a second user interface screen corresponding to the application (see FIG. 6R).
[0237] 7E , at block 760, the device optionally detects user input corresponding to a request to enter an affordance editing mode of the electronic device, e.g., before launching an application. In some embodiments, the user input is a press that has a duration longer than a predetermined duration (e.g., a “press and hold” input). In some embodiments, the device determines whether the detected press has a duration longer than a predetermined duration, and, in response to a determination that the detected press has a duration longer than the predetermined duration, enters the affordance editing mode. In some embodiments, the user input is a contact having a characteristic intensity above an intensity threshold. In some embodiments, the device determines whether the detected contact has a characteristic intensity greater than a predetermined duration, and, in response to a determination that the detected contact has a characteristic intensity greater than the predetermined duration, enters the affordance editing mode.
[0238] At block 762, the device optionally transitions to an affordance editing mode in response to detecting user input corresponding to a request to transition to the affordance editing mode. In some embodiments, transitioning to the affordance editing mode includes displaying an edit mode affordance on a touch-sensitive display (e.g., affordance 672 of FIG. 6T ), as indicated at block 764, and detecting user input in response to selection of the edit mode affordance (e.g., tap 674 of FIG. 6T ), as indicated at block 766.
[0239] In block 768, in response to detecting user input corresponding to a request to enter affordance editing mode, the device optionally visually accentuates the affordance to indicate the affordance editing mode. For example, the device may display an outline around the affordance, animate the outline around the affordance, animate the affordance (e.g., flash or expand and touch), change the color of the affordance, and / or display additional indicators to visually accentuate the affordance (see outline 676a and indicator 676b in FIG. 6U). By visually accentuating the affordance to indicate the editing mode, improved feedback can be provided to the user, both that the device has transitioned to a different mode of functionality (e.g., tapping the affordance can result in the launch of a corresponding application while in a mode other than editing mode and can select an affordance for editing while in editing mode), and that the accentuated affordance is the aspect of the interface currently selected for editing. Providing improved feedback improves usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing power usage and improving battery life of the device by allowing the user to use the device more quickly and efficiently. In some embodiments, as shown in block 770, visually highlighting the affordance to indicate the affordance editing mode further includes displaying an indicator of a position along a series of positions, the indicator indicating a first position along the series of positions (e.g., scroll indicator 680a in FIG. 6U).
[0240] At block 772, the device optionally detects a second user input corresponding to a request to change the application represented by the affordance. For example, in some embodiments, detecting the second user input includes detecting a rotation of the rotatable input mechanism (e.g., scroll 682 received by rotatable input mechanism 610a of FIG. 6U).
[0241] At block 774, in response to detecting a second user input corresponding to a request to change the application represented by the affordance, the device optionally updates the affordance to represent a different application (see affordance 784 and indicator 676b in FIG. 6V). In some embodiments, as shown in block 776, the device updates the position indicator to indicate a second position along the series of positions, where the position indicator along the series of positions indicates the position of the currently selected option for the application represented by the affordance along the series of selectable options for the application represented by the affordance (see scroll indicator 680b in FIG. 6V).
[0242] 7A-7E are merely examples, and are not intended to represent the only order in which the operations may be performed. Those skilled in the art will recognize various ways to reorder the operations described herein.
[0243] It should be noted that the process details described above with respect to process 700 (e.g., FIGS. 7A-7E) are also applicable in a similar manner to methods described elsewhere herein. For example, other methods described herein may include one or more of the characteristics of process 700. For example, one or more of the steps of process 700 may be combined with one or more of the steps of process 800, as described below. For the sake of brevity, these details will not be repeated below.
[0244] 8A-8G show flow diagrams illustrating process 800 for providing a context-specific user interface. In some embodiments, process 800 may be performed in an electronic device with a touch-sensitive display, one or more processors, and memory, such as device 100 (FIG. 1A), 300 (FIG. 3), 500 (FIGS. 5A-5H), or 600 (FIGS. 6A-6V). Some operations of process 800 may be combined, the order of some operations may be changed, and some operations may be omitted.
[0245] In FIG. 8A , at block 802, the device initially displays a user interface screen including a current time indicator, a first platter in a first position (e.g., on the display), and an affordance in a second position (e.g., on the display). The current time indicator reflects a first time of the current date (e.g., indicator 604 of FIG. 6K). As shown in block 804, the first platter displays a first set of information associated with a first application and obtained from the first application (e.g., see platter 606 of FIG. 6K, which is associated with a weather application and displays a description of a predicted weather change or a hazardous weather condition). As shown in block 806, the first set of information is related to a first time context of the current date (e.g., the time of the predicted weather change or the hazardous weather condition). As shown in block 808, the affordance represents an application (e.g., affordance 614 of FIG. 6K, which represents a personal assistant application). In some embodiments, the affordance includes a set of information obtained from the application that the affordance represents. In some embodiments, the set of information is updated according to data (e.g., updated data) obtained from the application that the affordance represents, and in some embodiments, the affordance is displayed in the same position on the display before and after updating the set of information.
[0246] At block 810, the device detects a first user input corresponding to a request to scroll a first user interface screen. In some embodiments, the first user input includes a rotation of a rotatable input mechanism (e.g., scroll 658a received at rotatable input mechanism 610a shown in FIG. 6K). In some embodiments, the first user input includes a swipe on a touch-sensitive display.
[0247] At block 812, in response to detecting the first user input, the device maintains the display of the affordance (see affordance 614 in FIGS. 6K and 6L) in a second position.
[0248] 8B , in response to detecting a first user input at block 814, the device displays a second platter in the first position. In some embodiments, the second platter is associated with a second application (e.g., platter 660 associated with a weather application as shown in FIG. 6L ) and displays a second set of information obtained from the second application (e.g., forecasted weather conditions and / or high and low temperatures for the current date as shown on platter 660 in FIG. 6L ). In some embodiments, the first and second applications are the same. In some embodiments, the first and second applications are different. In some embodiments, the second set of information is related to the current date (e.g., a time context of the current date that is broader than the first time context), as shown in block 818.
[0249] At block 820, the device displays, at a second time (e.g., a time different from the first time), a second user interface screen including a current time indicator, a third platter (e.g., 620 in FIG. 6M) at a first position on the display, and an affordance (e.g., 614 in FIG. 6M) at a second position on the display. As shown in block 822, the third platter is associated with a third application (e.g., a navigation application as shown in FIG. 6M) and displays a third set of information (e.g., predicted times of traffic changes, such as traffic along the user's route home) obtained from the third application. As shown in block 824, the third set of information is associated with a third time context for the current date. As shown in block 826, the current time indicator reflects a second time for the current date (e.g., indicator 604 in FIG. 6M). In some embodiments, the first and third applications are the same. In some embodiments, the first and third applications are different. By displaying a set of information obtained from different applications, some of which changes throughout the day (e.g., based on time context) and other information which remains constant throughout the day, the user can be provided with related application data (and optionally affordances to launch applications) from different applications without having to display multiple dedicated application widgets (each dedicated to and showing information obtained from a single application). Providing additional control options without cluttering the user interface with additional displayed controls (e.g., dedicated application widgets) improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0250] At block 828, the device detects a second user input corresponding to a request to scroll the second user interface screen. In some embodiments, the second user input includes a rotation of the rotatable input mechanism (e.g., scroll 658b received at rotatable input mechanism 610a shown in FIG. 6M). In some embodiments, the second user input includes a swipe on the touch-sensitive display.
[0251] In FIG. 8C, in block 830, in response to detecting a second user input, the device maintains display of the affordance (see affordance 614 in FIGS. 6M and 6N) in a second position.
[0252] In block 832, in response to detecting the second user input, the device displays a second platter (eg, platter 660 of FIG. 6N) in the first position.
[0253] At block 834, the device optionally detects a third user input corresponding to a request to scroll the second user interface screen in a second scrolling direction different from the first scrolling direction. In some embodiments, the third user input includes a rotation of the rotatable input mechanism (e.g., scroll 616a received at rotatable input mechanism 610a shown in FIG. 6B in the opposite direction compared to scroll 658a). In some embodiments, the third user input includes a swipe on the touch-sensitive display (e.g., a reverse swipe).
[0254] At block 836, the device optionally maintains the display of the affordance at the second position in response to detecting the third user input.
[0255] At block 838, the device optionally displays a fourth platter at the first position on the display in response to detecting the third user input. As shown in block 840, the fourth platter displays a fourth set of information associated with and obtained from a fourth application. In some embodiments, the first and fourth applications are the same. In some embodiments, the first and fourth applications are different. As shown in block 842, the fourth set of information is related to a fourth time context for the current date, the fourth time context being different from the third time context. In some embodiments, the fourth time context is later than the third time context for the current date.
[0256] 8D, in block 844, the device optionally displays on the display an indicator of a position along the series of positions in response to detecting the second user input. The indicator of a position along the series of positions indicates the position of the second platter along the series of viewable platters (e.g., see scroll indicator 618b in FIG. 6N).
[0257] At block 846, in response to detecting the third user input, the device optionally updates the position indicator to indicate the position of the fourth platter along the series of viewable platters. Displaying an updated scroll indicator indicating the position of the currently displayed platter along the series of viewable platters provides feedback to the user that the received user input (e.g., scrolling 616a) controls the selection of the displayed platter(s), assisting the user in navigating through the series of platter options (and indicating to the user that additional platters are viewable). Providing improved feedback improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0258] At block 848, the device optionally detects a fourth user input corresponding to a request to scroll the second user interface screen in a second scrolling direction (e.g., scrolls 616d and 616e in Figures 6E and 6F).
[0259] At block 850, the device optionally maintains the display of the affordance in the second position in response to detecting the fourth user input.
[0260] At block 852, in response to detecting the fourth user input, the device optionally displays a fifth platter in a first position on the display (e.g., platter 624 of FIG. 6F). As shown in block 854, the fifth platter displays a fifth set of information associated with and obtained from a fifth application. In some embodiments, the first and fifth applications are the same. In some embodiments, the first and fifth applications are different. As shown in block 856, the fifth set of information relates to a next day's time context (a number of calendar events, as shown on platter 624 of FIG. 6G, or tomorrow's predicted weather, as shown on platter 626 of FIG. 6G).
[0261] 8E, the device optionally detects a fifth user input at block 858. In some embodiments, the fifth user input comprises a contact on the touch-sensitive display (e.g., tap 628 of FIG. 6G). In some embodiments, the fifth user input comprises a rotation of a rotatable input mechanism.
[0262] At block 860, the device optionally maintains the display of the affordance in the second position in response to detecting the fifth user input.
[0263] At block 862, the device optionally stops displaying the fourth platter in response to detecting the fifth user input.
[0264] At block 864, the device optionally displays the third platter in the first position in response to detecting the fifth user input.
[0265] In block 866, the first and third sets of information are selected for display based at least in part on a set of one or more selection criteria. For example, as described with reference to FIG. 6J, the set of one or more selection criteria may include a time context for the current date (e.g., the time of a calendar event shown on platter 606 or a showtime associated with a movie ticket shown on platter 650 of FIG. 6J). In some embodiments, the set of one or more selection criteria may include a time context for the current date and one or more selection criteria selected from a location (e.g., a photo as depicted in platter 648 of FIG. 6J ), an application from which the first and third sets of information are obtained (e.g., presenting the user with traffic conditions from a navigation application at the time the user is to return home, as shown in platter 638 of FIG. 6J ), a number of calendar events scheduled for the current date (e.g., presenting the user with a breathing reminder after consecutive calendar events, as shown in platter 636 of FIG. 6J ), a time until the next scheduled calendar event (e.g., presenting the user with an activity reminder when the user has time for a workout before the next scheduled calendar event, as shown in platter 632 of FIG. 6J ), and one or more previous user inputs (e.g., presenting a platter associated with a return home application at a time when the user previously launched the return home application, as shown in platter 654 of FIG. 6J ). Optionally, as shown in block 868, if the set of one or more selection criteria includes proximity to the current location of the electronic device (e.g., a photo shown on platter 648 or a reminder to finish work when the device detects that the device is near a user-specified workplace shown on platter 638 of FIG. 6J), the device obtains its current location from a location sensor associated with the electronic device (e.g., GPS sensor 532 of device 600 or GPS module 135 of device 100 paired or coupled via wireless communication with device 600).Automatically generating and displaying platters via a device using one or more sets of selection criteria provides a user with information relevant to the current time (e.g., providing a user with a workout or breathing reminder when convenient, as determined according to data from a calendar application) without requiring user input (e.g., setting reminders in advance). Performing an operation when a set of conditions is met without requiring further user input improves device usability, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and additionally reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently. The use of selection criteria allows a device to display different platters at different times from different applications without requiring the display of multiple dedicated application widgets (each dedicated to showing information obtained from a single application). Providing additional control options without cluttering the user interface with additional displayed controls (e.g., dedicated application widgets) improves the usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and additionally reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0266] At block 870, the device optionally selects a second set of information for display based at least in part on a second set of one or more selection criteria. For example, the second set of selection criteria may include one or more selection criteria selected from a location and an application from which the second set of information is obtained. In some embodiments, the second set of one or more selection criteria does not include the time context of the current date. In some embodiments, the second set of information relates to a majority of the time within the current date (e.g., the weather conditions and high / low temperatures shown on platter 660 of FIGS. 6L and 6N). In some embodiments, the second set of information relates to a broader time context of the current date than the first and third time contexts (e.g., the weather conditions and high / low temperatures shown on platter 660 of FIG. 6L compared to the weather alerts shown on platter 606 of FIG. 6K). Optionally, as shown in block 872, if the second set of one or more selection criteria includes proximity to the current location of the electronic device, the device obtains its current location from a location sensor associated with the electronic device (e.g., GPS sensor 532 of device 600 or GPS module 135 of device 100 paired or coupled via wireless communication with device 600).
[0267] 8F, the device optionally detects a user input corresponding to a selection of the second platter at block 874. For example, detecting the user input may include detecting a contact with (e.g., on or near) the displayed second platter, such as tap 662a on platter 606 in FIG.
[0268] In response to detecting user input corresponding to selection of the second platter, the device optionally launches a second application at block 876. In some embodiments, launching the second application includes ceasing display of the first or second user interface screen and displaying a third user interface screen corresponding to the second application (see FIG. 6P).
[0269] At block 878, the device optionally detects user input corresponding to selection of the affordance. For example, detecting user input may include detecting contact at (e.g., on or near) the displayed affordance, such as tap 662b on complication 614 in FIG. 6Q.
[0270] In response to detecting user input corresponding to the selection of the affordance, the device optionally launches a second application at block 880. In some embodiments, launching the application includes ceasing display of the first or second user interface screen and displaying a fourth user interface screen corresponding to the application (see FIG. 6R).
[0271] At block 882, the device optionally detects user input corresponding to a request to transition to affordance editing mode. In some embodiments, the user input is a press having a duration longer than a predetermined duration (e.g., a “long press” input). In some embodiments, the device determines whether the detected press has a duration longer than a predetermined duration, and transitions to affordance editing mode in accordance with a determination that the detected press has a duration longer than the predetermined duration. In some embodiments, the user input is a contact having a characteristic intensity greater than an intensity threshold. In some embodiments, the device determines whether the detected contact has a characteristic intensity greater than a predetermined duration, and transitions to affordance editing mode in accordance with a determination that the detected press has a characteristic intensity greater than the predetermined duration.
[0272] The device optionally transitions to an affordance editing mode in response to detecting user input corresponding to a request to transition to the affordance editing mode, at block 884. In some embodiments, transitioning to the affordance editing mode includes displaying an edit mode affordance on a touch-sensitive display (e.g., affordance 672 of FIG. 6T ), as indicated in block 886, and detecting user input in response to selection of the edit mode affordance (e.g., tap 674 of FIG. 6T ), as indicated in block 888.
[0273] 8G , in block 890, in response to detecting user input corresponding to a request to enter affordance editing mode, the device optionally visually highlights the affordance to indicate the affordance editing mode. For example, the device may display an outline around the affordance, animate the outline around the affordance, animate the affordance (e.g., flashing or expanding and touching), change the color of the affordance, and / or display additional indicators to visually highlight the affordance (see outline 676a and indicator 676b in FIG. 6U ). Visually highlighting the affordance to indicate the editing mode provides the user with improved feedback both that the device has transitioned to a different mode of functionality (e.g., tapping the affordance may result in the launch of a corresponding application under normal functionality, and may select an affordance for editing while in edit mode) and that the highlighted affordance is the aspect of the interface currently selected for editing. Providing improved feedback improves device usability, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces device power usage and improves battery life by allowing the user to use the device more quickly and efficiently. In some embodiments, as shown in block 892, visually highlighting the affordance to indicate the affordance editing mode further includes displaying a positional indicator along a series of positions, the indicator indicating a first position along the series of positions (e.g., scroll indicator 680a of FIG. 6U). In some embodiments, as shown in block 894, the device updates the positional indicator to indicate the position of the currently selected option for the application represented by the affordance along a series of selectable options for the application represented by the affordance (scroll indicator 680b of FIG. 6V).
[0274] At block 896, the device optionally detects a second user input corresponding to a request to change the application represented by the affordance. For example, in some embodiments, detecting the second user input includes detecting a rotation of the rotatable input mechanism (e.g., scroll 682 received by rotatable input mechanism 610a of FIG. 6U).
[0275] At block 898, in response to detecting a second user input corresponding to a request to change the application represented by the affordance, the affordance is optionally updated to represent a different application (see affordance 784 and indicator 676b in FIG. 6V).
[0276] It should be noted that the process details described above with respect to process 800 (e.g., FIGS. 8A-8G) are also applicable in a similar manner to methods described elsewhere herein. For example, other methods described herein may include one or more of the characteristics of process 800. For example, one or more of the steps of process 800 may be combined with one or more of the steps of process 700, as described above. For the sake of brevity, these details will not be repeated below.
[0277] 9A-9L illustrate exemplary context-specific user interfaces that may be operated on device 900. Device 900 may, in some embodiments, be device 100, 300, or 500. The electronic device has a display 902 (e.g., 504). In some embodiments, display 902 is a touch-sensitive display. In some embodiments, device 900 includes a rotatable input mechanism 910 (e.g., 506) and / or input mechanisms or buttons (e.g., 508).
[0278] 9A , device 900 displays a context-specific user interface on display 902. This exemplary context-specific user interface includes a current time indicator 904 (e.g., a digital clock). Indicator 904 can optionally include various features or aspects that are independently editable or configurable by the user. Also included is a complication 908 that is associated with a calendar application and displays a set of information from the calendar application (e.g., the day of the week and the current date).
[0279] 9A also includes a non-textual graphical representation 906 of a set of information retrieved from an application. In this example, the representation 906 depicts a set of information retrieved from a weather application, weather conditions (e.g., rain) associated with a first time context for the current date. For example, the time context may be a predicted change in weather conditions or a time of predicted hazardous weather conditions. The non-textual graphical representation may include, but is not limited to, emojis, symbols, and / or cartoons. In some embodiments, the non-textual graphical representation is displayed as wallpaper or a background on the user interface screen.
[0280] To view additional graphical representations of the application information, the user rotates (e.g., by scrolling 914a) the rotatable input mechanism 910. In response to detecting scrolling 914a, the device displays a scroll indicator 912a that indicates the position of the representation 906 along the series of displayable graphical representations.
[0281] In response to detecting scroll 914a, the device displays the screen shown in FIG. 9B. On this screen, the device displays a second non-textual graphical representation 914 of a set of information obtained from a different application. In this example, representation 914 depicts a set of information obtained from a navigation application, a reminder to return home (e.g., based on an estimated driving time from work to home) associated with a second time context for the current date. For example, the second time context may be a time associated with the user's commute (e.g., a predicted time or a time associated with one or more previous user inputs indicating returning home). Scroll indicator 912b is also updated to indicate the position of representation 914 along the displayable series of graphical representations. Text 916 is also displayed, providing a textual description associated with representation 914.
[0282] A user can also swipe the touch-sensitive display to scroll through the user interface screen. For example, in response to detecting swipe 914b, device 900 displays the user interface screen shown in FIG. 9C , which includes a third non-textual graphical representation 918 of a set of information retrieved from a different application. In this example, representation 918 depicts a set of information retrieved from a calendar application, i.e., a calendar event associated with a third time context for the current date. For example, the third time context may be the time of a scheduled calendar event (e.g., a coffee date). Scroll indicator 912c is also updated to indicate the position of representation 918 along the displayable series of graphical representations. Text 920 is also displayed, providing a textual description associated with representation 918.
[0283] In some embodiments, device 900 can receive data representing text content from a set of rendered information and generate a representation to depict the text content based on the received data. For example, device 900 can receive data related to the text content of a calendar event (e.g., "Drink coffee with Ben") and generate representation 918 using a cartoon coffee cup based on or in accordance with the received data. This increases user interactivity of the device, thereby improving the human-machine interface.
[0284] In some embodiments, representations 906, 914, and 918 depict sets of information associated with progressively later temporal contexts of the current date (e.g., moving forward in time). To scroll backward in time, the user rotates 910 in the opposite direction (e.g., scrolls 914c). In response to detecting scroll 914c, device 900 displays the screen shown in FIG. 9D , which includes representation 914, with scroll indicator 912b updated to reflect representation 914's corresponding position along the series of representations.
[0285] Any of the representations 906, 914, and 918 can also function as an affordance for launching a corresponding application. As shown in FIG. 9E, a user can contact the displayed representation 906 (e.g., via a tap 922). In response to detecting the tap 922, the device 900 displays a user interface screen from a weather application (FIG. 9F). This allows the user to view additional information from the weather application.
[0286] The displayed complication can also serve as an affordance for launching a corresponding application. As shown in FIG. 9G, a user can contact the displayed complication 908 (e.g., via a tap 924). In response to detecting the tap 924, the device 900 displays a user interface screen from a calendar application (FIG. 9H). This allows the user to view additional information from the calendar application, such as the time(s) of one or more upcoming calendar event(s).
[0287] A user may wish to change the application associated with a displayed complication (or change the set of information from the application displayed by the complication). The user presses display 902 with a press 926 (FIG. 91). In some embodiments, press 926 is a press having a duration greater than a predetermined duration (e.g., a "long press" input) or a press having a characteristic intensity above a predetermined intensity threshold.
[0288] In response to detecting press 926, device 900 visually distinguishes the user interface screen to indicate edit mode ( FIG. 9J ). Device 900 alerts the user that it has entered selection mode by displaying a reduced representation 930 of the user interface screen, a name 932 corresponding to the name of the currently selected context-specific user interface type, a partial view 934 of the adjacent stored context-specific user interface (which the user could potentially select by swiping to view the full interface and tapping to select it), and an edit affordance 936. To edit the user interface, the user contacts edit affordance 936 with a tap 938.
[0289] In response to detecting tap 938, the device transitions to an edit mode and visually highlights one or more aspects of the user interface for editing ( FIG. 9K ). In this example, complication 908 is selected for editing. Device 900 visually highlights complication 908 by displaying outline 940 around complication 908 and indicator 942, which indicates the application represented by the complication (in this example, the calendar application). Device 900 also displays scroll indicator 944a, notifying the user that additional applications are selectable by scrolling and indicating the calendar application's position along the set of viewable application options. Device 900 also displays paging affordance 946, indicating that two options for editing different aspects of the user interface can be selected (e.g., by swiping). In this example, the options include one or more colors associated with the application and user interface represented by complication 908 (eg, one or more colors of the current time indicator and / or the displayed depiction).
[0290] In response to detecting scrolling 948 (rotation of 910), device 900 replaces complication 908 with complication 950 representing a stopwatch application ( FIG. 9L ). Additionally, indicator 952 is updated to indicate the stopwatch application, and scrolling indicator 944b is updated to reflect the stopwatch application's position along the set of viewable application options. In some embodiments, in response to detecting one or more additional inputs, device 900 displays a user interface screen based on display 902 shown in FIG. 9L (e.g., a depression of 910 followed by a tap on the displayed user interface in a selection mode). In some embodiments, device 900 stores the edited user interface in memory (e.g., in memory 518 and / or memory 102 of a device 100 paired or coupled via wireless communication with device 900). In some embodiments, the edited user interface screen can be subsequently selected in a selection mode (see, e.g., display 1322 in FIG. 13 ), as described, for example, in International Application PCT / US2015 / 034607, entitled “Context-Specific User Interfaces,” filed June 7, 2015, and published as International Publication No. WO 2016 / 022205.
[0291] 10A-10C show a flow diagram illustrating a process 1000 for providing a context-specific user interface. In some embodiments, process 1000 can be performed in an electronic device with a touch-sensitive display, one or more processors, and memory, such as device 100 (FIG. 1A), 300 (FIG. 3), 500 (FIGS. 5A-5H), or 900 (FIGS. 9A-9L). Some operations of process 1000 can be combined, the order of some operations can be changed, and some operations can be omitted.
[0292] In FIG. 10A , at block 1002, the device displays a user interface screen including a current time indicator (e.g., 904 of FIG. 9A ) and a first non-textual graphical representation (e.g., 906 of FIG. 9A ). As shown in block 1004, the first non-textual graphical representation represents a first set of information obtained from a first application, such as calendar events, a user photo, changing weather conditions, breathing or activity reminders, etc. (Additional sets of information are described above). As shown in block 1006, the first set of information is associated with a first time context for the current date. For example, representation 906 depicts forecasted weather conditions obtained from a weather application associated with a future time for the current date.
[0293] At block 1008, the device detects a user input. In some embodiments, the user input includes a rotation of a rotatable input mechanism (e.g., scroll 914a received on rotatable input mechanism 910 shown in FIG. 9A). In some embodiments, the first user input includes a swipe on a touch-sensitive display (e.g., swipe 914b on display 902 shown in FIG. 9B).
[0294] At block 1010, in response to detecting the user input, the device stops displaying the first non-text graphical representation.
[0295] At block 1012, the device displays a second non-textual graphical representation in response to detecting the user input (see representation 914 in FIG. 9B ). As shown in block 1014, the second non-textual graphical representation depicts a second set of information obtained from a second application. As shown in block 1016, the second set of information is associated with a second time context of the current date. For example, representation 914 depicts predicted traffic conditions obtained from a navigation application associated with the user's upcoming journey home. In some embodiments, the first and second applications are the same. In some embodiments, the first and second applications are different. In some embodiments, the first and second non-textual graphical representations are displayed as wallpaper or background on a user interface screen. In some embodiments, the first and / or second set of information(s) are selected by the device for display based on one or more selection criteria, as described above. By displaying sets of information obtained from different applications but in relation to the time(s) of the current date, the user can be provided with related application data (and optionally affordances to launch applications) from various applications without requiring the display of multiple dedicated application widgets (each dedicated to and showing information obtained from a single application). Providing additional control options without cluttering the user interface with additional displayed controls (e.g., dedicated application widgets) improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0296] 10B, at block 1018, the device optionally receives data representing textual content from the second set of information in response to detecting the user input (e.g., before displaying the second non-textual graphical representation). For example, the textual content may include one or more keywords.
[0297] At block 1020, in response to detecting user input, the device optionally generates a second non-textual graphical representation depicting the textual content based on the received data (e.g., a cup of coffee depicting the keyword “coffee,” as shown by representation 918 in FIG. 9C ). Thus, without the user having to select application data (e.g., selecting a keyword from a calendar event) or when displaying the application data, the device automatically generates a graphical representation of the textual content associated with the application data (e.g., a calendar event) and presents the representation to the user at the relevant time (e.g., based on one or more selection criteria, as described above). Performing an operation when a set of conditions is met without requiring further user input improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0298] In block 1022, in response to detecting a user input, the device optionally displays a position indicator along the series of positions (e.g., scroll indicators 912a-912c in FIGS. 9A-9D). The position indicator along the series of positions indicates the position of a second non-textual graphical representation along the displayable series of non-textual graphical representations. Displaying an updated scroll indicator indicating the position of the currently displayed representation along the displayable series of representations can provide feedback to the user that the received user input (e.g., scroll 914a in FIG. 9A, scroll 914c in FIG. 9C, or swipe 914b in FIG. 9B) controls the display of representations containing application information while assisting the user in navigating through the series of representations (while simultaneously indicating to the user that additional representations are available for display). Providing improved feedback improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs and reducing user errors when operating / interacting with the device), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0299] Detecting user input in block 1024 includes detecting a swipe (e.g., on a touch-sensitive display) in a first swipe direction. See swipe 914b on display 902 shown in FIG. 9B.
[0300] At block 1026, the device optionally detects a second swipe in a second direction different from the first swipe direction.
[0301] At block 1028, in response to detecting the second swipe, the device optionally stops displaying the second non-text graphical representation.
[0302] At block 1030, in response to detecting the second swipe, the device optionally displays a first non-textual graphical representation on the display.
[0303] In block 1032, detecting a user input includes detecting a rotation of the rotatable input mechanism in a first rotational direction (eg, scroll 914a received by rotatable input mechanism 910 shown in FIG. 9A).
[0304] At block 1034, the device optionally detects a second rotation in a second direction different from the first rotation direction.
[0305] At block 1036, in response to detecting the second rotation, the device optionally stops displaying the second non-text graphical representation.
[0306] At block 1038, in response to detecting the second rotation, the device optionally displays a first non-textual graphical representation on the display.
[0307] 10C, the device optionally displays an affordance representing a calendar application (e.g., complication 908 of FIG. 9G) at block 1040. In some embodiments, the affordance shows the current date, as shown in block 1042.
[0308] At block 1044, the device optionally detects a user input corresponding to a selection of the affordance (e.g., tap 924 on complication 908 in FIG. 9G).
[0309] In response to detecting user input corresponding to selecting the affordance, the device launches a calendar application at block 1046 (see FIG. 9H ). In some embodiments, launching the calendar application includes ceasing the display of the user interface screen and displaying a second user interface screen corresponding to the calendar application.
[0310] It should be noted that the process details described above with respect to process 1000 (e.g., FIGS. 10A-10C) are also applicable in a similar manner to methods described elsewhere herein. For example, other methods described herein may include one or more of the characteristics of process 1000. For example, one or more of the steps of process 1000 may be combined with one or more of the steps of processes 700 or 800, as described above. For the sake of brevity, these details will not be repeated below.
[0311] 11A, a user may wish to generate new images for display on the portable multifunction device, for example, to provide the user with a different experience when viewing the display multiple times per day, thereby keeping the user interested and engaged with the electronic device. Tying the generation of these new images to the time of day provides an improved approach to time management, further enhancing the time management functionality of the device.
[0312] 11A-11N illustrate exemplary context-specific user interfaces that may be operated on device 1100. In some embodiments, device 1100 may be device 100, 300, or 500. The electronic device has a display 1102 (e.g., 504). In some embodiments, display 1102 is a touch-sensitive display. In some embodiments, device 1100 includes a rotatable input mechanism 1120a (e.g., 506) and / or an input mechanism or button 1120b (e.g., 508).
[0313] 11A (top) shows an exemplary context-specific user interface displayed on display 1102 of device 1100. This user interface screen includes a current time indicator 1104 (in this example, an analog clock with hour, minute, and optional second hands). Also displayed in association with 1104 are three complications 1106, 1108, and 1110. Each of these three complications is associated with an application (an alarm, weather, and calendar application, respectively). In some embodiments, one or more of these complications display a set of information obtained from the corresponding application. For example, complication 1108 displays the current temperature obtained from the weather application, and complication 1110 displays the time and text descriptor of the next calendar event. In some embodiments, complication 1110 occupies more space on display 1102 and optionally displays more information (e.g., more text or larger image size) from the corresponding application compared to complications 1106 and 1108. This provides the user with multiple levels of detail for viewing application information. Complication 1106 graphically represents the alarm application without displaying a set of information from the alarm application (it is contemplated that a textual display could also be used).
[0314] Also displayed on this user interface screen is a background 1112a. In some embodiments, the background 1112a is displayed as wallpaper on the display 1102. In some embodiments, the background 1112a is displayed as the face of an analog clock 1104.
[0315] Background 1112a displays a kaleidoscope-type composite image 1118 (FIG. 11A, bottom) created from image 1114 (FIG. 11A, middle). Device 1100 creates composite image 1118 by selecting a portion 1116 of image 1114 and reflecting portion 1116 across multiple reflective axes. For example, device 1100 can display 12 facets of portion 1116 reflected six times, or any other combination of multiple reflective axes and multiple facets to create a suitable image.
[0316] 11A shows composite image 1118 displayed as background 1112a on display 1102 at 10:09. When a user subsequently activates the display (e.g., as described below) at 12:25, aspects of display 1102 are updated (FIG. 11B). Current time indicator 1104 is updated to reflect the current time. In some embodiments, the set(s) of information displayed by one or more complication(s) are updated, for example, according to data from a corresponding application. In this example, complication 1108 is updated to display the current temperature, and complication 1110 is updated to display the time and text descriptor of the next calendar event. Complication 1106 is not updated.
[0317] Background 1112b is also updated. Device 1100 creates composite image 1124 by selecting portion 1122 of image 1114 and reflecting portion 1122 across multiple axes of reflection (in some embodiments, the same axes of reflection used to generate composite image 1118). Thus, device 1100 can select different portions of the same image at different times, thereby increasing the variety of its displayed background.
[0318] In some embodiments, the selection of the image portion is based on the time of day. This concept is illustrated in FIG. 11C. Like FIG. 11A, display 1102 in FIG. 11C (top) shows a user interface screen with a current time indicator 1104 and complications 1106, 1108, and 1110. Analog clock 1104 indicates that the current time is, for example, the same time on a different day, as shown in FIG. 11A. Complication 1108 has been updated to show the current temperature, and complication 1110 has been updated to show the time and text descriptor of the next calendar event. Complication 1106 has not been updated.
[0319] Background 1112c in Figure 11C is the same as background 1112a in Figure 11A. For example, background 1112c is created by device 1100 by selecting portion 1116 of image 1114 and reflecting portion 1116 across multiple identical axes of reflection. Thus, the selection and / or reflection of image portions can be determined based on the time of day.
[0320] In some embodiments, device 1100 can select a portion (e.g., portion 1116) of an image (e.g., image 1114) based on one or more sets of criteria. In some embodiments, device 1100 can associate a score (e.g., an “interesting score”) with multiple portions of an image (e.g., 1114). For example, device 1100 can divide the image into multiple portions (e.g., a grid) and associate a score with each of the multiple portions. In some embodiments, the score is based on one or more of the following scoring criteria: luminance, average luminance, a derivative of luminance, and saturation values. In some embodiments, device 1100 selects the portion based on its score (e.g., the device selects a portion having a score above a predetermined threshold). This can be advantageous, for example, because some image portions may be incompatible with reflections (e.g., image portions with a monochromatic or black-and-white hue may not be considered correctable for reflections and synthetic image generation).
[0321] In some embodiments, device 1100 can apply a selection path through the image to select image portions based on the time of day. For example, the selection path can be a deterministic path that guides portion selections that repeat at regular intervals, such as every 12 hours or every 24 hours. Thus, a user can perceive the time of day based on which portions of the image are selected and displayed as a kaleidoscope. In some embodiments, the selection path includes two or more image portions having selection scores above a predetermined threshold (e.g., as described above). In some embodiments, device 1100 detects user input (e.g., rotation of a rotatable input mechanism), and in response to detecting the user input, the device selects a second image portion along the selection path for reflection and composite image generation. In some embodiments, a user can select an image portion, for example, by providing user input corresponding to the selection of the image portion.
[0322] Device 1100 can impart various reflective axes to image portions, thereby generating kaleidoscopic composite images with various patterns. An exemplary pattern based on portion 1116 of image 1114 is shown in FIG. 11D . In some embodiments, the reflective axes generate a kaleidoscopic pattern, for example, by applying multiple reflective axes to generate a set of reflective facets. In some embodiments, the reflective axes generate a radial pattern, for example, by taking a slice of an image and rotating the slice in a circle to generate multiple reflective axes. In some embodiments, the reflective axes generate a mosaic pattern, for example, by tiling a series of reflective image portions onto a background. Various types of tessellation are known and are well-known in the work of artist M.C. E. Scher. See, for example, repeating triangles that generate a sphere (e.g., the Schwartz triangle) or tiling in a hyperbolic plane (e.g., the Poincaré disk). In some embodiments, the reflective axes generate a pattern based on the Fibonacci sequence, for example, by repeating the reflective image portions with the number of spirals that follow the Fibonacci sequence (such as the number of spirals in a sunflower seed).
[0323] This context-specific user interface allows a user to launch an application by selecting a corresponding complication. For example, a user contacts complication 1108 in FIG. 11E (e.g., by tapping 1120). In response to detecting tap 1120, device 1100 updates display 1102 to show a user interface from a corresponding weather application (FIG. 11F).
[0324] A user may wish to view the original image, for example, to identify a portion selected for composite image generation. The user contacts background 1112a in FIG. 11G (e.g., by tap 1122). In response to detecting tap 1122, the device displays image 1114 as background 1124, for example.
[0325] A user may wish to edit the application as represented by the user interface complications 1108 and / or other aspects such as color (e.g., color of the second hand of 1104), intensity of the displayed information (e.g., time markings or lack thereof of 1104), etc. Additional description of editing and / or selecting context-specific user interfaces and their subcomponents can be found in International Application No. PCT / US2015 / 034607, filed June 7, 2015, entitled "Context-Specific User Interfaces," published as WO 2016 / 022205, which is incorporated herein by reference in its entirety.
[0326] In FIG. 11I , a user accesses the edit mode of device 1100 with a press 1130. The press, in some embodiments, may be a press having a duration longer than a predetermined duration (e.g., a “long press” input) or a contact having a characteristic intensity above an intensity threshold. In this example, in response to detecting press 1130, device 1100 transitions to a context-specific user interface selection mode and visually highlights the user interface screen to indicate the selection mode ( FIG. 11J ). Device 1100 alerts the user that it has transitioned to edit mode by displaying a reduced representation 1132 of the user interface screen, a name 1136 corresponding to the name of the currently selected context-specific user interface type, an adjacent stored partial view 1138 of the context-specific user interface (conceivably selectable by the user by swiping to view the full interface and tapping to select it), and an edit affordance 1134. To edit the user interface, the user contacts edit affordance 1134 with a tap 1140.
[0327] In response to detecting tap 1140, the device transitions to an editing mode and visually highlights one or more aspects of the user interface for editing ( FIG. 11K ). In this example, background 1140 is selected for editing (e.g., selecting a photo whose portion is selected). Device 1100 visually highlights background 1140 by displaying an outline around background 1140 and notifies the user that background 1140 has been selected for editing by indicator 1142, which indicates that the source photo for background 1140 is editable. Device 1100 also displays scroll indicator 1146, notifying the user that additional photos are selectable by scrolling and indicating the photo's position along the background based on the set of photos available for viewing. Device 1100 also displays paging affordance 1144, indicating that three options for editing different aspects of the user interface can be selected (e.g., by swiping). In this example, the options include the photo from which background 1140 was selected, applications associated with various complications, and the type of pattern used to generate the composite image.
[0328] To edit the photo, the user can rotate 1120a. To edit different aspects of the interface, the user swipes display 1102 via swipe 1148. In response to detecting swipe 1148, the device presents editing complication 1108 ( FIG. 11L ). Device 1100 visually highlights complication 1108 by displaying outline 1150 around complication 1108 and notifies the user that complication 1108 has been selected by indicator 1152, which indicates the application represented by the complication (in this example, a weather application). Device 1100 also notifies the user that additional applications are selectable by scrolling and displays scroll indicator 1154, indicating the weather application's position along the set of viewable application options. Furthermore, in response to detecting swipe 1148, device 1100 updates paging affordance 1144 to reflect the complication's position in the set of editable aspects.
[0329] To select a pattern to use to generate the composite image, the user swipes the display 1102 with a swipe 1156. In response to detecting the swipe 1156, the device displays the screen shown in FIG. 11M. In FIG. 11M, the background-based composite image 1158 is visually indicated by displaying an outline 1158a around the composite image 1158 and an indicator 1158b, which indicates that the pattern (e.g., the reflection axis) used to generate the composite image 1158 for the background 1140 is editable. The device 1100 also displays a scroll indicator 1160a to notify the user that a pattern can be selected by scrolling and to indicate the pattern's position along the series of selectable patterns. Furthermore, in response to detecting the swipe 1156, the device 1100 updates the paging affordance 1144 to reflect the pattern's position along the series of editable patterns.
[0330] To change the pattern, the user rotates 1120a by scrolling 1162. In response to detecting scrolling 1162, device 1100 generates composite image 1166 using the same image portion as 1158, but applying a different reflective axis pattern (FIG. 11N). Indicator 1158b is also updated to reflect the reflective axis pattern. Scroll indicator 1160b is also updated to indicate the radial pattern's position along the set of selectable pattern options. In some embodiments, the user can then exit edit mode and display the edited user interface screen. In some embodiments, upon exiting edit mode, the device saves the edited user interface screen to memory for subsequent selection in selection mode (see, e.g., display 1322 of FIG. 13), for example, as described in International Application PCT / US2015 / 034607, filed June 7, 2015, entitled "Context-Specific User Interfaces," published as WO 2016 / 022205.
[0331] 12 , it may be advantageous to allow a user to use an electronic device (e.g., a first device) to configure a context-specific user interface for a different portable multifunction device (e.g., a second device). In some embodiments, the first device has a larger display than the second device, making it easier for the user to see and / or provide touch gestures on the first device. The user may desire to configure the user interface for the second device while operating the first device without switching to the second device.
[0332] FIG. 12 shows an exemplary first electronic device 1200 and an exemplary second electronic device 1210. In some embodiments, device 1200 may be one or more of devices 100 ( FIG. 1A ), 300 ( FIG. 3 ), and / or 500 ( FIG. 5A ). For purposes of illustration, first device 1200 is a personal electronic device similar to portable multifunction device 100 as illustrated in FIG. 4A with a touch-sensitive display 1202. In some embodiments, second device 1210 may be one or more of devices 100 ( FIG. 1A ), 300 ( FIG. 3 ), and / or 500 ( FIG. 5A ). For purposes of illustration, external device 1210 is a personal electronic device similar to device 500 as illustrated in FIG. 5A with a touch-sensitive display 1212, a rotatable input mechanism, and buttons.
[0333] As shown in FIG. 12 , device 1200 can receive information via a wireless network. In some embodiments, device 1200 is coupled to device 1210 via wireless communication. FIG. 12 also shows device 1200 operating in a paired relationship with external device 1210, allowing data to be exchanged between the two devices. In a paired relationship, device 1200 and external device 1210 register with each other and can perform two-way wireless communication. In some embodiments, wireless communication for the paired relationship is performed via a peer-to-peer wireless communication protocol such as Bluetooth and / or Bluetooth Low Energy (BTLE). In some embodiments, wireless communication uses more than one wireless communication protocol. For example, WiFi can be used in addition to BTLE. In these embodiments, initial communication between the two devices can be performed via a lower-power protocol such as BTLE, even if that protocol provides a slower data transfer rate. Subsequent communication can be performed via a relatively high-speed secondary network such as WiFi. Further exemplary techniques for initiating and operating a paired relationship are described in co-pending applications, by inventor Lawrence Y. Yang et al., including International Application No. PCT / US2015 / 023699, entitled "Companion Application for Activity Cooperation," filed March 31, 2015, published as WO 2015 / 0183403; U.S. Patent Application No. 14 / 474,466, entitled "Predefined Wireless Pairing," filed September 2, 2014, published as WO 20150350865; International Application No. PCT / US2015 / 047507, entitled "Reduced-size Configuration Interface," filed August 28, 2015, published as WO 2016 / 036603; and International Application No. PCT / US2015 / 047507, entitled "Reduced-size Configuration Interface," filed March 8, 2015. This is described in a U.S. provisional patent application entitled "Interface."Referring to FIG. 12, a user may wish to use device 1200 to configure a context-specific user interface for display on device 1210.
[0334] FIG. 13 shows an exemplary electronic device 1300 and an exemplary electronic device 1320. In some embodiments, device 1300 may be one or more of devices 100 ( FIG. 1A ), 300 ( FIG. 3 ), and / or 500 ( FIG. 5A ). For purposes of illustration, first device 1300 is a personal electronic device similar to portable multifunction device 100 as illustrated in FIG. 4A with a touch-sensitive display 1302. In some embodiments, second device 1320 may be one or more of devices 100 ( FIG. 1A ), 300 ( FIG. 3 ), and / or 500 ( FIG. 5A ). For purposes of illustration, external device 1320 is a personal electronic device similar to device 500 as illustrated in FIG. 5A with a touch-sensitive display 1322 and a rotatable input mechanism 1324. Devices 1300 and 1320 are coupled via wireless communication. In some embodiments, devices 1300 and 1320 are in a paired relationship, for example, as described with reference to FIG.
[0335] Device 1320 has access to a library of context-specific user interfaces for display on display 1322. For example, the library can be stored in memory of device 1320, can be stored in memory of device 1300 and accessible to device 1320, and / or can be stored on an external server accessible to devices 1300 and 1320. In some embodiments, the context-specific user interfaces are stored in the library as unique or complete assets. In some embodiments, the library stores the context-specific user interfaces as configurations to be rendered for display by device 1320 (e.g., by rendering a set of graphic assets stored in memory according to a configuration that specifies the particular graphic asset(s) to be used and their placement within the user interface).
[0336] 13 also illustrates a user interface in device 1300 for selecting, organizing, and / or editing context-specific user interfaces from a stored library for display on device 1320. The user interface screen shown on display 1302 includes a representation 1304 of device 1320, which optionally includes a representation of the device name, size, and / or other device characteristics. In some embodiments, representation 1304 functions as an affordance that, when contacted by a user, displays additional information and / or functionality related to device 1320, such as options for pairing or unpairing device 1320 with other electronic devices. The user interface screen shown on display 1302 includes a complication bar 1306. In some embodiments, complication bar 1306 allows a user to view a list of complications that can be configured for display as part of the context-specific user interface from a library and as an optional affordance for selecting and / or editing a particular complication. In some embodiments, the user scrolls (e.g., by swiping horizontally) on the depicted user interface screen to view options for a particular complication. Screen 1302 further includes affordance 1308 for viewing one or more user interfaces from a library. In some embodiments, the user touches affordance 1308, and in response, device 1300 displays the user interface depicted on screen 1302.
[0337] Also shown on the user interface screen of display 1302 are preview images 1310, 1312, and 1314. Preview images 1310, 1312, and 1314 represent context-specific user interfaces from the library for display on device 1320. As represented by preview images 1310 and 1312, both corresponding user interfaces include a clock. Additionally, the user interface represented by 1312 includes a complication, as described herein. In some embodiments, the preview image(s) are displayed with an associated text element indicating the type of clock face for the corresponding context-specific user interface (e.g., "Sun" for the user interface represented by 1310, "Utilities" for the user interface represented by 1312, etc.). The user interface screens shown on displays 1302 and 1322 indicate to the user the user interfaces stored in the library and the order or sequence of the user interfaces within the library.
[0338] In some embodiments, the preview image includes a representation of one or more complications of the user interface. For example, preview image 1312 includes representation 1316, which represents the user interface complication represented by 1312. In this example, representation 1316 represents a complication that displays an affordance representing a weather application. As described above, a complication can retrieve data and display information obtained from an associated application (optionally, the information is updated according to updates to the data). In some embodiments, device 1300 retrieves “live” data from the weather application and displays updated information according to updates to the data in representation 1316 (e.g., the sun depicted in 1316 indicates current weather conditions and represents live data obtained from the weather application). Advantageously, this allows a user to visualize what the user interface will look like when displayed on device 1320 at the current time. In other embodiments, device 1300 displays a “placeholder” representation of the application data. For example, the sun depicted at 1316 can be an icon or affordance that presents the user with the content of the live data that would be displayed in the complication. For example, the placeholder may be installed as part of an app and / or specified as part of a software development kit used to develop the application. Advantageously, this allows the user to understand the functionality of the complication within the user interface, but does not require processor resources and / or communication bandwidth to obtain the live data to generate a preview image.
[0339] Preview image 1314 is shown in partial view, alerting the user that additional preview images representing the remainder of the stored library are viewable in this interface, for example, by scrolling. In some embodiments, the user swipes (e.g., horizontally swipes) the display at one or more of preview images 1310, 1312, and 1314, and in response to detecting the swipe, device 1300 scrolls the displayed preview images to reveal one or more additional preview images representing user interfaces from the library.
[0340] In some embodiments, information in one or more preview images shown on display 1302 and / or 1322 is updated live, e.g., while a user is in a watch face selection mode of device 1320 or while viewing a preview image on device 1320. For example, in some embodiments, the representation of a clock at one or more of 1310, 1312, 1314, 1330, 1332, and / or 1334 is rendered live, e.g., the preview image displays the current time. In some embodiments, the representation of one or more complications at one or more of 1310, 1312, 1314, 1330, 1332, and / or 1334 is rendered live, e.g., the preview image displays current complication data (e.g., information from an application that is updated according to updates to application data). In some embodiments, a representation of one or more complications on a currently centered preview image (e.g., displayed in a full view such as 1310 or 1330) is rendered live, while a representation of one or more complications on a currently non-centered preview image (e.g., displayed in a partial view such as 1312, 1314, 1332, or 1334) is not rendered live (e.g., the representation displays placeholder data or data obtained at a previous refresh, such as the last time the represented user interface was displayed or the last time the preview image was centered on the display).In some embodiments, representations of one or more complications on the currently centered preview image (e.g., displayed in full view, such as 1310 or 1330) and representation(s) on preview images immediately neighboring the currently centered preview image are rendered live (e.g., 1312, 1314, 1332, or 1334), while representations of one or more complications on preview images that are not currently centered and not adjacent to the currently centered preview image are not rendered live (e.g., they display placeholder data or data obtained at a previous refresh, such as the last time the represented user interface was displayed or the last time the preview image was centered on the display). In some embodiments, representations that are not rendered live may be rendered using updated data at longer intervals than representations that are rendered live. In some embodiments, one or more elements or user interface objects represented in a preview image other than a clock or a preview image representing a complication may be shown as static elements (e.g., not rendered according to updated data).
[0341] FIG. 14A shows an exemplary electronic device 1400. In some embodiments, device 1400 may be one or more of devices 100 (FIG. 1A), 300 (FIG. 3), and / or 500 (FIG. 5A). For purposes of illustration, device 1400 is a personal electronic device similar to portable multifunction device 100 as illustrated in FIG. 4A with a touch-sensitive display 1402. In some embodiments, device 1400 is in a paired relationship (e.g., as described with reference to FIG. 12) with a second device (e.g., 1210 or 1320), which may be one or more of devices 100 (FIG. 1A), 300 (FIG. 3), and / or 500 (FIG. 5A).
[0342] Display 1402 includes a preview image 1404 of a context-specific user interface, similar to that described in FIGS. 11A-11N, for display on a second device. Also displayed are a number of editable aspects of the context-specific user interface. In this example, a user can edit the images used to create a composite image for a background, application, and / or set of information displayed by one or more complications, as well as the type of pattern (e.g., type of reflective axis) used to generate the composite image. Representations of selectable options for these editable aspects are also displayed. For example, representations 1406, 1408, and 1410 represent images that can be selected for composite image generation. In some embodiments, one or more of the images are system-specified or curated images. In some embodiments, one or more of the images are user-specified images, e.g., photographs captured by the user. Representations 1412, 1414, and 1416 represent the type of pattern (e.g., reflective axis) that can be used to generate a composite image-based background (e.g., as described above).
[0343] 14B and 14C illustrate the selection of an option for a pattern. A kaleidoscope pattern is currently selected for generation of a composite image, which is displayed as background 1462a on display 1452 of device 1450 in FIG. 14B. Display 1452 also shows complications 1456, 1458, and 1460 and a current time indicator 1454. The screen on display 1402 of device 1400 also informs the user of the currently selected option using a representation 1404 that represents the user interface currently selected for display by device 1450.
[0344] 14B, a user selects representation 1414 depicting a radial pattern (e.g., a reflective axis). In this example, the user contacts representation 1414 displayed on display 1402 of device 1400 with a tap 1420. In some embodiments, representation 1414 further includes representations of one or more of complications 1456, 1458, and 1460 and a current time indicator 1454.
[0345] In response to detecting tap 1420, device 1400 updates representation 1404 with a representation of a synthetic image generated using the radial pattern of reflections ( FIG. 14C ). In some embodiments, representation 1404 represents the same interface displayed by 1450. In some embodiments, representation 1404 represents an interface including a placeholder synthetic image-based background that represents the radial pattern to the user. This informs the user at device 1400 of how the selected option will change the user interface screen displayed by device 1450. In some embodiments, representation 1404 further includes representations of one or more of complications 1456, 1458, and 1460 and a current time indicator 1454 (e.g., using live application data or placeholder data).
[0346] Additionally, in response to detecting tap 1420 on device 1400, device 1450 updates background 1462b to generate a composite image using a radial pattern (e.g., the reflective axes of FIG. 14C ). Compared to background 1462a, background 1462b is based on the same image portion but is reflected across different reflective axes (e.g., in a radial pattern). For example, in response to detecting tap 1420, device 1400 can send instructions to device 1450 to generate a composite image using a radial pattern.
[0347] 14D and 14E illustrate the selection of an image for a background. A photograph of a bridge is currently selected for generation of a composite image, which is displayed as background 1462a on display 1452 of device 1450 in FIG. 14D. Display 1452 also shows complications 1456, 1458, and 1460 and a current time indicator 1454. The screen on display 1402 of device 1400 also informs the user of the currently selected option using a representation 1404 that represents the user interface currently selected for display by device 1450.
[0348] 14D, the user selects representation 1408, which depicts a different image of a beach. In this example, the user contacts representation 1408, which is displayed on display 1402 of device 1400, with a tap 1430.
[0349] In response to detecting tap 1420, device 1400 updates representation 1404 with a representation of a synthetic image generated using the radial pattern of reflections ( FIG. 14E ). In some embodiments, representation 1404 represents the same interface displayed by 1450. In some embodiments, representation 1404 represents an interface including a placeholder synthetic image-based background that represents the radial pattern to the user. This informs the user at device 1400 of how the selected option will change the user interface screen displayed by device 1450. In some embodiments, representation 1404 further includes representations of one or more of complications 1456, 1458, and 1460 and current time indicator 1454 (e.g., using live application data or placeholder data).
[0350] Further, in response to detecting tap 1430 on device 1400, device 1450 updates background 1462c to generate a composite image using a photograph of a beach (FIG. 14E). Compared to background 1462a, background 1462c uses the same multiple reflective axes (e.g., in a kaleidoscope pattern) but is applied to different image portions (e.g., portions of the photograph of the beach instead of the photograph of the bridge). For example, in response to detecting tap 1430, device 1400 can send instructions to device 1450 to generate a composite image using a photograph of the beach.
[0351] 15A-15E show a flow diagram illustrating a process 1500 for providing a context-specific user interface. In some embodiments, the steps of process 1500 can be performed in an electronic device with a touch-sensitive display, one or more processors, and memory, such as device 100 (FIG. 1A), 300 (FIG. 3), 500 (FIGS. 5A-5H), 1100 (FIGS. 11A-11N), 1400 (FIGS. 14A-14E), or 1450 (FIGS. 14A-14E). Some operations of process 1500 can be combined, the order of some operations can be changed, and some operations can be omitted.
[0352] 15A, the device displays a user interface screen including a current time indicator (e.g., indicator 1104 of FIG. 11A) and a background at block 1502. In some embodiments, the current time indicator includes an analog or digital clock.
[0353] In block 1504, the device detects a change in time.
[0354] In block 1506, in response to detecting a change over time, the device selects a first portion of the image (e.g., portion 1116 of image 1114 in FIG. 11A ). In some embodiments, the first portion is smaller than the entire image. In some embodiments, the image is a system-specified image or a curated image. In some embodiments, the image is a user-specified image, such as a user photograph (e.g., stored on the device or a device wirelessly communicating with the device). In some embodiments, the device automatically selects the first portion of the image (e.g., in the absence of user input corresponding to the selection of an image portion). Using the device to automatically select a portion of the image increases the variety of backgrounds that can be displayed by the device (e.g., multiple backgrounds can be displayed throughout a given day without the user having to select one each time the background changes). Performing an operation when a set of conditions is met without requiring further user input improves the usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing the device's power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0355] In response to detecting the change in time, the device reflects the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions, at block 1508. In some embodiments, the first plurality of reflective axes are based on a pattern selected from a kaleidoscope, a radial reflection, a Fibonacci sequence, and a mosaic (see FIG. 11D ).
[0356] At block 1510, in response to detecting the change in time, the device replaces the background with a first composite image (eg, background 1118 of FIG. 11A) that includes a first plurality of reflective portions.
[0357] In block 1512, the device detects a second change over time.
[0358] In response to detecting a second temporal change at block 1514, the device selects a second portion of the image (e.g., portion 1122 of image 1114 in FIG. 11B ). In some embodiments, the second portion is smaller than the entire image. In some embodiments, the second portion is different from the first portion. In some embodiments, the image is a system-specified image or a curated image. In some embodiments, the image is a user-specified image, such as a user photograph (e.g., stored on the device or a device wirelessly communicating with the device). In some embodiments, the device automatically selects the second portion of the image (e.g., in the absence of user input corresponding to the selection of an image portion). Using the device to automatically select a portion of the image increases the variety of backgrounds that can be displayed by the device (e.g., multiple backgrounds can be displayed throughout a given day without the user having to select one each time the background changes). Performing an operation when a set of conditions is met without requiring further user input improves the usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing the device's power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0359] In response to detecting a second change in time, at block 1516, the device reflects the second portion across a second plurality of reflective axes to generate a second plurality of reflective portions. In some embodiments, the first plurality of reflective axes and the second plurality of reflective axes are the same. In some embodiments, the second plurality of reflective axes is based on a pattern selected from a kaleidoscope, a radial reflection, a Fibonacci sequence, and a mosaic (see FIG. 11D ).
[0360] In block 1518, in response to detecting a second change in time, the device replaces the background with a second composite image (e.g., background 1124 of FIG. 11B) that includes a second plurality of reflective portions.
[0361] 15B , at block 1520, a data file encoding the second composite image is optionally generated. This allows the device to create and store a new data file encoding the image without requiring multiple user inputs, for example, to select an image, select a reflection axis, and reflect image portions. Performing an operation when a set of conditions is met without requiring further user input improves the usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing the device's power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0362] At block 1522, the device optionally stores the data file in memory. In some embodiments, the data file is stored in memory of the device (e.g., device 1320 of FIG. 13). In some embodiments, the data file is stored in memory of a device that communicates wirelessly with the device (e.g., device 1300 of FIG. 13).
[0363] At block 1524, the device optionally selects a first portion of the image based on the time a first time change is detected, and the device optionally selects a second portion of the image based on the time a second time change is detected. In some embodiments, as shown in block 1526, the device applies a selection path through the image (e.g., a deterministic path that selects image portions based on time of day) to select a second portion of the image based on the time a second time change is detected. In some embodiments, as shown in block 1528, the selection path includes a predetermined path of portions through the image that is repeated at regular intervals (e.g., 12 or 24 hours). Thus, the device displays an image-based background that indicates the time of day (e.g., because the same portion is selected at the same time, or because the same portion is selected twice a day, such as at 10:00 AM and 10:00 PM). Providing improved feedback improves the usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing the device's power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0364] The device optionally detects a third time change at block 1530. In some embodiments, the third time change is detected at the same time as the second time change but on a different day.
[0365] At block 1532, the device optionally displays a second composite image (eg, background 1118 of FIG. 11C) in response to detecting the third time change.
[0366] In block 1534, in response to detecting the second time change, the device optionally updates a current time indicator (e.g., indicator 1112b in FIG. 11B) to reflect the current time when the second time change was detected.
[0367] In some embodiments, the device is coupled via wireless communication to a second electronic device that includes a display, one or more processors, and memory. In some embodiments, the second electronic device is a personal electronic device similar to portable multifunction device 100 as illustrated in FIG. 4A with touch-sensitive display 1402. In some embodiments, the second electronic device is in a paired relationship (e.g., as described with reference to FIG. 12) with a device that may be one or more of devices 100 (FIG. 1A), 300 (FIG. 3), and / or 500 (FIG. 5A).
[0368] 15C, at block 1536, the second electronic device optionally displays a second user interface screen having a first preview image representing the first image and a second preview image representing the second image (see, e.g., representations 1406 and 1408 on display 1402 in FIG. 14D). In some embodiments, this occurs after the first device replaces the first composite image with the second composite image.
[0369] At block 1538, the second electronic device optionally detects user input corresponding to selection of the second preview image. In some embodiments, detecting user input corresponding to selection of the second preview image includes detecting contact on a touch-sensitive display of the second electronic device at (e.g., on or near) the displayed second preview image (e.g., tap 1430 of FIG. 14D ). In some embodiments, the second image is a user photograph stored in memory of the second electronic device. In some embodiments, detecting user input corresponding to selection of the second preview image includes displaying a third user interface screen including a plurality of preview images (e.g., a user interface screen of image management module 144). In some embodiments, the plurality of preview images represents a plurality of user photographs. In some embodiments, the plurality of preview images includes the second preview image.
[0370] At block 1540, in response to detecting a user input corresponding to a selection of the second preview image, the first or second electronic device optionally selects a portion of the second image.
[0371] In response to detecting user input corresponding to a selection of the second preview image at block 1542, the first or second electronic device optionally reflects portions of the second image across a plurality of reflective axes to generate a third plurality of reflective portions. In some embodiments, the plurality of reflective axes is the same as the second plurality of reflective axes. In some embodiments, the plurality of reflective axes is different from the second plurality of reflective axes.
[0372] At block 1544, in response to detecting user input corresponding to selection of the second preview image, the first device optionally replaces the second composite image with a third composite image including a third plurality of reflective portions (see background 1462c on display 1452 in FIG. 14E ). In some embodiments, in response to detecting user input corresponding to selection of the second preview image, the second electronic device transmits data to the first device including instructions to replace the second composite image with the third composite image including the third plurality of reflective portions.
[0373] At block 1546, the second electronic device optionally displays (e.g., as part of the second user interface screen) a preview image (e.g., representation 1404 of FIG. 14D ) representing the first user interface screen on the first electronic device. In some embodiments, the preview image includes a representation of the second composite image.
[0374] In FIG. 15D, at block 1548, the second electronic device, in response to detecting user input corresponding to selection of the second preview image, optionally updates the preview image by replacing a representation of the second composite image with a representation of the third composite image (see representation 1404 in FIGS. 14D and 14E).
[0375] In block 1550, the second electronic device optionally displays (e.g., as part of a second user interface screen) affordances representing the pattern of reflective axes (e.g., representations 1412, 1414, and 1416 on display 1402 of FIG. 14B).
[0376] At block 1552, the second electronic device optionally detects a user input (e.g., tap 1420 in FIG. 14B) corresponding to a selection of an affordance representing a pattern of reflective axes.
[0377] In response to detecting a user input corresponding to a selection of the affordance at block 1554, the first or second electronic device optionally reflects portions of the second image across a second plurality of reflective axes to generate a fourth plurality of reflective portions. In some embodiments, the fourth plurality of reflective portions is different from the third plurality of reflective portions.
[0378] At block 1556, in response to detecting user input corresponding to the selection of the affordance, the first device replaces the third composite image with a fourth composite image including a fourth plurality of reflective portions (e.g., background 1462b of FIG. 14C ). In some embodiments, in response to detecting user input corresponding to the selection of the affordance, the second electronic device optionally updates the preview image by replacing a representation of the second composite image with a representation of the fourth composite image (see representation 1404 of FIGS. 14B and 14C ). In some embodiments, in response to detecting user input corresponding to the selection of the affordance, the second electronic device transmits data to the first device including instructions to replace the third composite image with the fourth composite image including the fourth plurality of reflective portions.
[0379] At block 1558, the device optionally displays an affordance representing an application (e.g., complication 1108 of FIG. 11E). As shown in block 1560, in some embodiments, the affordance includes a set of information obtained from the application that the affordance represents.
[0380] In FIG. 15E, at block 1562, the device optionally detects a user input corresponding to a selection of the affordance (eg, tap 1120 in FIG. 11E).
[0381] At block 1564, in response to detecting user input corresponding to selection of the affordance, the device optionally launches the application represented by the affordance (see FIG. 11F ). In some embodiments, launching the application represented by the affordance includes ceasing display of the first user interface screen and displaying a third user interface screen corresponding to the application represented by the affordance.
[0382] At block 1566, the device optionally receives data from the application represented by the affordance.
[0383] At block 1568, the device optionally updates the set of information displayed by the affordance according to the received data (see complication 1108 in FIGS. 11A-11C or complication 1110 in FIGS. 11A-11C). In some embodiments, the affordance is displayed in the same position on the display before and after updating the set of information. Thus, the affordance can display updated information from an application without requiring the user to launch the application and view the updated information. Performing an operation when a set of conditions is met without requiring further user input improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0384] At block 1570, the device optionally detects a contact (e.g., on a touch-sensitive display) (see tap 1122 in FIG. 11G). In some embodiments, the contact occurs in the displayed second composite image.
[0385] At block 1572, the device optionally displays the image (eg, by replacing the image with the second composite image) (see image 1124 in FIG. 11H).
[0386] It should be noted that the process details described above with respect to process 1500 (e.g., FIGS. 15A-15E) are also applicable in a similar manner to methods described elsewhere herein. For example, other methods described herein may include one or more of the characteristics of process 1500. For example, one or more of the steps of process 1500 may be combined with one or more of the steps of process 1600, as described below. For the sake of brevity, these details will not be repeated below.
[0387] 16A-16D show a flow diagram illustrating a process 1600 for providing a context-specific user interface. In some embodiments, process 1600 can be performed in an electronic device with a touch-sensitive display, one or more processors, and memory, such as device 100 (FIG. 1A), 300 (FIG. 3), 500 (FIGS. 5A-5H), or 1100 (FIGS. 11A-11N). Some operations of process 1600 can be combined, the order of some operations can be changed, and some operations can be omitted.
[0388] 16A, in block 1602, the device optionally displays a user interface screen including a current time indicator (e.g., 1104 in FIG. 11A) and a first composite image (e.g., similar to 1158 in FIG. 11M). The image is created by the electronic device (e.g., automatically) by selecting a first portion of the image (block 1604), reflecting the first portion across a first plurality of reflective axes to generate a first plurality of reflective portions (block 1606), and displaying the first plurality of reflective portions (block 1608).
[0389] At block 1610, the device detects user input corresponding to a request to edit the first composite image.
[0390] At block 1612, in response to detecting the user input, the device stops displaying the first composite image.
[0391] In response to detecting user input at block 1614, the device displays a second composite image (e.g., similar to 1166 in FIG. 11N). The image is created (e.g., automatically) by the electronic device by selecting a second portion of the image (block 1616), reflecting the second portion across a second plurality of reflective axes to generate a second plurality of reflective portions (block 1618), and displaying the second plurality of reflective portions (block 1620). In some embodiments, the first and second plurality of reflective axes are different (e.g., based on different patterns). Automatically selecting a portion of the image using the device increases the variety of backgrounds that can be displayed by the device without requiring the user to select a portion each time the image changes. Performing an operation when a set of conditions is met without requiring further user input improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate input when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0392] In FIG. 16B , at block 1622, the device optionally detects user input (e.g., press 1130 in FIG. 11I ) in response to a request to enter a composite image editing mode of the electronic device. In some embodiments, the user input is a press having a duration longer than a predetermined duration (e.g., a “long press” input). In some embodiments, the device determines whether the detected press has a duration longer than a predetermined duration, and enters the affordance editing mode in accordance with a determination that the detected press has a duration longer than the predetermined duration. In some embodiments, the user input is a contact having a characteristic intensity greater than an intensity threshold. In some embodiments, the device determines whether the detected contact has a characteristic intensity greater than a predetermined duration, and enters the affordance editing mode in accordance with a determination that the detected press has a characteristic intensity greater than the predetermined duration.
[0393] At block 1624, the device optionally transitions to the composite image editing mode in response to detecting user input corresponding to a request to transition to the composite image editing mode. In some embodiments, transitioning to the composite image editing mode includes displaying an edit mode affordance on the touch-sensitive display (e.g., affordance 1134 of FIG. 11J ), as shown in block 1626, and detecting user input in response to selection of the edit mode affordance (e.g., tap 1140 of FIG. 11J ), as shown in block 1628.
[0394] At block 1630, in response to detecting user input corresponding to a request to enter the composite image editing mode, the device optionally visually highlights the composite image to indicate the composite image editing mode. For example, the device may display an outline around the affordance, animate the outline around the affordance, animate the affordance (e.g., flash or expand and touch), change the color of the affordance, and / or display additional indicators to visually highlight the affordance (see outline 1140 in FIG. 11K). Visually highlighting the composite image to indicate the editing mode provides the user with improved feedback both that the device has transitioned to a different mode of functionality (e.g., tapping on the composite image can result in the display of the original image while in a mode other than editing mode, and that the composite image for editing while in editing mode) and that the highlighted composite image is the aspect of the interface currently selected for editing. Providing improved feedback improves device usability, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces device power usage and improves battery life by allowing the user to use the device more quickly and efficiently. In some embodiments, as shown in block 1632, visually highlighting the composite image to indicate the composite image editing mode further includes displaying a position indicator along a series of positions, where the indicator indicates a first position along the series of positions (e.g., scroll indicator 1160a of FIG. 11M). In some embodiments, as shown in block 1634, the device updates the position indicator to indicate a second position along the series of positions, where the position indicator along the series of positions indicates the position of a currently selected option for the composite image pattern along a series of selectable options for the composite image (see scroll indicator 1160b of FIG. 11N).Displaying an updating scroll indicator that indicates the position of the currently displayed composite image along the series of selectable patterns provides the user with feedback that the received user input (e.g., scroll 1162 in FIG. 11M ) controls the selection of the composite image generation pattern while assisting the user in navigating through the series of patterns (while simultaneously indicating to the user that additional patterns are selectable). Providing improved feedback improves device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0395] At block 1636, the device optionally detects user input corresponding to a request to select an image (e.g., after visually highlighting the displayed composite image to indicate an image selection mode). For example, in some embodiments, detecting user input corresponding to a request to select an image includes detecting a swipe on the display (e.g., swipe 1148 or 1156 in FIGS. 11K and 11L).
[0396] In FIG. 16C, at block 1638, the device optionally stops displaying the second plurality of reflective portions in response to detecting user input corresponding to a request to select an image.
[0397] At block 1640, the device optionally selects (e.g., automatically by the device) a first portion of a second image that is different from the first image in response to detecting user input corresponding to a request to select an image.
[0398] At block 1642, in response to detecting user input corresponding to a request to select an image, the device optionally reflects a first portion of the second image across a plurality of reflective axes to generate a third plurality of reflective portions.
[0399] At block 1644, the device optionally displays a third composite image including a third plurality of reflective portions in response to detecting user input corresponding to a request to select an image (e.g., background 1166 of FIG. 11N).
[0400] At block 1646, the device optionally displays an affordance representing the application (e.g., complication 1108 in FIG. 11E). As shown in block 1648, in some embodiments, the affordance includes a set of information obtained from the application that the affordance represents.
[0401] In block 1650, the device optionally detects a user input corresponding to a selection of the affordance (e.g., tap 1120 in FIG. 11E).
[0402] 16D, the device optionally launches the application represented by the affordance at block 1652. In some embodiments, launching the application includes ceasing to display the first user interface screen and displaying a user interface screen corresponding to the application (see FIG. 11F).
[0403] At block 1654, the device optionally receives data from the application represented by the affordance.
[0404] At block 1656, the device optionally updates the set of information displayed by the affordance according to the received data (see complication 1108 in FIGS. 11A-11C). In some embodiments, the affordance is displayed in the same position on the display before and after updating the set of information.
[0405] In block 1658, the device detects a swipe, for example, after visually highlighting the displayed composite image to indicate a composite image editing mode (eg, swipe 1148 of FIG. 11K).
[0406] At block 1660, the device optionally visually highlights the displayed affordance to indicate the affordance editing mode. For example, the device may display an outline around the affordance, animate the outline around the affordance, animate the affordance (e.g., flash or expand and touch), change the color of the affordance, and / or display additional indicators to visually highlight the affordance (see outline 1150 and indicator 1154 in FIG. 11L). Visually highlighting the affordance to indicate the editing mode provides the user with improved feedback both that the device has transitioned to a different mode of functionality (e.g., tapping the affordance can result in the launch of an application while in a mode other than editing mode, and can select an affordance for editing while in editing mode) and that the highlighted affordance is the aspect of the interface currently selected for editing. Providing improved feedback improves the usability of the device, making the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing the device's power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0407] In block 1662, the device optionally detects a user input corresponding to a request to edit the affordance (e.g., scrolling 682 in FIG. 6U).
[0408] At block 1664, the device, in response to detecting user input corresponding to the request to edit the affordance, optionally updates the affordance to represent the second application (e.g., complication 684 of FIG. 6V). In some embodiments, the affordance includes a second set of information obtained from the second application. In some embodiments, the second set of information is updated according to data from the second application. In some embodiments, the first and second applications are different (e.g., personal assistant application vs. remote application in FIGS. 6U-6V).
[0409] At block 1666, in response to detecting user input corresponding to a request to edit the affordance, the device optionally updates the affordance to include a second set of information obtained from the application. In some embodiments, the second set of information is updated according to data from the application. In some embodiments, the first and second sets of information are different. Thus, a user can edit the set of application information displayed from multiple options (e.g., multiple times from a world clock application or multiple stock prices from a stock prices application).
[0410] It should be noted that the process details described above with respect to process 1600 (e.g., FIGS. 16A-16D) are also applicable in a similar manner to methods described elsewhere herein. For example, other methods described herein may include one or more of the characteristics of process 1600. For example, one or more of the steps of process 1600 may be combined with one or more of the steps of process 1500, as described above. For the sake of brevity, these details will not be repeated below.
[0411] In any of the embodiments described herein, the device (e.g., 500, 600, 900, 1100, 1210, 1320, and / or 1450) may be a portable or small multifunction device (e.g., a smartwatch electronic device) having one or more attachment mechanisms. FIGS. 17A and 17B show an example device 1700. Device 1700 may be device 100, 300, 500, 600, 900, 1100, 1210, 1320, or 1450 in some embodiments. The electronic device has a display 1702 (e.g., 504). In some embodiments, display 1702 is a touch-sensitive display. In some embodiments, device 1700 includes a rotatable input mechanism and / or input mechanisms or buttons.
[0412] 17A and 17B illustrate that device 1700 can detect a user's motion of the device and, in response to detecting the user's motion, display a user interface screen (e.g., as described herein). In some embodiments, the user's motion can be a lifting and / or rotation of the user's wrist, or other motion indicating the user is raising the display to a viewing position. These motions could be detected using, for example, an accelerometer (e.g., 534), a gyroscope (e.g., 536), a motion sensor (e.g., 538), and / or a combination thereof. In any of the context-sensitive watch faces described herein, the device motion can be a user input that activates the display.
[0413] In Figure 17A, the display of device 1700 is powered off. In Figure 17B, in response to detecting a lift and / or rotation of the user's wrist, device 1700 powers the display and displays a user interface screen. For any of the user interface screens described above, the display can be powered off before displaying the user interface screen, and the device can power the display and display the user interface screen in response to detecting a user movement of the device.
[0414] 18 shows a flow diagram illustrating a process 1800 for displaying a context-specific user interface. In some embodiments, process 1800 may be performed in an electronic device with a touch-sensitive display, one or more processors, and memory, such as device 100 (FIG. 1A), 300 (FIG. 3), 500 (FIGS. 5A-5H), 600 (FIGS. 6A-6V), 900 (FIGS. 9A-9L), 1100 (FIGS. 11A-11N), 1450 (FIGS. 14B-14E), or 1900 (FIGS. 19A-19F). Some operations of process 1800 may be combined, the order of some operations may be changed, and some operations may be omitted.
[0415] In FIG. 18, in block 1802, the device powers off the display (eg, display 1702 of FIG. 17A).
[0416] In block 1804, the device 1700 detects a user movement of the device (eg, lifting and / or rotating the wrist) (see FIGS. 17A and 17B).
[0417] At block 1806, in response to detecting movement of the user of the device, the device powers a display (eg, display 1702 of FIG. 17B).
[0418] In block 1808, in response to detecting user movement of the device, the device displays a user interface screen (e.g., as described above) (e.g., display 1702 of FIG. 17B). Thus, rather than requiring an additional user input to power on the display when the user views it, the device can automatically display the user interface screen when the user raises the device to a viewing position. Reducing the number of inputs required to perform an...
Claims
1. An electronic device in communication with a display and one or more input devices, Detecting a first user input via the one or more input devices; and displaying, via the display, a user interface including a first platter in response to detecting the first user input; pursuant to determining that a first set of selection criteria is satisfied, the first platter contains a first set of information, wherein the first set of selection criteria includes at least one criterion satisfied based on one or more factors selected from the group consisting of a current location of the electronic device, data from a first plurality of applications, a number of calendar events scheduled for the current date, a time until the next scheduled event, and proximity to another device; pursuant to determining that a second set of selection criteria different from the first set of selection criteria is satisfied, the first platter includes a second set of information different from the first set of information, wherein the second set of selection criteria includes at least one criterion satisfied based on one or more factors selected from the group consisting of the current location of the electronic device, data from a second plurality of applications, a number of calendar events scheduled for the current date, a time until the next scheduled event, and proximity to another device. method.
2. The method of claim 1 , wherein the first set of selection criteria includes criteria that are met based on a time context of the electronic device.
3. The method of claim 1 or 2, wherein the first set of selection criteria includes criteria that are met based on one or more previous user inputs.
4. The method of claim 1 , wherein the user interface further comprises a time display.
5. 5. The method of claim 1, further comprising: in response to detecting the first user input, displaying a partial view of a second platter, the partial view of the second platter being displayed such that a portion of the second platter appears to be behind the first platter.
6. In response to detecting the first user input, the first platter is displayed in a first portion; detecting a second user input via the one or more input devices; In response to detecting the second user input: displaying the first platter in a second portion different from the first portion; and displaying a full view of the second platter in the first portion via the display; and The method of claim 5 further comprising:
7. 7. The method of claim 5 or 6, wherein, in accordance with determining that a third set of selection criteria is satisfied, the second platter includes a third set of information that is different from the set of information included on the first platter, the third set of selection criteria including at least one criterion that is satisfied based on one or more factors selected from the group consisting of the current location of the electronic device, data from a third plurality of applications, a number of calendar events scheduled for the current date, time until the next scheduled event, proximity to another device, time context, and one or more previous user inputs.
8. 8. The method of claim 5, wherein the partial view of the second platter is displayed at a size smaller than the size at which the first platter is displayed.
9. 9. The method of claim 5, wherein the display is a touch-sensitive display and the second user input is a swipe gesture on the display.
10. The method of claim 5 , wherein the one or more input devices include a rotatable input mechanism, and the second user input includes rotation of the rotatable input mechanism.
11. 11. The method of claim 1, wherein the first set of information is associated with a first application and the second set of information is associated with a second application different from the first application.
12. detecting a third user input via the one or more input devices corresponding to a selection of the first platter; In response to detecting the third user input, launching an application corresponding to the first platter; 12. The method of claim 1, further comprising:
13. detecting a fourth user input via the one or more input devices; ceasing the display of the first platter in response to detecting the fourth user input; 13. The method of claim 1, further comprising:
14. A computer program product that, when run on a computer, causes the computer to carry out the method according to any one of claims 1 to 13.
15. 1. An electronic device comprising: a memory for storing the computer program of claim 14; one or more processors capable of executing the computer program stored in the memory, the processors configured to cause the electronic device to communicate with a display and one or more input devices; An electronic device comprising:
16. 14. A method for performing a method according to any one of claims 1 to 13, An electronic device configured to communicate with a display and one or more input devices.
Citation Information
Patent Citations
A system and method for displaying notifications received from multiple applications.
JP2014519126A
Communication terminal, display control method, and program
JP2015198334A
Crown input for wearable electronics
JP2016534462A
Reduced-size notification interface
US20160062570A1