A user interface for manipulating user interface objects with magnetic properties.
A rotatable input mechanism with physics-based magnetic modeling improves user interface efficiency and accuracy on small touch-sensitive displays, addressing inefficiencies and power consumption issues in battery-operated devices.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- APPLE INC
- Filing Date
- 2024-05-24
- Publication Date
- 2026-04-23
AI Technical Summary
Existing methods for manipulating user interface objects on small touch-sensitive displays are inefficient, cumbersome, and lack precision, wasting user time and device energy, particularly in battery-operated devices.
Implementing a rotatable input mechanism in electronic devices that allows for faster, more efficient, and accurate manipulation of user interface objects through rotation-based interactions, utilizing a graphical user interface and physics-based magnetic modeling to enhance user interaction.
Enhances user interface efficiency and accuracy, reducing cognitive burden, and conserving power in battery-operated devices by providing intuitive and precise control over user interface objects.
Smart Images

Figure 0007850768000001 
Figure 0007850768000002 
Figure 0007850768000003
Abstract
Description
Cross-reference of related applications
[0001] This application claims priority to U.S. Provisional Patent Application No. 61 / 873,356, titled "CROWN INPUT FOR A WEARABLE ELECTRONIC DEVICE," filed September 3, 2013; U.S. Provisional Patent Application No. 61 / 873,359, titled "USER INTERFACE OBJECT MANIPULATIONS IN A USER INTERFACE," filed September 3, 2013; U.S. Provisional Patent Application No. 61 / 959,851, titled "USER INTERFACE FOR MANIPULATING USER INTERFACE OBJECTS," filed September 3, 2013; and U.S. Provisional Patent Application No. 61 / 873,360, titled "USER INTERFACE FOR MANIPULATING USER INTERFACE OBJECTS WITH MAGNETIC PROPERTIES," filed September 3, 2013. The contents of these applications, in their entirety, are incorporated herein by reference for all purposes.
[0002] This application claims priority to U.S. Non-Provisional Application, filed on September 3, 2014, entitled "CROWN INPUT FOR A WEARABLE ELECTRONIC DEVICE", with inventors Nicholas Zambetti et al., U.S. Non-Provisional Application, filed on September 3, 2014, entitled "USER INTERFACE FOR MANIPULATING USER INTERFACE OBJECTS", with inventors Nicholas Zambetti et al., U.S. Non-Provisional Application, filed on September 3, 2014, entitled "USER INTERFACE OBJECT MANIPULATIONS IN A USER INTERFACE", with inventors Nicholas Zambetti et al., and U.S. Provisional Patent Application No. 61 / 747,278, filed on December 29, 2012, entitled "Device, Method, and Graphical User Interface for Manipulating User Interface Objects with Visual and / or Haptic Feedback". The contents of these applications are hereby incorporated by reference in their entirety for all purposes.
Technical Field
[0003] The present disclosure generally relates to computer user interfaces, and more particularly to operating user interface objects using a rotatable input mechanism.
Background Art
[0004] Advanced personal electronic devices may have a small form factor. Use of such personal electronic devices involves operating user interface objects on a display screen that also has a small form factor to complement the design of the personal electronic device.
[0005] Examples of actions a user may perform on their personal electronic device include navigating hierarchies, selecting user interface objects, adjusting the position, zoom, and rotation of user interface objects, or otherwise manipulating user interface objects. Examples of user interface objects include documents, digital images, videos, text, icons, and maps. [Overview of the project]
[0006] However, some techniques for manipulating user interface objects using reduced-size touch-sensitive displays are generally cumbersome and inefficient. For example, it can be difficult for a user to accurately scroll a document object to a scroll position within a range of possible scroll positions where the desired content is properly aligned to a viewable display. In another example, it can be difficult for a user to accurately change the magnification of an image object to a desired zoom size within a range of possible zoom sizes. In yet another example, it can be difficult for a user to select a specific user interface object. Existing techniques often waste user time and device energy by taking more time than necessary when a user attempts to perform a task. This latter consideration is particularly important in battery-powered devices. Therefore, existing methods for manipulating user interface objects on reduced-size touch-sensitive displays can be inefficient and provide lower precision than preferred.
[0007] Therefore, there is a need for electronic devices with faster, more efficient, and more accurate methods and interfaces for manipulating user interface objects. Such methods and interfaces optionally complement or replace conventional methods for manipulating user interface objects. Such methods and interfaces reduce the cognitive burden on the user and create a more efficient human-machine interface. In the case of battery-operated computing devices, such methods and interfaces save power and increase the interval between battery recharging cycles.
[0008] The above-mentioned defects and other problems relating to user interfaces for computing devices for manipulating user interface objects are mitigated or eliminated by the disclosed device. In some embodiments, the device is a desktop computer. In some embodiments, the device is portable (e.g., a notebook computer, tablet computer, or handheld device). In some embodiments, the device has a touchpad. In some embodiments, the device is wearable by the user. In some embodiments, the device has a touch-sensitive display (also known as a “touchscreen” or “touchscreen display”). In some embodiments, the device comprises a display and a touch-sensitive surface. In some embodiments, the device has a rotatable input mechanism. In some embodiments, the device has a graphical user interface (GUI), one or more processors, memory, and one or more modules, programs, or instruction sets stored in memory to perform a plurality of functions. In some embodiments, the user interacts with the GUI primarily through rotation of the rotatable input mechanism and gestures on the touch-sensitive surface. Executable instructions for performing these functions may be contained in a computer-readable storage medium or in other computer program products configured to be executed by one or more processors.
[0009] According to some embodiments, the method is performed in an electronic device equipped with a display and a rotatable input mechanism. The method includes: displaying an object on a display according to the values of the object's properties, wherein the values are within a range of the property values; receiving a user input request representing the rotation of the rotatable input mechanism; determining whether the values of the object's properties are within a predetermined subset of the range of the property values; updating the values of the object's properties within the range of the property values, based on the user input request and according to a first function, according to the determination that the values of the object's properties are within a predetermined subset of the range of the property values; updating the values of the object's properties within the range of the property values, based on the user input request and according to a second function, based on the user input request, according to the determination that the values of the object's properties are not within a predetermined subset of the range of the property values, wherein the first function and the second function are different functions; and updating the display of the object according to the updated values of the object's properties.
[0010] According to some embodiments, the method is performed in an electronic device having a display and a rotatable input mechanism. The method includes displaying an object on a display according to the values of the object's properties, wherein the values are within a range of the property values; receiving a user input request representing the rotation of the rotatable input mechanism; determining, in response to receiving the user input request, whether the user input request causes the values of the object's properties to transition within a range of an anchor's zone, wherein the anchor has a start value, an intermediate value, and an end value within a range of the property values, and the anchor's zone is between the start value and the end value; updating the values of the object's properties based on the intermediate value of the anchor, in accordance with the determination that the user input request causes the values of the object's properties to transition within a range of the anchor's zone; and updating the display of the object according to the updated values of the object's properties.
[0011] According to some embodiments, the method is performed in an electronic device having a display and a rotatable input mechanism. The method includes displaying an object on a display according to the values of the object's properties, wherein the values are within the range of the values of the properties; receiving a user input request representing rotation of the rotatable input mechanism; updating the values of the object's properties within the range of the values of the properties based on the user input request in response to the receipt of the user input request; updating the display of the object according to the updated values of the object's properties; identifying the anchor closest to the updated values of the object's properties, wherein the closest anchor is identified from at least a first anchor having a corresponding intermediate value and a second anchor having a corresponding intermediate value; subsequently updating the values of the object's properties based on the corresponding intermediate value of the identified closest anchor; and subsequently updating the display of the object according to the updated values of the object's properties.
[0012] According to some embodiments, the method is performed in an electronic device having a display and a rotatable input mechanism. The method includes displaying an object on the display, wherein the object is associated with a first marker having a first value and a second marker having a second value, and the value of the object's properties is based on the first value of the first marker; receiving user input representing rotation of the rotatable input mechanism; determining whether the attribute of the user input exceeds a threshold in response to receiving user input representing rotation of the rotatable input mechanism; updating the value of the object's properties based on the second value of the second marker in accordance with the determination that the attribute of the user input exceeds a threshold; and updating the display of the object according to the updated value of the object's properties.
[0013] According to some embodiments, the method is performed in an electronic device. The method includes displaying a plurality of selectable elements on a touch-sensitive display of a wearable electronic device, each of the plurality of selectable elements being associated with a corresponding magnetic value; determining a change in the distance value of the crown based on the angular displacement of the crown of the wearable electronic device; determining a direction based on the direction of rotation of the physical crown of the wearable electronic device; moving a focus selector toward an element of the plurality of selectable elements in response to the determination of the change in the distance value of the crown; and changing the focus of an element of the plurality of selectable elements, the movement being at least initially in the determined direction, and the rate of movement being changed at least based on the magnetic value associated with the selectable element.
[0014] According to some embodiments, the method is performed in an electronic device. The method includes displaying a plurality of selectable elements on a touch-sensitive display of a wearable electronic device, each selectable element being associated with a corresponding magnetic value; determining a change in the distance value of the crown based on the angular displacement of the physical crown of the wearable electronic device; determining a direction based on the direction of rotation of the crown; scrolling the plurality of selectable elements on the display in the determined direction in response to the determination of the change in the distance value of the crown; and changing the focus of one of the selectable elements, wherein the scroll rate is changed based on a virtual magnetic attraction force between one of the selectable elements and the focus area.
[0015] According to some embodiments, the method is performed in an electronic device. The method includes displaying an object on a touch-sensitive display of a wearable electronic device; determining a change in the distance value of the crown based on the angular displacement of the crown; modifying the appearance of the object based on the change in the distance value of the crown; determining whether a criterion has been met based on the modified appearance of the object; and, in response to the determination that the criterion has been met, generating a tactile output in the wearable electronic device.
[0016] Therefore, devices are provided with faster, more efficient, and more accurate methods and interfaces for manipulating user interface objects, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces may complement or replace conventional methods for manipulating user interface objects. [Brief explanation of the drawing]
[0017] For a better understanding of the various embodiments described, please refer to the following “Description of Embodiments” in conjunction with the following drawings, where similar reference numbers refer to corresponding parts throughout those drawings. [Figure 1A] This is a block diagram showing a portable multifunctional device with a touch-sensitive display, according to several embodiments. [Figure 1B] This is a block diagram showing exemplary components for event handling according to several embodiments. [Figure 2] This figure shows a portable multifunctional device having a touchscreen, according to several embodiments. [Figure 3] This is a block diagram of an exemplary multifunctional device comprising a display and a touch-sensitive surface, according to several embodiments. [Figure 4A] This figure shows an exemplary user interface for an application menu on a portable multifunction device, according to several embodiments. [Figure 4B] FIG. 1 is a diagram showing an exemplary user interface for a multifunctional device having a touch sensing surface separate from a display, according to some embodiments. [Figure 5A] FIG. 2 is a diagram showing a personal electronic device, according to some embodiments. [Figure 5B] FIG. 3 is a block diagram showing a personal electronic device, according to some embodiments. [Figure 5C] FIG. 4 is a diagram showing an exemplary wearable electronic device, according to various embodiments. [Figure 5D] FIG. 5 is a block diagram showing an exemplary wearable electronic device, according to various embodiments. [Figure 6A] FIG. 6 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 6B] FIG. 7 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 6C] FIG. 8 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 6D] FIG. 9 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 6E] FIG. 10 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 6F] FIG. 11 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 7] FIG. 12 is a flowchart showing an exemplary process for operating a user interface object, according to some embodiments. [Figure 8A] FIG. 13 is a diagram showing an exemplary user interface for operating a user interface object, according to some embodiments. [Figure 8B] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 8C] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 8D] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 8E] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 8F] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 8G] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 8H] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 9A] A flowchart showing an exemplary process for operating a user interface object according to some embodiments. [Figure 9B] A flowchart showing an exemplary process for operating a user interface object according to some embodiments. [Figure 10A] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 10B] A diagram showing an exemplary user interface for operating a user interface object according to some embodiments. [Figure 11] A flowchart showing an exemplary process for operating a user interface object according to some embodiments. [Figure 12] This is a functional block diagram according to several embodiments. [Figure 13A] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13B] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13C] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13D] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13E] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13F] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13G] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13H] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13I] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13J] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 13K] This flowchart illustrates an exemplary process for selecting elements using physics-based magnetic modeling, according to several embodiments. [Figure 14] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 15] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 16] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 17] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 18] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 19] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 20] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 21] This figure shows an exemplary graphical user interface for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 22] This flowchart illustrates an exemplary process for selecting an element from among elements having various magnetic values, according to several embodiments. [Figure 23]This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 24] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 25] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 26] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 27] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 28] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 29] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 30] This figure shows an exemplary graphical user interface for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 31] This flowchart illustrates an exemplary process for selecting elements using physics-based magnetic and spring modeling, according to several embodiments. [Figure 32] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 33]This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 34] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 35] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 36] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 37] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 38] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic modeling. [Figure 39] This flowchart illustrates an exemplary process for selecting elements using focus regions and physics-based magnetic modeling. [Figure 40] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 41] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 42] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 43] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 44] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 45] This figure shows an exemplary graphical user interface for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 46] This flowchart illustrates an exemplary process for selecting elements using focus regions and physics-based magnetic and spring modeling. [Figure 47] This figure shows an exemplary computing system for operating a user interface in accordance with the rotation of a crown, relating to various embodiments. [Modes for carrying out the invention]
[0018] The following description includes exemplary methods, parameters, etc. However, it should be understood that the purpose of such description is not to limit the scope of this disclosure, but to provide an example of the embodiments.
[0019] There is a need for electronic devices that provide efficient and precise access to user interface objects. For example, ease of use for zooming in and out of documents and images, rotating images, and selecting options from multiple options contributes to the efficiency of manipulating user interface objects. Such technologies can reduce the cognitive burden on the user when manipulating user interface objects, thereby increasing productivity. Furthermore, such technologies can reduce processor and battery power that would otherwise be wasted on extraneous user input.
[0020] Figures 1A to 1B, 2, 3, 4A to 4B, and 5A to 5D below provide a description of exemplary devices for implementing techniques for manipulating user interface objects. Figures 6A to 6F, 8A to 8H, 10A to 10B, 13A to 13J, 14 to 21, 23 to 30, 32 to 38, and 40 to 45 show exemplary user interfaces for manipulating user interface objects. The user interfaces in the figures are also used to illustrate the processes described below, including the processes in Figures 7, 9A, 9B, 11, 13K, 22, 31, 39, and 46.
[0021] In the following description, terms such as "first," "second," etc., are used to describe various elements, but these elements should not be limited by these terms. These terms are used solely to distinguish one element from another. For example, without departing from the scope of the various embodiments described, a first touch may be called a second touch, and similarly, a second touch may be called a first touch. Both the first touch and the second touch are touches, but they are not the same touch.
[0022] The terminology used in the descriptions of the various embodiments described herein is intended solely to describe specific embodiments and not to limit them. When used in the descriptions of the various embodiments and in the appended claims, the singular forms "a," "an," and "the" are intended to also include the plural forms unless the context explicitly indicates otherwise. When used herein, the term "and / or" should also be understood to refer to and include any one or more possible combinations of the enumerated items relating to the description. Furthermore, when used herein, the terms "includes," "comprises," and / or "comprising" specify the presence of a described feature, integer, step, operation, element, and / or component, but should not be understood to exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0023] The term "if" can be interpreted, depending on the context, as meaning "when," "upon," "in response to determining," or "in response to detecting." Similarly, the phrase "if it is determined" or "if [a stated condition or event] is detected" can be interpreted, depending on the context, as meaning "upon determining," "in response to determining," "upon detecting [the stated condition or event]," or "in response to detecting [the stated condition or event]."
[0024] Embodiments of electronic devices, user interfaces for such devices, and related processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, which also includes other functions, such as PDA functionality and / or music playback functionality. Exemplary embodiments of portable multifunction devices include, without limitation, the iPhone®, iPod Touch®, and iPad® devices of Apple Inc., Cupertino, California. Other portable electronic devices, such as laptop or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), may also be used. Also, it should be understood that in some embodiments, the device is not a portable communication device but a desktop computer with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads).
[0025] The following discussion describes an electronic device including a display and a touch-sensitive surface. However, please understand that this electronic device may optionally include one or more other physical user interface devices such as a physical keyboard, mouse, and / or joystick.
[0026] This device may support a variety of applications, including drawing applications, presentation applications, word processing applications, website creation applications, disk authoring applications, spreadsheet applications, game applications, telephone applications, video conferencing applications, email applications, instant messaging applications, training support applications, photo management applications, digital camera applications, digital video camera applications, web browsing applications, digital music player applications, and / or digital video player applications.
[0027] Various applications running on this device optionally use at least one common physical user interface device, such as a touch-sensitive surface. One or more functions of the touch-sensitive surface and the corresponding information displayed on the device are optionally adjusted and / or modified from one application to the next, and / or within each application. In this manner, the device's common physical architecture (such as the touch-sensitive surface) optionally supports various applications that have an intuitive and transparent user interface for the user.
[0028] Here, we turn our attention to embodiments of portable devices equipped with a touch-sensitive display. Figure 1A is a block diagram of a portable multifunction device 100 equipped with a touch-sensitive display 112 according to several embodiments. The touch-sensitive display 112 is sometimes referred to for convenience as a “touchscreen” and is known or referred to as a “touch-sensitive display system.” Device 100 includes a memory 102 (optionally including one or more computer-readable storage media), a memory controller 122, one or more processing units (CPUs) 120, a peripheral device interface 118, an RF circuit 108, an audio circuit 110, a speaker 111, a microphone 113, an input / output (I / O) subsystem 106, other input or control devices 116, and an external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more intensity sensors 165 for detecting the intensity of contact on Device 100 (e.g., a touch-sensitive surface such as the 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 the touch-sensitive display system 112 of Device 100 or the touchpad 355 of Device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0029] As used herein and in the claims, the term “strength” of contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of contact (e.g., finger contact) on the touch-sensitive surface. The strength of contact has a numerical range, including at least four different numerical values, and more typically including hundreds or more different numerical values (e.g., at least 256). The strength of contact is determined (or measured) optionally using various methods and various sensors, or combinations of sensors. For example, one or more sensors placed below or adjacent to the touch-sensitive surface are optionally used to measure the force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted averaged) to determine the estimated force of contact. Using the intensity of contact as an attribute of user input allows for user access to additional device functions that might otherwise be inaccessible, in reduced-size devices where the 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 control such as a knob or button) is limited.
[0030] As used herein and in the claims, the term “tactile output” means a physical displacement of the 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, which will be detected by the user through the user’s sense of touch. For example, in a situation where the device or a component of the device is in contact with the touch-sensitive surface of the user (e.g., the user’s fingers, palm, or other part of their hand), the tactile output generated by the physical displacement is interpreted by the user as a tactile sensation corresponding to a perceived change in the physical properties 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) may be interpreted by the user as a “down-click” or “up-click” of a physical actuator button, at their discretion. In some cases, the user may feel a tactile sensation such as a “down-click” or “up-click” even when there is no movement of a physical actuator button associated with a touch-sensitive surface that is physically pressed (e.g., displaced) by the user’s movement. As another example, movement of a touch-sensitive surface can be selectively interpreted or perceived by the user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. Such user interpretations of touch are based on the user's individual sensory perception, but there are many touch sensory perceptions common to the majority of users. Therefore, when a haptic output is described as corresponding to a user's specific sensory perception (e.g., "up-click," "down-click," "roughness"), unless otherwise stated, the generated haptic output corresponds to the physical displacement of the device or its components that produce the described sensory perception of a typical (or average) user.
[0031] Device 100 is merely one embodiment of a portable multifunction device, and it should be understood that Device 100 may optionally have more or fewer components than those shown, or may optionally have two or more components in any combination, or may optionally have different configurations or arrangements of components. The various components shown in Figure 1A may be implemented in the form of hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application-specific integrated circuits.
[0032] Memory 102 may include one or more computer-readable storage media. The computer-readable storage media may be tangible and non-temporary. Memory 102 may include high-speed random-access memory and may also include non-volatile memory such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. The memory controller 122 may control access to memory 102 by other components of device 100.
[0033] The peripheral interface 118 can be used to connect the input and output peripherals of this device to the CPU 120 and memory 102. One or more processors 120 run or execute various software programs and / or instruction sets stored in memory 102 to perform various functions for device 100 and to perform data processing. In some embodiments, the peripheral interface 118, CPU 120, and memory controller 122 may be implemented on a single chip such as chip 104. In some other embodiments, they may be implemented on separate chips.
[0034] The RF (radio frequency) circuit mechanism 108 transmits and receives RF signals, also known as electromagnetic signals. The RF circuit 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 circuit 108 optionally includes, but is 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 identification module (SIM) card, memory, and other well-known circuits for performing the above functions. The RF circuit 108 optionally communicates with networks such as the Internet, also known as the Internet of Things (WWW), wireless networks such as intranets and / or cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and other devices via wireless communication. Wireless communication uses one of several communication standards, protocols, and technologies at will. These communication standards, protocols, and technologies include 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-HSPDA), Long-Term Evolution (LTE), Near Field Communication (NFC), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), and Time Division Multiple Access (CDMA).Bluetooth (TDMA), Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi) (registered trademark) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, and / or IEEE 802.11n), Voice over Internet Protocol (VoIP), Wi-MAX, protocols for email (e.g., Internet message access protocol (IMAP) and / or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS)), and / or Short Message Service (Short Message Service) Examples of suitable communication protocols include, but are not limited to, Service, SMS, or any other suitable communication protocols, including communication protocols that have not yet been developed as of the filing date of this document.
[0035] The audio circuit 110, speaker 111, and microphone 113 provide an audio interface between the user and the device 100. The audio circuit 110 receives audio data from the peripheral interface 118, converts the audio data into an electrical signal, and sends the electrical signal to the speaker 111. The speaker 111 converts the electrical signal into human audible sound waves. The audio circuit 110 also receives the electrical signal converted from the sound waves by the microphone 113. The audio circuit 110 converts the electrical signal into audio data and sends the audio data to the peripheral interface 118 for processing. The audio data may be retrieved from and / or transmitted to the memory 102 and / or RF circuitry 108 by the peripheral interface 118. In some embodiments, the audio circuit 110 further includes a headset jack (e.g., 212 in Figure 2). The headset jack provides an interface between the audio circuit mechanism 110 and a detachable audio input / output peripheral device, such as output-only headphones or a headset having both output (e.g., headphones for one or both ears) and input (e.g., a microphone).
[0036] The I / O subsystem 106 connects the input / output peripherals of device 100, such as the touchscreen 112 and other input control devices 116, to the peripheral interface 118. The I / O subsystem 106 optionally includes a display controller 156, an optical sensor controller 158, an intensity sensor controller 159, a haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. One or more input controllers 160 receive / transmit electrical signals to / from the other input or control devices 116. The other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, the input controllers 160 are optionally connected to (or not connected to) any of the following: a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. One or more buttons (e.g., 208 in Figure 2) optionally include up / down buttons for adjusting the volume of speaker 111 and / or microphone 113. One or more buttons optionally include push buttons (e.g., 206 in Figure 2).
[0037] As described in U.S. Patent Application No. 11 / 322,549, “Unlocking a Device by Performing Gestures on an Unlock Image,” filed December 23, 2005, U.S. Patent No. 7,657,849, a quick press of a push button may unlock the touchscreen 112 or initiate a process to unlock the device using gestures on the touchscreen. The entire application is incorporated herein by reference. A longer press of a push button (e.g., 206) may power on or off the device 100. The user may be able to customize the functionality of one or more buttons. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0038] The touch-sensitive display 112 provides input and output interfaces between the device and the user. The display controller 156 receives and / or transmits electrical signals to and from the touchscreen 112. The touchscreen 112 displays visual output to the user. This visual output may include graphics, text, icons, videos, and any combination thereof (collectively referred to as "graphics"). In some embodiments, some or all of these visual outputs may correspond to user interface objects.
[0039] The touchscreen 112 has a touch-sensing surface, sensor, or set of sensors that accept user input based on tactile and / or tactile contact. The touchscreen 112 and the display controller 156 (along with any associated modules and / or instruction sets in memory 102) detect contact (and any action or interruption of contact) on the touchscreen 112 and translate the detected contact into interaction with user interface objects displayed on the touchscreen 112 (e.g., one or more soft keys, icons, web pages, or images). In one exemplary embodiment, the contact between the touchscreen 112 and the user corresponds to the user's finger.
[0040] The touchscreen 112 may utilize LCD (liquid crystal display) technology, LPD (light-emitting polymer display) technology, or LED (light-emitting diode) technology, but other display technologies may be used in other embodiments. The touchscreen 112 and the display controller 156 may detect contact and any movement or interruption thereof using any of several currently known or future-developed touch sensing technologies, including, but not limited to, capacitive technology, resistive technology, infrared technology, and surface ultrasonic technology, as well as other proximity sensor arrays or other elements for determining one or more contact points with the touchscreen 112. In exemplary embodiments, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® from Apple Inc. of Cupertino, California.
[0041] The touch-sensitive displays in some embodiments of the touchscreen 112 may be similar to the multi-touch-sensitive touchpads described in the following U.S. Patents, No. 6,323,846 (Westerman et al.), No. 6,570,557 (Westerman et al.), and / or No. 6,677,932 (Westerman), and / or U.S. Patent Publication No. 2002 / 0015024A1. Each of these documents is incorporated herein by reference in its entirety. However, the touchscreen 112 displays visual output from device 100, whereas the touch-sensitive touchpad does not provide visual output.
[0042] The touch-sensitive display in some embodiments of the touchscreen 112 may be as described in the following application. (1) U.S. Patent Application No. 11 / 381,313, "Multipoint Touch Surface Controller", filed May 2, 2006; (2) U.S. Patent Application No. 10 / 840,862, "Multipoint Touchscreen", filed May 6, 2004; (3) U.S. Patent Application No. 10 / 903,964, "Gestures For Touch Sensitive Input Devices", filed July 30, 2004; (4) U.S. Patent Application No. 11 / 048,264, "Gestures For Touch Sensitive Input Devices", filed January 31, 2005; (5) U.S. Patent Application No. 11 / 038,590, "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices", filed January 18, 2005; (6) U.S. Patent Application No. 11 / 228,758, "Virtual Input Device Placement On A Touch Screen User (7) U.S. Patent Application No. 11 / 228,700, “Operation Of A Computer With A Touch Screen Interface,” filed September 16, 2005; (8) U.S. Patent Application No. 11 / 228,737, “Activating Virtual Keys Of A Touch-Screen Virtual Keyboard,” filed September 16, 2005; and (9) U.S. Patent Application No. 11 / 367,749, “Multi-Functional Hand-Held Device,” filed March 3, 2006. All of these applications are incorporated herein by reference in their entirety.
[0043] The touchscreen 112 may have a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. The user may touch the touchscreen 112 using any suitable object or attachment, such as a stylus or finger. In some embodiments, the user interface is designed to function primarily with finger-based touch and gestures, and the larger contact area of a finger on the touchscreen may result in lower precision than stylus-based input. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor positions or commands to perform user-desired actions.
[0044] In some embodiments, in addition to the touchscreen, the device 100 may include a touchpad (not shown) for activating or deactivating specific functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display a visual output. The touchpad may be a touch-sensitive surface separate from the touchscreen 112, or an extension of the touch-sensitive surface formed by the touchscreen.
[0045] Device 100 also includes a power system 162 for supplying power to various components. The power system 162 may include a power management system, one or more power sources (e.g., a battery, alternating current (AC)), a recharge system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)), and any other components associated with the generation, management, and distribution of power in the portable device.
[0046] Device 100 may also include one or more optical sensors 164. Figures 1A and 1B show optical sensors coupled to an optical sensor controller 158 in the I / O subsystem 106. The optical sensors 164 may include a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. The optical sensors 164 receive light from the environment projected through one or more lenses and convert that light into data representing an image. In conjunction with an imaging module 143 (also called a camera module), the optical sensors 164 may capture still images or video. In some embodiments, the optical sensors are located on the back of device 100, opposite the touchscreen display 112 on the front of the device, so that the touchscreen display can be used as a viewfinder for acquiring still images and / or video images. In some embodiments, the optical sensors are located on the front of the device so that the user can view other video conference participants on the touchscreen display while simultaneously obtaining an image of the user for video conferencing. In some embodiments, the position of the optical sensor 164 can be changed by the user (for example, by rotating the lens and sensor within the device housing), thereby allowing a single optical sensor 164 to be used in conjunction with a touchscreen display for both video conferencing and still image and / or video image acquisition.
[0047] Device 100 also optionally includes one or more contact strength sensors 165. Figure 1A shows a contact strength sensor coupled to a strength sensor controller 159 in the I / O subsystem 106. The contact strength sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, pressure-power sensors, optical force sensors, capacitive touch-sensing surfaces, or other strength sensors (e.g., sensors used to measure the force (or pressure) of contact on a touch-sensing surface). The contact strength sensor 165 receives contact strength information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact strength sensor is located juxtaposed with or in close proximity to a touch-sensing surface (e.g., a touch-sensing display system 112). In some embodiments, at least one contact strength sensor is located on the back of Device 100, opposite the touchscreen display 112 located on the front of Device 100.
[0048] Device 100 may include one or more proximity sensors 166. Figures 1A and 1B show proximity sensors 166 coupled to a peripheral interface 118. Alternatively, proximity sensors 166 may be coupled to an input controller 160 in an I / O subsystem 106. Proximity sensors 166 may operate as described in U.S. Patent Applications No. 11 / 241,839, “Proximity Detector In Handheld Device”, No. 11 / 240,788, “Proximity Detector In Handheld Device”, No. 11 / 620,702, “Using Ambient Light Sensor To Augment Proximity Sensor Output”, No. 11 / 586,862, “Automated Response To And Sensing Of User Activity In Portable Devices”, and No. 11 / 638,251, “Methods And Systems For Automatic Configuration Of Peripherals”, all of which are incorporated herein by reference. In some embodiments, if the multifunction device is positioned near the user's ear (for example, when the user is making a phone call), the proximity sensor turns off and disables the touchscreen 112.
[0049] Device 100 also optionally includes one or more tactile output generators 167. Figure 1A shows a tactile output generator coupled to a tactile feedback controller 161 in the I / O subsystem 106. The tactile output generator 167 optionally includes one or more electroacoustic devices such as a speaker or other sound component and / or electromechanical devices that convert energy into linear motion, such as a motor, solenoid, electroactive polymer, piezoelectric actuator, electrostatic actuator, or other tactile output component (e.g., a component that converts an electrical signal into a tactile output on the device). The contact intensity sensor 165 receives a tactile feedback generation command from the tactile feedback module 133 and generates a tactile output on device 100 that can be sensed by the user of device 100. In some embodiments, at least one haptic output generator is positioned juxtaposed with or adjacent to a touch-sensing surface (e.g., a touch-sensing display system 112) and optionally generates haptic output by moving the touch-sensing surface vertically (e.g., inward / outward from the surface of device 100) or laterally (e.g., in the forward / backward direction on the same plane as the surface of device 100). In some embodiments, at least one haptic output generator sensor is positioned on the back of device 100, opposite the touchscreen display 112 which is positioned on the front of device 100.
[0050] The device 100 may further include one or more accelerometers 168. Figures 1A and 1B show an accelerometer 168 coupled to a peripheral interface 118. Alternatively, the accelerometer 168 may be coupled to an input controller 160 in the I / O subsystem 106. The accelerometer 168 may operate as described in U.S. Patent Publication No. 20050190059, “Acceleration-based Theft Detection System for Portable Electronic Devices,” and U.S. Patent Publication No. 20060017692, “Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer,” both of which are incorporated herein by reference in their entirety. In some embodiments, information is displayed on a touchscreen display in portrait view or landscape view based on an analysis of data received from one or more accelerometers. Device 100 optionally includes, in addition to one or more accelerometers 168, a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for acquiring information regarding the position and orientation of Device 100 (e.g., portrait or landscape).
[0051] In some embodiments, the software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a contact / 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 an application (instruction set) 136. Furthermore, in some embodiments, as shown in Figures 1A, 1B, and 3, memory 102 stores a device / global internal state 157. The device / global internal state 157 includes one or more of the following: active application state, indicating which application is currently active, if any; display state, indicating which applications, views, or other information occupy different areas of the touchscreen display 112; sensor state, including information obtained from various sensors and input control devices 116 of the device; and location information relating to the device's position and / or orientation.
[0052] An operating system 126 (for example, 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.
[0053] The communication module 128 facilitates communication with other devices via one or more external ports 124 and includes various software components for processing data received by the RF circuit 108 and / or the external ports 124. The external ports 124 (e.g., Universal Serial Bus (USB), FireWire®, etc.) are adapted to connect to other devices directly or indirectly via a network (e.g., the Internet, Wi-Fi, etc.). In some embodiments, the external ports are multi-pin (e.g., 30-pin) connectors identical to, or similar to, and / or compatible with, the 30-pin connector used on iPod® (a trademark of Apple Inc.) devices.
[0054] The contact / motion module 130 optionally detects contact with the touchscreen 112 (together with the display controller 156) and contact with other touch-sensitive devices (e.g., a touchpad or physical click wheel). The contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact has occurred (e.g., detecting a finger-down event), determining the intensity of the contact, determining whether there is movement of the contact and tracking movement across the touch-sensitive surface (e.g., detecting one or more finger-dragging events), and determining whether contact has ended (e.g., detecting a finger-up event or interruption of contact). The contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point represented by a 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 can be 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, the contact / movement module 130 and the display controller 156 detect contact on the touchpad.
[0055] In some embodiments, the contact / movement module 130 uses a set of one or more intensity thresholds to determine whether an action has been performed by the user (for example, whether the user has "clicked" on an icon). In some embodiments, at least a subset of the intensity thresholds is determined according to software parameters (for example, the intensity thresholds are not determined by activation thresholds of a particular physical actuator and can be adjusted without changing the physical hardware of device 100). For example, the mouse "click" threshold for a trackpad or touchscreen display can be set to one of a wide range of default thresholds without changing the trackpad or touchscreen display hardware. In addition, in some implementations, the user of the device is provided with software settings to adjust one or more of the set of intensity thresholds (for example, by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds immediately after a system-level click of the "intensity" parameter).
[0056] The contact / movement module 130 optionally detects gesture input from the user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movement, timing, and / or intensity of detected contact). Therefore, gestures are optionally detected by detecting a specific contact pattern. For example, detecting a finger tap gesture involves detecting a finger-down event, followed by a finger-lift-off event at the same location (or substantially the same location) as the finger-down event (e.g., at the icon's position). In another embodiment, detecting a finger-swipe gesture on the touch-sensitive surface involves detecting a finger-down event, followed by one or more finger-drag events, and then a finger-up (lift-off) event.
[0057] The graphics module 132 includes various known software components for rendering and displaying graphics on the touchscreen 112 or other display, including components for modifying the visual effects of the displayed graphics (e.g., brightness, transparency, saturation, contrast, or other visual properties). As used herein, the term “graphics” includes, but is not limited to, any objects that can be displayed to a user, such as text, web pages, icons (including user interface objects such as soft keys), digital images, videos, and animations.
[0058] In some embodiments, the graphics module 132 stores data representing the graphics to be used. Each graphic is optionally assigned a corresponding code. The graphics module 132 receives one or more codes specifying the graphics to be displayed, along with coordinate data and other graphics property data, as needed from an application or the like, and generates screen image data to be output to the display controller 156.
[0059] The haptic feedback module 133 includes various software components for generating commands used by the haptic output generator 167 to generate haptic outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0060] The text input module 134 can be a component of the graphics module 132 and provides a soft keyboard for entering text within various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other applications that require text input).
[0061] The GPS module 135 determines the device's location and provides this information for use in various applications (for example, to the telephone 138 for use in location-based dialing, to the camera 143 as picture / video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and map / navigation widgets).
[0062] Application 136 may include the following modules (or sets of instructions), or subsets or supersets thereof:
[0063] ●Contact module 137 (also called address book or contact list), ●Telephone module 138, ●Video conferencing module 139, ● Email client module 140, ● Instant messaging (IM) module 141, ●Training support module 142, ● Camera module 143 for still images and / or video images, ●Image management module 144, ●Video player module 145, ●Music player module 146, ● Browser module 147, ●Calendar module 148, ● A widget module 149 that may include one or more of the following: weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, dictionary widget 149-5, and other widgets obtained by the user, as well as user-created widgets 149-6. ●Widget creation module 150 for creating user-created widget 149-6, ●Search module 151, ● A video and music player module 152 that combines the video player module 145 and the music player module 146. ●Memo Module 153, ●Map module 154 and / or ● Online video module 155.
[0064] Other applications 136 that may be stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, Java®-enabled applications, encryption, digital rights management, speech recognition, and speech duplication.
[0065] Together with the touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the contact module 137 may be used to manage an address book or contact list (stored, for example, in the application internal state 192 of the contact module 137 in memory 102 or memory 370), which includes adding names(s) to the address book, removing names(s) from the address book, associating telephone numbers(s) to names, email addresses(s) to names, physical addresses(s) to names, or other information, associating images to names, categorizing and sorting names, and providing telephone numbers or email addresses to initiate and / or facilitate communication such as telephone calls 138, video conferences 139, emails 140, or instant messaging 141.
[0066] Together with the RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the telephone module 138 may be used to input a series of characters corresponding to a telephone number, access one or more telephone numbers in the address book 137, modify the entered telephone numbers, dial each telephone number, conduct a conversation, and disconnect or hang up when the conversation is complete. As described above, wireless communication may use any of several communication standards, communication protocols, and communication technologies.
[0067] In conjunction with the RF circuit 108, audio circuit mechanism 110, speaker 111, microphone 113, touchscreen 112, display controller 156, light sensor 164, light sensor controller 158, contact module 130, graphics module 132, text input module 134, contact list 137, and telephone module 138, the video conferencing module 139 includes executable commands for starting, conducting, and ending video conferences between the user and one or more other participants, according to user instructions.
[0068] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the email client module 140 includes executable commands for creating, sending, receiving, and managing emails in response to user instructions. In conjunction with the image management module 144, the email client module 140 makes it very easy to create still images or videos captured by the camera module 143 and send them via email.
[0069] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the instant messaging module 141 includes executable instructions for entering strings corresponding to instant messages, modifying entered characters, sending each instant message (e.g., using the Short Message Service (SMS) or Multimedia Messaging Service (MMS) protocol for telephone-based instant messaging, or using XMPP, SIMPLE, or IMPS for internet-based instant messaging), receiving instant messages, and displaying received instant messages. In some embodiments, the transmitted and / or received instant messages may include graphics, photographs, 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).
[0070] Together with the RF circuit 108, touchscreen 112, display controller 156, contact module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music playback module 146, the training support module 142 includes executable commands for creating training (e.g., with time, distance, and / or calorie consumption targets), communicating with training sensors (sports devices), receiving training sensor data, calibrating sensors used to monitor training, selecting and playing music for training, and displaying, storing, and transmitting training data.
[0071] In association with the touchscreen 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact module 130, graphics module 132, and image management module 144, the camera module 143 includes executable instructions for capturing still images or videos (including video streams) and storing them in memory 102, modifying the characteristics of still images or videos, or deleting still images or videos from memory 102.
[0072] In relation to the touchscreen 112, display controller 156, contact module 130, graphics module 132, text input module 134, and camera module 143, the image management module 144 includes executable commands for arranging, modifying (e.g., editing), and otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slideshow or album), and storing still images and / or videos.
[0073] In connection with the RF circuit 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, the browser module 147 includes executable instructions for browsing the Internet in accordance with user instructions, including searching for, linking, receiving, and displaying web pages or parts thereof, as well as attachments and other files linked to web pages.
[0074] In conjunction with the RF circuit 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, the calendar module 148 includes executable instructions for creating, displaying, modifying, and storing a calendar and data associated with the calendar (e.g., calendar items, to-do lists, etc.) in accordance with user instructions.
[0075] In relation to the RF circuit mechanism 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, the widget module 149 is a mini-application that can be downloaded and used by the user (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), or a mini-application that can be created by the user (e.g., user-created widget 149-6). In some embodiments, the widget includes an HTML (Hypertext Markup Language) file, a CSS (Cascading Style Sheets) file, and a JavaScript file. In some embodiments, the widget includes an XML (Extensible Markup Language) file and a JavaScript® file (e.g., a Yahoo!® widget).
[0076] In conjunction with the RF circuit 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, the widget creation module 150 may be used by the user to create widgets (for example, to convert a user-specified portion of a web page into a widget).
[0077] In association with the touchscreen 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, the search module 151 includes executable instructions for searching for text, music, sound, images, videos, and / or other files in memory 102 that match one or more search criteria (e.g., one or more user-specified search terms) according to user instructions.
[0078] In association with the touchscreen 112, display system controller 156, contact module 130, graphics module 132, audio circuit 110, speaker 111, RF circuit 108, and browser module 147, the video and music playback module 152 includes executable instructions that allow the user to download and play recorded music or 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 video (on the 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 registered trademark of Apple Inc.).
[0079] Together with the touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the memo module 153 includes executable commands for creating and managing memos, to-do lists, etc., according to user instructions.
[0080] Together with the RF circuit 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, the map module 154 may be used to receive, display, modify, and store maps and map-related data (e.g., driving directions, data about shops and other points of interest in a particular location or nearby, and other location-based data) in accordance with user instructions.
[0081] In relation to the touchscreen 112, display system controller 156, contact module 130, graphics module 132, audio circuit mechanism 110, speaker 111, RF circuit 108, text input module 134, email client module 140, and browser module 147, the online video module 155 includes instructions that enable the user to access, browse, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124), send emails containing links to specific online videos, and manage them in other ways. In some embodiments, an instant messaging module 141, rather than the email client module 140, is used to send links to specific online videos. Additional descriptions of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, “Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos,” filed on 20 June 2007, and U.S. Patent Application No. 11 / 968,067, “Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos,” filed on 31 December 2007. The contents of these applications are incorporated herein by reference in their entirety.
[0082] Each of the modules and applications identified above corresponds to an executable instruction set and a method of this application (e.g., a method performed by a computer and other information processing methods described herein) for performing one or more of the above functions. These modules (i.e., instruction sets) do not need to be implemented as separate software programs, procedures, or modules, and therefore, in various embodiments, various subsets of these modules may be combined or rearranged in other ways. For example, the video playback module 145 may be combined with the music playback module 146 to form a single module (e.g., a video and music playback module 152, Figure 1A). In some embodiments, memory 102 may store a subset of the modules and data structures identified above. Furthermore, memory 102 may store additional modules and data structures not described above.
[0083] In some embodiments, device 100 is a device in which the operation of a default set of functions on the device is performed exclusively via a touchscreen and / or touchpad. By using a touchscreen and / or touchpad as the primary input control device for the operation of device 100, the number of physical input control devices on device 100 (such as push buttons, dials, and the like) can be reduced.
[0084] A default set of functions, performed exclusively via the touchscreen and / or touchpad, optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by the user, navigates the device 100 from any user interface displayed on the device 100 to the main menu, home menu, or root menu. In such embodiments, the “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.
[0085] Figure 1B is a block diagram showing exemplary components for event processing according to several embodiments. In some embodiments, memory 102 (in Figure 1A) or 370 (in Figure 3) includes an event sorter 170 (e.g., in operating system 126) and corresponding applications 136-1 (e.g., any of the applications 137-151, 155, and 380-390 described above).
[0086] The event sorter 170 receives event information and determines the application 136-1 and the application view 191 of application 136-1 to which the event information will be distributed. The event sorter 170 includes an event monitor 171 and an event dispatcher module 174. In some embodiments, application 136-1 includes an application internal state 192 that indicates the current application view(s) displayed on the touch-sensitive display 112 when the application is active or running. In some embodiments, the device / global internal state 157 is used by the event sorter 170 to determine which application is currently active, and the application internal state 192 is used by the event sorter 170 to determine the application view 191 to which the event information will be distributed.
[0087] In some embodiments, the application internal state 192 includes additional information such as resume information used when the application 136-1 resumes execution, user interface state information indicating that information is displayed or ready to be displayed by the application 136-1, state queues to allow the user to return to a previous state or view of the application 136-1, and redo / undo queues for actions previously performed by the user.
[0088] The event monitor 171 receives event information from the peripheral device interface 118. The event information includes information about sub-events (for example, a user touch on the touch-sensitive display 112 as part of a multi-touch gesture). The peripheral device interface 118 transmits information received from the I / O subsystem 106 or from sensors such as the proximity sensor 166, one or more accelerometers 168, and / or microphone 113 (via the audio circuit mechanism 110). The information received by the peripheral device interface 118 from the I / O subsystem 106 includes information from the touch-sensitive display 112 or touch-sensitive surface.
[0089] In some embodiments, the event monitor 171 sends requests to the peripheral device interface 118 at predetermined intervals. In response, the peripheral device interface 118 sends event information. In other embodiments, the peripheral device interface 118 sends event information only when there is a significant event (e.g., receiving an input that exceeds a predetermined noise threshold and / or for a longer period of time).
[0090] In some embodiments, the event sorter 170 also includes a hit view determination module 172 and / or an active event recognition determination module 173.
[0091] The hit view determination module 172 provides software procedures for determining where a sub-event occurred within one or more views when the touch-sensitive display 112 displays one or more views. A view consists of a control unit and other elements that the user can see on the display.
[0092] Another aspect of the user interface associated with an application is a set of views, which may be referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures are performed. The application view (of each application) in which a touch is detected may correspond to the program level within the application's program hierarchy or view hierarchy. For example, the lowest level view in which a touch is detected may be called a hit view, and the set of events recognized as appropriate input may be determined, at least in part, based on the hit view of the initial touch that initiates a touch-based gesture.
[0093] The hit view determination module 172 receives information related to sub-events of touch-based gestures. If the application has multiple views organized hierarchically, the hit view determination module 172 identifies the hit view as the lowest-level view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view where the first sub-event (i.e., the first sub-event in a sequence of sub-events that form an event or potential event) occurs. Once a hit view is identified by the hit view determination module, the hit view typically receives all sub-events related to the same touch or input source that identified it as a hit view.
[0094] The active event recognition determination module 173 determines which view(s) in the view hierarchy should receive a particular sequence of sub-events. In some embodiments, the active event recognition determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, the active event recognition determination module 173 determines that all views, including the physical location of the sub-event, are actively involved views, and therefore all actively involved views should receive a particular sequence of sub-events. In other embodiments, even if the touch sub-event is entirely confined to a region associated with a particular view, higher-level views in the hierarchy will remain actively involved views.
[0095] The event dispatcher module 174 transmits event information to an event recognition unit (e.g., an event recognition unit 180). In embodiments including an active event identification unit determination module 173, the event dispatcher module 174 distributes the event information to the event recognition unit determined by the active event recognition unit determination module 173. In some embodiments, the event dispatcher module 174 stores the event information acquired by each event receiving unit module 182 in an event queue.
[0096] In some embodiments, the operating system 126 includes an event sorter 170. Alternatively, application 136-1 includes an event sorter 170. In yet another embodiment, the event sorter 170 is a standalone module or part of another module stored in memory 102, such as a contact / movement module 130.
[0097] In some embodiments, application 136-1 includes a plurality of event handlers 190 and one or more application views 191, each containing instructions for handling touch events occurring within each view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognition units 180. Typically, each application view 191 includes a plurality of event recognition units 180. In other embodiments, one or more of the event recognition units 180 are part of a separate module, such as a user interface kit (not shown) or a higher-level object from which application 136-1 inherits methods and other properties. In some embodiments, each event handler 190 includes one or more event data 179 received from a data updater 176, an object updater 177, a GUI updater 178, and / or an event sorter 170. The event handler 190 may utilize or call the data updater 176, object updater 177, or GUI updater 178 to update the application's internal state 192. Alternatively, one or more of the application views 191 include one or more respective event handlers 190. In some embodiments, one or more of the data updater 176, object updater 177, and GUI updater 178 are included within each application view 191.
[0098] Each event recognition unit 180 receives event information (e.g., event data 179) from the event sorter 170 and identifies an event from that event information. The event recognition unit 180 includes an event receiving unit 182 and an event comparison unit 184. In some embodiments, the event recognition unit 180 further includes at least a subset of metadata 183 and event distribution instructions 188 (which may include sub-event distribution instructions).
[0099] The event receiver 182 receives event information from the event sorter 170. The event information includes, for example, information about sub-events such as touches or movement of touches. Depending on the sub-event, the event information may also include additional information such as the location of the sub-event. If the sub-event involves movement of a touch, the event information may further include the speed and direction of the sub-event. In some embodiments, an event includes rotation of the device from one direction to another (for example, from portrait orientation to landscape orientation, or vice versa), and the event information includes corresponding information about the current orientation of the device (also called the device orientation).
[0100] The event comparator 184 compares event information with a default event or sub-event definition and, based on the comparison, determines the event or sub-event, or determines or updates the state of the event or sub-event. In some embodiments, the event comparison unit 184 includes an event definition 186. The event definition 186 includes an event definition (e.g., a default sequence of sub-events), such as event 1 (187-1) and event 2 (187-2). In some embodiments, sub-events within event (187) include, for example, touch start, touch end, touch movement, touch cancellation, and multiple touches. In one embodiment, the definition of event 1 (187-1) is a double tap on a displayed object. A double tap includes, for example, a first touch (touch start) for a predetermined stage on the displayed object, a first lift-off (touch end) for the predetermined stage, a second touch (touch start) for the predetermined stage on the displayed object, and a second lift-off (touch end) for the predetermined stage. In another embodiment, event 2(187-2) is defined as dragging on a displayed object. Dragging includes, for example, touching (or contacting) a predetermined stage on the displayed object, moving the touch across the touch-sensitive display 112, and lifting off the touch (end of touch). In some embodiments, the event also includes information about one or more associated event handlers 190.
[0101] In some embodiments, the event definition 187 includes an event definition for each user interface object. In some embodiments, the event comparison unit 184 performs a hit test to determine which user interface object is associated with a sub-event. For example, in an application view where three user interface objects are displayed on the touch-sensitive display 112, when a touch is detected on the touch-sensitive display 112, the 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 its respective event handler 190, the event comparison unit uses the results of the hit test to determine which event handler 190 needs to be activated. For example, the event comparison unit 184 selects the event handler associated with the object that triggers the sub-event and the hit test.
[0102] In some embodiments, the definition of each event (187) also includes a delay effect that delays the transmission of event information until it is determined whether the sequence of sub-events corresponds to the event type of the event recognition unit.
[0103] If each event recognition unit 180 determines that a series of sub-events does not match any of the events in the event definition 186, each event recognition unit 180 enters an event impossible, event failed, or event terminated state and thereafter ignores subsequent sub-events of the touch-based gesture. In this situation, any other event recognition units that remain active for the hit view continue to track and process the sub-events of the ongoing touch-based gesture.
[0104] In some embodiments, each event recognition unit 180 includes metadata 183 having configurable properties, flags, and / or lists indicating how the event distribution system performs sub-event distribution to event recognition units in which it is actively involved. In some embodiments, the metadata 183 includes configurable properties, flags, and / or lists indicating how event recognition units may interact with each other. In some embodiments, the metadata 183 includes configurable properties, flags, and / or lists indicating whether sub-events are distributed to different levels within the view hierarchy or program hierarchy.
[0105] In some embodiments, each event recognition unit 180 activates an event handler 190 associated with an event when one or more specific sub-events of an event are recognized. In some embodiments, each event recognition unit 180 distributes event information associated with the event to the event handler 190. Activating the event handler 190 is distinct from sending (and delaying the sending of) the sub-events to the respective hit view. In some embodiments, the event recognition unit 180 throws a flag associated with the recognized event, and the event handler 190 associated with the flag catches the flag and performs default processing.
[0106] In some embodiments, the event distribution command 188 includes a sub-event distribution command that distributes event information about a sub-event without activating an event handler. Instead, the sub-event distribution command distributes the event information to an event handler or an actively involved view associated with a set of sub-events. The event handler associated with the set of sub-events or the actively involved view receives the event information and performs predetermined processing.
[0107] In some embodiments, the data updater 176 creates and updates data used in application 136-1. For example, the data updater 176 updates telephone numbers used in contact module 137 or stores video files used in video player module 145. In some embodiments, the object updater 177 creates and updates objects used in application 136-1. For example, the object updater 176 creates new user interface objects or updates the positions of user interface objects. The GUI updater 178 updates the GUI. For example, the GUI updater 178 prepares display information and sends it to graphics module 132 for display on touch-sensitive display.
[0108] In some embodiments, the event handler 190 includes or has access to a data updater 176, an object updater 177, and a GUI updater 178. In some embodiments, the data updater 176, the object updater 177, and the GUI updater 178 are included in one module of their respective applications 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0109] The aforementioned discussion of event processing for user touch on a touch-sensitive display also applies to other forms of user input for operating the multifunction device 100 using input devices, but it will be understood that not all of this begins on a touchscreen. For example, mouse movements and mouse button presses optionally matched to single or multiple keyboard presses or holds, touch movements such as taps, drags, and scrolls on a touchpad, pen stylus input, device movement, verbal communication, detected eye movements, biometric input, and / or any combination thereof may be optionally used as inputs corresponding to sub-events that define the event to be recognized.
[0110] Figure 2 shows a portable multifunctional device 100 having a touchscreen 112 according to several embodiments. The touchscreen optionally displays one or more graphics within a user interface (UI) 200. In embodiments described later and in this embodiment, the user can select one or more graphics by making gestures on the graphics using, for example, one or more fingers 202 (not shown in the figure to an exact scale) or one or more styluses 203 (not shown in the figure to an exact scale). In some embodiments, the selection of one or more graphics occurs when the user disconnects from one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (from left to right, right to left, upward, and / or downward), and / or rolling of a finger in contact with the device 100 (from 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, if the gesture corresponding to selection is a tap, a swipe gesture over an application icon does not arbitrarily select the corresponding application.
[0111] Device 100 may also include one or more physical buttons, such as a "Home" or menu button 204. As previously mentioned, the menu button 204 may be used to navigate to any application 136 within the set of applications that can be run on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in the GUI displayed on the touchscreen 112.
[0112] In one embodiment, device 100 includes a touchscreen 112, a menu button 204, a push button 206 for turning the device on / off and locking the device, one or more volume buttons 208, a receiver identification module (SIM) card slot 210, a headset jack 212, and an external docking / charging port 124. The push button 206 is optionally used to turn the device on / off by pressing and holding the button for a predetermined time interval, and to lock and / or unlock the device or initiate an unlocking process by pressing and releasing the button before the predetermined time interval has elapsed. In an alternative embodiment, device 100 also accepts verbal input through a microphone 113 to activate or deactivate certain functions. The device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of contact with the touchscreen 112 and / or one or more tactile output generators 167 for generating tactile output from the user of the device 100.
[0113] Figure 3 is a block diagram of an exemplary multifunctional device having a display and a touch-sensitive surface according to several embodiments. Device 300 may not be portable. In some embodiments, device 300 is a laptop computer, desktop computer, tablet computer, multimedia player device, navigation device, educational device (such as a children's learning toy), game system, or control device (e.g., 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. The communication buses 320 optionally include circuitry (sometimes referred to as a chipset) for interconnecting and controlling communication between system components. Device 300 includes an input / output (I / O) interface 330 with a display 340, which is typically a touchscreen display. The 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 (similar to the tactile output generator 167 described above with reference to Figure 1A) for generating tactile output on device 300, and a sensor 359 (e.g., an optical sensor, an accelerometer, a proximity sensor, a touch sensor, and / or a contact intensity sensor similar to the contact intensity sensor 165 described above with reference to Figure 1A). The memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access semiconductor 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 semiconductor storage devices. The memory 370 optionally includes one or more storage devices located away from the CPU(s) 310.In some embodiments, memory 370 stores programs, modules, and data structures, programs, modules, and data structures, or subsets thereof, stored in memory 102 of the portable multifunction device 100 (Figure 1A). Furthermore, memory 370 may store additional programs, modules, and data structures that are not present in memory 102 of the portable multifunction device 100. For example, memory 370 of device 300 may optionally store a drawing module 380, a presentation module 382, a document creation module 384, a website creation module 386, a disk authoring module 388, and / or a spreadsheet module 390, while memory 102 of the portable multifunction device 100 (Figure 1) does not optionally store these modules.
[0114] Each of the elements identified above in Figure 3 may be stored in one or more of the aforementioned memory devices. Each of the modules identified above corresponds to an instruction set for performing the function described above. The modules or programs (i.e., instruction sets) identified above do not need to be implemented as separate software programs, procedures, or modules, and therefore, in various embodiments, various subsets of these modules may be combined or rearranged in other ways. In some embodiments, memory 370 may store a subset of the modules and data structures identified above. Furthermore, memory 370 may store additional modules and data structures not described above.
[0115] We will focus on embodiments of a user interface ("UI") that can be implemented on a portable multi-functional device 100.
[0116] Figure 4A shows an exemplary user interface for an application menu on a portable multifunction device 100 according to several embodiments. A similar user interface may be implemented on device 300. In some embodiments, the user interface 400 includes the following elements, or subsets or supersets thereof.
[0117] ●Signal strength indicators (single or multiple) for wireless communication (single or multiple) such as cellular signals and Wi-Fi signals 402, ●Time 404, ●Bluetooth indicator 405, ●Battery status indicator 406, ●Tray 408 contains icons for frequently used applications, such as the following: ○Optionally including an indicator 414 of the number of missed calls or voicemail messages, an icon 416 for the telephone module 138 labeled "Telephone", ○Optionally including an indicator 410 of the number of unread emails, an icon 418 labeled "Mail" for the email client module 140, ○ Icon 420 for browser module 147, labeled as "Browser", and ○ Icon 422 for the video and music playback module 152, also known as the iPod (trademark of Apple Inc.) module 152, which is labeled "iPod," and ● Icons for other applications, such as the ones listed below. ○ Icon 424 for IM module 141, labeled as "Message", ○ Icon 426 for calendar module 148, labeled as "Calendar" ○ Icon 428 for image management module 144, labeled as "Photo" ○ Icon 430 for camera module 143, labeled "Camera" ○ Icon 432 for online video module 155, labeled "online video" ○ Icon 434 for stock widget 149-2, labeled "Stocks" ○ Icon 436 for map module 154, labeled as "Map" ○ Icon 438 for weather widget 149-1, labeled "Weather" ○ Icon 440 for alarm clock widget 149-4, labeled as "Clock" ○ Icon 442 for training support module 142, labeled "Training Support" ○ Icon 444 for memo module 153, which is labeled as "Memo", and ○ An icon 446 for a configuration application or module that provides access to settings related to device 100 and its various applications 136.
[0118] Please note that the icon labels shown in Figure 4A are for illustrative purposes only. For example, the icon 422 for the video and music playback 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 to which that application icon corresponds. In some embodiments, the label for a particular application icon is different from the name of the application to which that particular application icon corresponds.
[0119] Figure 4B shows an exemplary user interface on a device (e.g., device 300 in Figure 3) that has a touch-sensitive surface 451 (e.g., tablet or touchpad 355 in Figure 3) separate from the display 450 (e.g., touchscreen display 112). Device 300 also includes one or more contact intensity sensors (e.g., one or more of sensors 357) for detecting the intensity of contact on the touch-sensitive surface 451, and / or one or more tactile output generators 359 for generating tactile output to the user of device 300.
[0120] Some of the following embodiments will be described with reference to input on a touchscreen display 112 (when the touch-sensing surface and the display are combined), but in some embodiments, the device detects input on a touch-sensing surface separate from the display, as shown in Figure 4B. In some embodiments, this touch-sensing surface (e.g., 451 in Figure 4B) has a principal axis (e.g., 452 in Figure 4B) corresponding to a principal axis (e.g., 453 in Figure 4B) on the display (e.g., 450). According to these embodiments, the device detects contact (e.g., 460 and 462 in Figure 4B) with the touch-sensing surface 451 at locations corresponding to each location on the display (e.g., 460 corresponds to 468 and 462 corresponds to 470 in Figure 4B). In this method, if the touch-sensitive surface is separate from the display, user input (e.g., touches 460 and 462, and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in Figure 4B) is used by the device to operate the user interface on the display of the multifunction device (e.g., 450 in Figure 4B). It should be understood that a similar method may be optionally used for other user interfaces described herein.
[0121] Furthermore, while the following description primarily refers to finger input (e.g., finger touch, finger tap gesture, finger swipe gesture), it should be understood that in some embodiments, one or more of these finger inputs may be replaced by input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture may optionally be replaced with a mouse click (e.g., instead of touch), followed by cursor movement along the swipe path (e.g., instead of touch movement). In another embodiment, a tap gesture may optionally be replaced with a mouse click (e.g., instead of stopping touch detection after touch detection). Similarly, when multiple user inputs are detected simultaneously, it should be understood that multiple computer mice may be used simultaneously, optionally, or that a mouse and finger touch may be used simultaneously.
[0122] Figure 5A shows an exemplary personal electronic device 500. The device 500 comprises a body 502. In some embodiments, the device 500 has a touch-sensitive display screen 504. Alternatively, or in addition to the touch screen 504, the device 500 has a display and a touch-sensitive surface. In some embodiments, the touch screen 504 (or touch-sensitive surface) may have one or more intensity sensors for detecting the intensity of the applied contact (e.g., touch). One or more intensity sensors on the touch screen 504 (or touch-sensitive surface) may provide output data representing the intensity of the touch. The user interface of the device 500 may respond to touches based on the intensity of the touch, meaning that touches of different intensity may invoke different user interface behaviors on the device 500.
[0123] In some embodiments, regardless of whether the touchscreen 504 (or touch-sensing surface) has the intensity sensor described above, device 500 may optionally communicate with a stylus having a pressure-sensitive tip that detects and provides data relating to the intensity of the touch of the stylus on the touchscreen 504.
[0124] Techniques for detecting and processing touch intensity may be described, for example, in the related applications, International Patent Application PCT / US2013 / 040061, filed 8 May 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," and International Patent Application PCT / US2013 / 069483, filed 11 November 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships."
[0125] In some embodiments, the device 500 has one or more input mechanisms 506 and 508. The input mechanisms 506 and 508 may be physical, if included. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, the device 500 has one or more mounting mechanisms. Such mounting mechanisms, if included, may allow the device 500 to be attached to, for example, a hat, eyewear, earrings, necklace, shirt, jacket, bracelet, watch band, chain, trousers, belt, shoes, wallet, backpack, etc. These mounting mechanisms may allow the device 500 to be worn by a user.
[0126] Figure 5B shows an exemplary personal electronic device 500. The device 500 has a bus 512 that operably connects an I / O unit 514 to one or more computer processors 516 and memory 518. The I / O unit 514 may be connected to a display 504 which may have a touch-sensing component 522 and, optionally, a touch intensity-sensing component 524. Furthermore, the I / O unit 514 may be connected 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. The device 500 may also include input mechanisms 506 and / or 508. The input mechanism 506 may be, for example, a rotatable input device. The input mechanism 508 may be a button in some embodiments.
[0127] The input mechanism 508 may be a microphone in some embodiments. The computing device 500 may include various sensors such as a GPS sensor 532, an accelerometer 534, a direction sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or a combination thereof, all of which may be operably connected to the I / O unit 514.
[0128] The memory 518 of the computing device 500 may be a non-temporary computer-readable storage medium for storing computer-executable instructions, which, when executed by one or more computer processors 516, may cause the computer processors to perform the techniques described above, including the processing shown in Figures 7, 9A, 9B, 11, 13K, 22, 31, 39, and 46. Computer-executable instructions may also be stored and / or transmitted to any non-temporary computer-readable storage medium for use by or in conjunction with instruction execution systems, devices, or other systems that can fetch instructions from computer-based systems, systems including processors, or instruction execution systems, devices, or other systems capable of executing those instructions. For the purposes of this specification, “non-temporary computer-readable storage medium” may be any medium capable of tangibly accommodating or storing computer-executable instructions for use by or in conjunction with instruction execution systems, devices, or other systems. Non-temporary 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, CDs, DVDs, or optical disks based on Blu-ray® technology, and persistent solid-state memory such as flash memory and solid-state drives. The computing device 500 is not limited to the components and configurations shown in Figure 5B, and may include other or additional components in multiple configurations.
[0129] Figure 5C shows an exemplary personal electronic device 550. In the exemplary embodiment, the device 550 is generally a wristwatch comprising a body 552 and a strap 554 for securing the device 550 to the user's body. That is, the device 550 is wearable. The body 552 may be designed to be coupled with the strap 554. The device 550 may have a touch-sensitive display screen (hereinafter referred to as a touchscreen) 556 and a crown 558. The device 550 may also have buttons 560, 562, and 564.
[0130] Traditionally, in the context of a wristwatch, the term "crown" refers to the cap on the spindle used to wind the watch. In the context of a personal electronic device, the crown may be a physical component of the electronic device, rather than a virtual crown on a touch-sensitive display. The crown 558 may be mechanical, meaning it may be connected to a sensor for converting the physical movement of the crown into an electrical signal. The crown 558 may rotate in two directions (e.g., forward and backward). The crown 558 may also be pushed toward the body of the device 550 and / or pulled out from the device 550. The crown 558 may be touch-sensitive, for example, using capacitive touch technology that can detect whether a user is touching the crown. The crown 558 may also swing in one or more directions, or move along a trajectory along its edge, or translate at least partially around the periphery of the body 552. In some embodiments, two or more crowns 558 may be used. The visual appearance of the crown 558 may, but does not have to, resemble the crown of a conventional wristwatch. Buttons 560, 562, and 564, if included, may each be a physical button or a touch-sensitive button. That is, the buttons may be, for example, physical buttons or capacitive buttons. Furthermore, the body 552, which may have a bezel, may have a predetermined area on the bezel that functions as a button.
[0131] The display 556 may include a display device such as a liquid crystal display (LCD), light-emitting diode (LED) display, or organic light-emitting diode (OLED) display, which is partially or entirely positioned on the back or front of a touch sensor panel implemented using any desired touch sensing technology, such as mutual capacitive touch sensing, self-capacitive touch sensing, resistive touch sensing, or projected scanning touch sensing. The display 556 may enable a user to perform various functions by touching the top of the touch sensor panel or hovering near the touch sensor panel with one or more fingers or other objects.
[0132] In some embodiments, device 550 may further include one or more pressure sensors (not shown) for detecting force or pressure applied to the display. The force or pressure applied to the display 556 may be used as input to device 550 to perform any desired action, such as making a selection, opening or closing a menu, or displaying additional options / actions. In some embodiments, different actions may be performed based on the amount of force or pressure applied to the display 556. One or more pressure sensors may further be used to determine the location where the force is being applied to the display 556.
[0133] Figure 5D shows some block diagrams of the components of device 550. As shown in the figure, the crown 558 may be coupled to an encoder 572, which may be configured to monitor the physical state or changes in state of the crown 558 (e.g., the position of the crown), convert it into an electrical signal (e.g., convert it into an analog or digital signal representation of the position or change in position of the crown 558), and provide the signal to the processor 570. For example, in some embodiments, the encoder 572 may be configured to detect the absolute rotational position of the crown 558 (e.g., an angle between 0 and 360 degrees) and output an analog or digital representation of this position to the processor 570. Alternatively, in other embodiments, the encoder 572 may be configured to detect changes in the rotational position of the crown 558 (e.g., changes in the rotation angle) over a certain sampling period and output an analog or digital representation of the detected change to the processor 570. In these embodiments, the position information of the crown may further indicate the direction of rotation of the crown (e.g., a positive value may correspond to one direction and a negative value to the other direction). In yet another embodiment, the encoder 572 may be configured to detect the rotation of the crown 558 in any desired manner (e.g., velocity, acceleration, etc.) and provide the crown rotation information to the processor 570. In an alternative embodiment, instead of providing the information to the processor 570, this information may be provided to other components of the device 550. While the embodiments described herein refer to using the rotational position of the crown 558 to control scrolling, scaling, or the position of an object, it should be understood that any other physical state of the crown 558 may be used.
[0134] In some embodiments, the physical state of the crown may control the physical attributes of the display 556. For example, when the crown 558 is in a particular position (e.g., rotated forward), the display 556 may have a limited z-axis transverse capability. That is, the physical state of the crown may represent the functionality of the physical form of the display 556. In some embodiments, the temporal attribute of the physical state of the crown 558 may be used as an input to the device 550. For example, the interpretation of a fast change in the physical state may differ from the interpretation of a slow change in the physical state.
[0135] The processor 570 may be further coupled to receive input signals from buttons 560, 562, and 564 along with touch signals from the touch-sensitive display 556. The buttons may be, for example, physical buttons or capacitive buttons. Furthermore, the body 552, which may have a bezel, may have predetermined areas on the bezel that act as buttons. The processor 570 may be configured to interpret these input signals and output appropriate display signals to cause images to be generated on the touch-sensitive display 556. Although a single processor 570 is shown, it should be understood that any number of processors or other computing devices may be used to perform the general functions described above.
[0136] As used herein, the term “affordance” refers to user-interactive graphical user interface objects that may be displayed on the display screens of devices 100, 300, and / or 500 (Figures 1, 3, and 5). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) may each constitute an affordance.
[0137] As used herein, the term “focus selector” refers to an input element that indicates the current portion of the user interface that the user is interacting with. In implementations including a cursor or other location marker, the cursor functions as a “focus selector” when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., the touchpad 355 in Figure 3, or the touch-sensitive surface 451 in Figure 4B) and the cursor is over a particular user interface element (e.g., a button, window, slider, or other user interface element), and the particular user interface element is adjusted according to the detected input. In some implementations including a touchscreen display that enables direct interaction with the user interface on the touchscreen (e.g., the touch-sensitive display system 112 in Figure 1A, or the touchscreen 112 in Figure 4A), a detected touch on the touchscreen functions as a “focus selector” when input (e.g., a press input by touch) is detected on the touchscreen at the location of a particular user interface element (e.g., a button, window, or other user interface element), and the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one area of the user interface to another without corresponding cursor movement or touch movement on the touchscreen (e.g., by moving focus from one button to another using the tab key or arrow keys). In these implementations, the focus selector moves in accordance with the movement of focus between different areas of the user interface. Regardless of the specific form the focus selector takes, the focus selector as a whole is a user-controlled user interface element (or touch on the touchscreen display) that communicates the user's intended interaction with the user interface (e.g., by instructing the device to interact with the user interface element the user wishes to interact with).For example, when a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of the focus selector (e.g., cursor, touch, or selection box) above each button indicates (in contrast to other user interface elements displayed on the device's display) that the user is trying to activate that button.
[0138] As used in the specification and 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 multiple intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples, or on a set of intensity samples collected within a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) for a predetermined event (e.g., after detection of contact, before detection of lift-off of contact, before or after detection of the start of movement of contact, before detection of the end of contact, before or after detection of an increase in contact intensity, and / or before or after detection of a decrease in contact intensity). The characteristic intensity of a contact is optionally based on one or more of the following: the maximum intensity of the contact, the mean intensity of the contact, the average intensity of the contact, the top 10 percentile values of the contact intensity, half the maximum intensity of the contact intensity, the 90 percent of the maximum intensity of the contact intensity, etc. In some embodiments, the duration of contact is used to determine characteristic intensity (for example, when characteristic intensity is the average intensity of contact over time). In some embodiments, characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an action was performed by a user. For example, the set of one or more intensity thresholds may include a first intensity threshold and a second intensity threshold. In this embodiment, a first action is performed as a result of contact with a characteristic intensity not exceeding the first threshold, a second action is performed as a result of contact with a characteristic intensity exceeding the first intensity threshold but not exceeding the second intensity threshold, and a third action is performed as a result of contact with a characteristic intensity exceeding the third threshold. In some embodiments, the comparison between characteristic intensity and 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 at all (for example, whether to perform each option or to omit the performance of each action).
[0139] In some embodiments, a portion of the gesture is identified for the purpose of determining characteristic intensity. For example, a touch-sensitive surface may receive a continuous swipe contact that transitions from a starting position to an ending position, where the intensity of the contact increases. In this embodiment, the characteristic intensity of the contact at the ending position may be based not on the entire continuous swipe contact, but only on a portion of the swipe contact (e.g., only the portion of the swipe contact at the ending position). In some embodiments, a smoothing algorithm may be applied to the intensity of the swipe contact before determining the characteristic intensity of the contact. For example, the smoothing algorithm may optionally include one or more of the following: a non-weighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, these smoothing algorithms exclude small increases or decreases in the intensity of the swipe contact for the purpose of determining characteristic intensity.
[0140] The intensity of contact on a touch-sensitive surface may be characterized to one or more intensity thresholds, such as a contact detection intensity threshold, a light press intensity threshold, a deep press intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light press intensity threshold corresponds to the intensity at which the device will perform an action typically associated with a physical mouse button or trackpad click. In some embodiments, the deep press intensity threshold corresponds to the intensity at which the device will perform an action different from the action typically associated with a physical mouse button or trackpad click. In some embodiments, if contact is detected at a characteristic intensity below the light press intensity threshold (for example, above a slight contact detection intensity threshold below which contact is no longer detected), the device will move the focus selector in accordance with the movement of contact on the touch-sensitive surface without performing an action associated with the light press intensity threshold or the deep press intensity threshold. In general, unless otherwise specified, these intensity thresholds are consistent across different sets of user interface diagrams.
[0141] An increase in the characteristic intensity of contact from an intensity below a light pressure intensity threshold to an intensity between the light and deep pressure intensity thresholds may be referred to as a "light pressure" input. An increase in the characteristic intensity of contact from an intensity below a deep pressure intensity threshold to an intensity above a deep pressure intensity threshold may be referred to as a "deep pressure" input. An increase in the characteristic intensity of contact from an intensity below a contact detection intensity threshold to an intensity between the contact detection intensity threshold and the light pressure intensity threshold may be referred to as detection of contact on the touch surface. A decrease in the characteristic intensity of contact from an intensity above a contact detection intensity threshold to an intensity below a contact detection intensity threshold may be referred to as detection of contact lift-off 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.
[0142] In some embodiments described herein, one or more actions are performed in response to the detection of a gesture including each pressing input, or in response to the detection of each pressing input performed at each (or more) contact, each of which pressing inputs is detected, at least in part, on the detection of an increasing intensity of the contact (or more) above a pressing input intensity threshold. In some embodiments, each action is performed in response to the detection of an increasing intensity of the contact (e.g., a "downstroke" of each pressing input) above a pressing input intensity threshold. In some embodiments, the pressing input includes an increasing intensity of the contact above a pressing input intensity threshold and a decreasing intensity of the contact below a subsequent pressing input intensity threshold, and each action is performed in response to the detection of a decreasing intensity of the contact (e.g., an "upstroke" of each pressing input) below a subsequent pressing input threshold.
[0143] In some embodiments, the device employs intensity hysteresis to avoid accidental inputs, which may be referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship with a press input intensity threshold (for example, the hysteresis intensity threshold is X intensity units lower than the press input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable ratio of the press input intensity threshold). Thus, in some embodiments, the press input includes an increase in the intensity of each contact above the press input intensity threshold, and a subsequent decrease in the intensity of the contact below the hysteresis intensity threshold corresponding to the press input intensity threshold, and each action is performed in response to the detection of a subsequent decrease in the intensity of each contact below that hysteresis intensity threshold (for example, an “upstroke” of each press input). Similarly, in some embodiments, a press input is detected only when the device detects an increase in contact intensity from an intensity below a hysteresis intensity threshold to an intensity above a press input intensity threshold, and optionally a decrease in subsequent contact intensity to an intensity below the hysteresis intensity, and each action is performed in response to the detection of that press input (e.g., an increase in contact intensity or a decrease in contact intensity, depending on the situation).
[0144] For the sake of clarity, the description of an action performed in response to a press input associated with a press input intensity threshold, or in response to a gesture including such press input, is optionally triggered in response to the detection of any of the following: an increase in contact intensity above the press input intensity threshold, an increase in contact intensity from below the hysteresis intensity threshold to above the press input intensity threshold, a decrease in contact intensity below the press input intensity threshold, and / or a decrease in contact intensity below the hysteresis intensity threshold corresponding to the press input intensity threshold. Furthermore, in embodiments described as being performed in response to the detection of a decrease in contact intensity below the press input intensity threshold, the action is optionally performed in response to the detection of a decrease in contact intensity below the hysteresis intensity threshold, which is corresponding to the press input intensity threshold and lower than the press input intensity threshold.
[0145] Here, we draw attention to embodiments of devices, user interfaces, and associated processing that may be implemented on multifunction devices such as devices 100, 300, 500, and / or 550 in order to improve the user experience in manipulating user interface objects.
[0146] Figures 6A to 6F show exemplary user interfaces for manipulating user interface objects using an electronic device according to several embodiments. In some embodiments, the electronic device is device 500. The electronic device has a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506).
[0147] Figure 6A shows document 602, which is an embodiment of a user interface object. Document 602 includes a title 604A, paragraphs of body text 606A, and an image 608A. The electronic device is configured to allow the user to scroll within document 602 so that only a portion of document 602 is displayed on the display (e.g., 504) at a given time. The scroll position of the document is a property of the document. The value of the document's scroll position changes as the document is scrolled.
[0148] The user interface diagrams described may optionally include columns (e.g., 610) indicating a range of object characteristics. These columns are typically not part of the displayed user interface but are provided to aid in the interpretation of the diagram. In this embodiment, the document scroll position may range from 0.0 to 1.0, as shown in column 610, which has scroll positions (e.g., characteristics) ranging from 0.0 (e.g., 610A) to 1.0 (e.g., 610B).
[0149] In this embodiment, column 610 includes various subsets of the range of column 610 that modify how the user interacts with the properties of an object. Figure 6A shows subsets 604B, 606B, and 608B. Like these columns, the subsets shown in the figure are not typically part of the user interface displayed, but are provided to assist in the interpretation of the figure. For example, the range of subset 606B is from 606C (e.g., scroll position value 0.42) to 606D (e.g., scroll position value 0.56) of column 610. The scrolling behavior of document 602 differs when the scroll position value of document 602 is within the range of subset 606B compared to the scrolling behavior immediately before entering the range of subset 606B. In some embodiments, the scrolling behavior of a document differs when a first behavior occurs when the scroll position is within one of the ranges of subsets 604B, 606B, and 608B, compared to a second behavior when the scroll position is not within any of the subsets. In some embodiments, the scrolling behavior differs for each of the subsets 604B, 606B, and 608B compared to each other, and compared to the scrolling behavior when not in any of the subsets.
[0150] Figure 6B shows a visible display area 620, a rotatable input mechanism (e.g., 506), and a scroll value indicator 622 of an electronic device (e.g., device 500). The visible display area 620 includes an exemplary area that identifies the user interface to be displayed. For example, the display area 620 shows the portion of document 602 that is displayed on the display when document 602 is scrolled using the rotatable input mechanism 506. The scroll value indicator 622 assists in the interpretation of the figure by indicating the value of the scroll position of document 602, as described in relation to Figures 6C to 6E. The scroll value indicator 622 is not typically part of the user interface to be displayed.
[0151] Figure 6C shows the visible portion of document 602, as indicated by the display area 620. In Figure 6C, the scroll position value of the document is indicated by the scroll value indicator 622 (e.g., scroll position value 0.63). The device displays an object (e.g., document 602) on the display according to the value of an object characteristic (e.g., scroll position) (e.g., scroll position value 0.63 in Figure 6C), where this value is within a range of the characteristic value (e.g., within column 610 ranging from 0.0 to 1.0). In other embodiments, the object characteristic may be, for example, the zoom size of the object (e.g., magnification) or the degree of rotation of the object.
[0152] The device receives a user input request that represents the rotation of a rotatable input mechanism (e.g., 506). For example, the user rotates the rotatable input mechanism 506 to change the scroll position of document 602.
[0153] The device determines whether the value (e.g., scroll position value) of a characteristic (e.g., scroll position) of an object (e.g., 602) falls within a predetermined subset (e.g., within subset 606B) of the range of characteristic values (e.g., 610).
[0154] Upon determining that the value of an object's (e.g., 602) characteristic (e.g., scroll position) is not within a predetermined subset of the characteristic's value range, the device updates the object's characteristic value (e.g., scroll position) within the characteristic's value range, based on user input requests and according to a second function, as shown in Figures 6C to 6D.
[0155] Upon determining that the value (e.g., scroll position value) of an object's (e.g., 602) characteristic (e.g., scroll position) falls within a predetermined subset (e.g., 606B) of the characteristic's value range, the device updates the object's characteristic value (e.g., scroll position value) within the range of the characteristic's value range, based on a user input request, according to a first function, as shown in Figure 6E. The first and second functions are different functions.
[0156] Thus, when the user rotates the rotatable input mechanism, document 602 begins to scroll on the display. As shown in Figures 6C to 6D, during certain portions of the scroll (e.g., outside of subsets 604B, 606B, and 606C), the scrolling occurs based on a second function. As shown in Figure 6E, during other portions of the scroll (e.g., within subset 606B), the scrolling occurs based on a first function. For example, a particular rotation of the rotatable input mechanism may be used to scroll the entire range between subsets 608B and 606B (e.g., starting from a scroll position value of 0.70 and scrolling from 0.70 to 0.56 based on the second function). However, the same particular rotation of the rotatable input mechanism may also scroll only within a portion of subset 608B (e.g., starting from a scroll position value of 0.56 and scrolling from 0.56 to 0.53 based on the first function). By reducing the amount of scrolling required within a subset (e.g., 606B), the device provides a higher resolution (and therefore higher detail) for scrolling within those parts of the document. Doing so may encourage increased user dwell time in specific parts of the document. In some embodiments, further precise scrolling within specific parts of the document may be enabled by configuring the subsets to match specific aspects of the document, such as titles 604A, paragraphs of body text 606A, and images 608A.
[0157] Figure 6F illustrates the manipulation of the zoom of an object (e.g., image 612). The image (e.g., 612) is displayed according to a value (e.g., zoom size value) of an object characteristic (e.g., zoom size), which is within a range of characteristic values (e.g., along column 614). In this embodiment, subsets 612A, 612B, and 612C may be used to accelerate the change in the characteristic. Thus, when the user rotates the rotatable input mechanism, the image is zoomed according to different zoom size values. While the zoom size value is within subsets 612A, 612B, and 612C, the progression along column 612 occurs rapidly (e.g., a slight rotation of the rotatable input mechanism significantly changes the image zoom). While the zoom size value is not within subsets 612A, 612B, and 612C, the progression along column 612 occurs slowly (e.g., even a large rotation of the rotatable input mechanism only slightly changes the image zoom). As a result, the device provides higher resolution (and therefore higher detail) for zooming between specific zoom size values.
[0158] When an image reaches its minimum zoom size (e.g., 0.0), it may be reduced to a zoom level below 0.0 and then returned to zoom level 0.0. This rubber-banding effect informs the user that the minimum zoom limit has been reached. Similarly, when an image reaches its maximum zoom size (e.g., 1.0), it may be enlarged to a zoom level above 1.0 and then returned to zoom level 1.0. This rubber-banding effect informs the user that the maximum zoom limit has been reached.
[0159] According to some embodiments, updating the display of an object (e.g., 602, 612) according to updated values of its properties (e.g., scroll position, zoom size) includes animating the object (e.g., animating the document to scroll or animating the object to zoom) to reflect the updated values of the object's properties.
[0160] According to some embodiments, a predetermined subset of the range of values for a characteristic (e.g., 606B) includes an intermediate value (e.g., 606E), which lies within a predetermined subset that also includes both ends of the range of values for the characteristic (e.g., the start value and the end value, as well as the value between them). The first function is based on the intermediate value (e.g., 606E) of the subset of the range of values. For example, the behavior of the characteristic (e.g., scrolling or zooming) changes based on the distance to the intermediate value. According to some embodiments, the intermediate value of the predetermined subset of the range of values for the characteristic (e.g., 606B) is the mid-range value.
[0161] According to some embodiments, the first function is based on the difference between the value of an object's properties and a median value. Thus, in one embodiment, the level of detail to which a document can be scrolled increases as the document is scrolled closer to the center of a given subset, and the level of detail to which a document can be scrolled decreases as the document is scrolled further away from the center of a given subset. For example, a incremental rotation of a rotatable input mechanism while the document's scroll position is farther from the median value generates more scrolling than the same incremental rotation of the rotatable input mechanism while the document's scroll position is closer to the median value.
[0162] According to some embodiments, the updated value is based on the attributes of the user input request. According to some embodiments, the attributes of the user input request are one or more of the angular velocity of the rotatable input mechanism and the angular acceleration of the rotatable input mechanism.
[0163] According to some embodiments, updating the values (e.g., scroll position value or zoom size value) of an object's (e.g., 602, 612) properties (e.g., scroll position, zoom size) within a range of property values, based on user input requests, according to a second function, includes determining whether the values (e.g., scroll position, zoom size) of the object's properties fall within a second predetermined subset (e.g., 608B) of the range of property values, where the first subset (e.g., 606B) and the second predetermined subset (e.g., 608B) are different. Following the determination that the values (e.g., scroll position, zoom size) of the object's properties fall within the second predetermined subset of the range of property values, the values of the object's properties are further updated within a range of property values, based on user input requests, according to a third function. The first function, the second function, and the third function are different functions. Therefore, in one embodiment, different predetermined subsets may produce different behaviors. In another embodiment, two or more predetermined subsets may partially overlap, and their effects are combined over the overlapping range.
[0164] According to some embodiments, the range of the characteristic values follows a single dimension (for example, the range is not a multidimensional XY range). According to some embodiments, the range of the characteristic values is a linear column.
[0165] According to some embodiments, in accordance with the determination that the values (e.g., scroll position value, zoom size value) of a characteristic (e.g., scroll position, zoom size) of an object (e.g., 602, 612) fall within a predetermined subset (e.g., 606B, 612B) of the characteristic values, the device performs a haptic alert, such as a mechanical (e.g., tactile feedback) or audible (e.g., playback of an audio file) haptic alert in an electronic device.
[0166] According to some embodiments, an object is selected from a group consisting of documents and images. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). According to some embodiments, the object's properties are selected from a group consisting of scroll position (e.g., how much the object has been scrolled up / down or left / right), zoom size (e.g., how large / small the document's magnification is), and degree of rotation (e.g., how many radians the object has been rotated). According to some embodiments, the object's property is the scroll position, and a predetermined subset of the range of values for the property is the range of the scroll position. According to some embodiments, the object's property is the zoom size, and a predetermined subset of the range of values for the property is the range of the zoom size.
[0167] Figure 7 is a flowchart illustrating exemplary processes for manipulating user interface objects according to several embodiments. In some embodiments, Method 700 may be performed in an electronic device comprising a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506). Some operations of Method 700 may be combined, some operations may be rearranged, and some operations may be omitted. Exemplary devices capable of performing Method 700 include devices 100, 300, 500, and / or 550 (Figures 1A, 3, 5A, and 5C).
[0168] Method 700 provides an intuitive way to manipulate user interface objects. This method reduces the cognitive load on the user when using a device to manipulate user interface objects, such as scrolling, zooming, or rotating objects, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the interval between battery charges is increased by enabling the user to manipulate user interface objects more efficiently.
[0169] In block 702, an object (e.g., document 602) is displayed according to the value of the object's (e.g., document 602) characteristic (e.g., scroll position) (e.g., scroll position value 0.63 in Figure 6C), and this value falls within the range of the characteristic's (e.g., scroll position) value (e.g., the range from 0.0 to 1.0 in column 610).
[0170] In block 704, a user input request is received. The user input request represents the rotation of a rotatable input mechanism (e.g., 506).
[0171] In block 706, it is determined whether the value of an object's property (e.g., scroll position or zoom size) (e.g., scroll position value or zoom size value) falls within a predetermined subset of the range of property values (e.g., within 604B, 606B, or 608B).
[0172] In block 708, based on a determination that the value of an object's characteristic (e.g., scroll position or zoom size) (e.g., scroll position value or zoom size value) falls within a predetermined subset of the range of characteristic values (e.g., in Figures 6D to 6E, indicator 622 falls within subset 608D), the value of the object's characteristic (e.g., scroll position or zoom size) (e.g., scroll position value or zoom size value) is updated according to a first function based on a user input request, within the range of characteristic values.
[0173] In block 710, if the value of an object's (e.g., document 602) characteristic (e.g., scroll position or zoom size) is not within a predetermined subset of the characteristic's value range (e.g., indicator 622 is not in any subset as shown in Figure 6C), the object's characteristic value (e.g., scroll position or zoom size) is updated within the range of the characteristic's value according to a second function based on user input, where the first and second functions are different functions.
[0174] In block 712, the display of an object (e.g., document 602) is updated according to the updated values of the object's properties (e.g., to reflect scrolling on the display).
[0175] According to some embodiments, updating the display of an object (e.g., 602, 612) according to updated values of its properties (e.g., scroll position, zoom size) includes animating the object (e.g., animating the document to scroll or animating the object to zoom) to reflect the updated values of the object's properties.
[0176] According to some embodiments, a predetermined subset of the characteristic values (e.g., 606B) includes an intermediate value (e.g., 606E), the intermediate value being within a predetermined subset that includes both ends of the range of the characteristic values (e.g., the start value and the end value, or the value between them). The first function is based on the intermediate value (e.g., 606E) of the subset of the range of values. According to some embodiments, the intermediate value of a predetermined subset of the range of the characteristic values (e.g., 606B) is the midpoint value.
[0177] According to some embodiments, the first function is based on the difference between the value of an object's characteristic and an intermediate value. According to some embodiments, the updated value is based on the attributes of the user input request. According to some embodiments, the attributes of the user input request are one or more of the angular velocity of the rotatable input mechanism and the angular acceleration of the rotatable input mechanism.
[0178] According to some embodiments, updating the values (e.g., scroll position value or zoom size value) of an object's (e.g., 602, 612) properties (e.g., scroll position, zoom size) within a range of property values, based on user input requests, according to a second function, includes determining whether the values (e.g., scroll position, zoom size) of the object's properties fall within a second predetermined subset (e.g., 608B) of the range of property values, where the first subset (e.g., 606B) and the second predetermined subset (e.g., 608B) are different. Following the determination that the values (e.g., scroll position, zoom size) of the object's properties fall within the second predetermined subset of the range of property values, the values of the object's properties are further updated within a range of property values, based on user input requests, according to a third function. The first function, the second function, and the third function are different functions.
[0179] According to some embodiments, the range of the characteristic values follows a single dimension (for example, the range is not a multidimensional XY range). According to some embodiments, the range of the characteristic values is a linear column.
[0180] According to some embodiments, in accordance with the determination that the values (e.g., scroll position value, zoom size value) of a characteristic (e.g., scroll position, zoom size) of an object (e.g., 602, 612) fall within a predetermined subset (e.g., 606B, 612B) of the characteristic values, the device performs a haptic alert, such as a mechanical (e.g., tactile feedback) or audible (e.g., playback of an audio file) haptic alert in an electronic device.
[0181] According to some embodiments, an object is selected from a group consisting of documents and images. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). According to some embodiments, the object's properties are selected from a group consisting of scroll position (e.g., how much the object has been scrolled up / down or left / right), zoom size (e.g., how large / small the document's magnification is), and degree of rotation (e.g., how many radians the object has been rotated). According to some embodiments, the object's property is the scroll position, and a predetermined subset of the range of values for the property is the range of the scroll position. According to some embodiments, the object's property is the zoom size, and a predetermined subset of the range of values for the property is the range of the zoom size.
[0182] According to some embodiments, object analysis is not required to specify subsets. For example, subsets may be associated with an object before the object is accessed on a device (e.g., embedded within a document). Such default subsets may be manually specified by the object's creator.
[0183] The subsets described in relation to Figures 6 to 7 (e.g., 604B, 606B, 608B, 612A, 612B, 612C) have the technical advantage that coarse input can be translated into precise control. Certain parts of a document (or certain zoom sizes, certain degrees of rotation) may be made easier or more difficult to move within or away from that part, thereby facilitating the user's focusing process. Furthermore, a particular subset of objects may have different characteristics, such as a range of different sizes. The subsets may be used to direct the "flow" within the document and enable curation.
[0184] It should be noted that the details of the process described above with respect to Method 700 (for example, Figure 7) are also applicable in a similar manner to the methods described above and below. For example, Method 700 may include one or more characteristics of the various methods described above with reference to the processes in Figures 9A, 9B, 11, 13K, 22, 31, 39, and 46. For the sake of brevity, these details will not be repeated below.
[0185] It should be understood that the specific sequence of operations described in Figure 11 is illustrative and not intended to indicate that the described sequence is the only sequence in which the operations can be performed. Those skilled in the art will recognize various methods for not only excluding certain operations but also for rearranging the operations described herein. For the sake of brevity, these details will not be repeated here. Furthermore, it should be noted that the methods and modes of processing described throughout this description may be combined with one another.
[0186] Figures 8A to 8F show exemplary user interfaces for manipulating user interface objects using an electronic device, according to several embodiments. In some embodiments, the electronic device is device 500. The electronic device has a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506).
[0187] Figure 8A shows a document 802, which is an embodiment of a user interface object. Document 802 includes a title 804A, paragraphs of body text 806A, and an image 808A. In some embodiments, the electronic device is configured to allow the user to scroll within document 802 so that only a portion of document 802 is displayed on the display (e.g., 504) at a given point in time. The scroll position of document 802 is a property of the document. The value of the document's scroll position changes as the document is scrolled.
[0188] The user interface diagrams described may optionally include columns (e.g., 810) indicating a range of object characteristics. These columns are typically not part of the displayed user interface but are provided to assist in the interpretation of the diagram. In this embodiment, the document scroll position may range from 0.0 to 1.0, as shown in column 810, which has scroll positions (e.g., characteristics) ranging from 0.0 (e.g., 810A) to 1.0 (e.g., 810B).
[0189] In this embodiment, column 810 includes various anchors within its range that modify how the properties of an object are manipulated by the user. Figure 8A shows anchors 804B, 806B, and 808B. Similar to the column, the anchors shown in the figure are not typically part of the user interface that is displayed, but are provided to aid in the interpretation of the figure. For example, the zone for anchor 806B is from 806E (e.g., scroll position value 0.25) to 806D (e.g., scroll position value 0.45) on column 810. When the scroll position value of document 802 transitions within the range of anchor 806B, document 802 is scrolled to the midpoint of anchor 806D, 806C, as will be described in detail below.
[0190] Figure 8B shows a visible display area 820, a rotatable input mechanism (e.g., 506), and a scroll value indicator 822. The visible display area 820 includes an exemplary area that identifies the user interface to be displayed. For example, the display area 820 shows the portion of document 802 that is displayed on the display when document 802 is scrolled using the rotatable input mechanism 506. The scroll value indicator 822 assists in the interpretation of the figure by indicating the scroll position value of document 802, as described in relation to Figures 8C to 8E. The scroll value indicator 822 is not typically part of the user interface to be displayed.
[0191] Figure 8C shows the visible portion of document 802, as indicated by the display area 820. In Figure 8C, the scroll position value of the document is indicated by the scroll value indicator 822 (e.g., 0.50). The device displays an object (e.g., document 802) on the display according to the value of an object characteristic (e.g., scroll position) (e.g., 0.50 in Figure 8C), where this value is within the range of the characteristic value (e.g., within column 810 ranging from 0.0 to 1.0). In other embodiments, the object characteristic may be, for example, the zoom size of the object (e.g., magnification) or the degree of rotation of the object.
[0192] The device receives a user input request that represents the rotation of a rotatable input mechanism (e.g., 506). For example, the user rotates the rotatable input mechanism 506 to change the scroll position of document 802.
[0193] Upon receiving a user input request, the device determines whether the user input request causes a value (e.g., scroll position value or zoom size value) of an object characteristic (e.g., scroll level or zoom size) to transition within the range of the anchor's zone (e.g., 806B). The anchor (e.g., 806B) has a starting value (e.g., 806E), an intermediate value (e.g., 806C), and an ending value (e.g., 806D) within the range of characteristic values. The anchor's zone is between the starting value (e.g., 806E) and the ending value (e.g., 806D) of anchor 806B. The anchor's zone is the range within which the anchor influences the object, such as causing it to scroll to the intermediate value (e.g., 806C), as will be described in detail below.
[0194] In accordance with the determination that a user input request causes the value of an object's (e.g., 802) characteristic (e.g., scroll position or zoom size) to move within the range of an anchor's zone, the device updates the value of the object's characteristic based on the anchor's midpoint (e.g., 808C). Therefore, when the document is scrolled and the document's scroll position value enters the range of a particular anchor, the device sets the document's scroll position value to the midpoint of that particular anchor. The device also updates the display of the object (e.g., 802) according to the updated value of the object's characteristic. Therefore, the device displays the document scrolled to the midpoint of that anchor.
[0195] This concept is illustrated in Figures 8C to 8E. In Figure 8C, document 802 is not scrolled. When the device receives input in the rotatable input mechanism, the device begins scrolling the document according to the input. In this embodiment, the input indicates scrolling towards the top of document 802. As shown in Figure 8D, when the value of the characteristic transitions within the range of anchor 806B, the device scrolls the document to the midpoint 806C of anchor 806D, as shown in Figure 8E.
[0196] By using anchors, devices simplify the alignment of document content for the user. When specific content reaches an anchor, the document automatically scrolls to the midpoint of that anchor (sometimes called "snapping"). For example, this allows various pieces of content within a document to be efficiently aligned to specific points on the display, making it easy for the user to scroll to those specific parts of the content.
[0197] Figure 8F illustrates the manipulation of the zoom of an object (e.g., image 812). The image (e.g., 812) is displayed according to a value (e.g., zoom size value) of an object characteristic (e.g., zoom size), which is within a range of the characteristic values (e.g., along column 814). In this embodiment, anchors 812A, 812B, and 812C may be used to guide the change in the zoom characteristic. Thus, as the user rotates the rotatable input mechanism, the image is zoomed according to different zoom size values. When the zoom size value transitions to one of the anchors 812A, 812B, and 812C, the device automatically changes the image zoom to the corresponding intermediate value of the anchor. As a result, the device facilitates access to manipulate the object to a specific zoom size value. When the image reaches the minimum zoom size (e.g., 0.0), the image may be reduced to a zoom level below 0.0 and then returned to zoom level 0.0. This rubber-banding effect provides the user with indication that the minimum zoom limit has been reached. Similarly, when the image reaches its maximum zoom size (e.g., 1.0), the image may be enlarged to a zoom level greater than 1.0 and then returned to zoom level 1.0. This rubber-banding effect provides the user with an indication that the maximum zoom limit has been reached.
[0198] According to some embodiments, updating the display of an object (e.g., 802, 812) according to updated values of its properties (e.g., scroll position, zoom size) includes animating the object (e.g., animating the document scroll or animating the object zoom) to reflect the updated values of the object's properties. That is, the property values are updated to intermediate values when transitioning within the range of an anchor, but the user interface may graphically display the scroll (or zoom) position update over a period of time, through an animation of the update to the scroll (or zoom) position corresponding to the intermediate value. Doing so can reduce the abruptness of the update.
[0199] According to some embodiments (e.g., anchor 806), the intermediate value (e.g., 806C) is not equal to the start value (e.g., 806E) or the end value (e.g., 806D). According to some embodiments (e.g., anchor 804), the intermediate value (e.g., 804C) is equal to the start value (e.g., 804C) or the end value.
[0200] According to some embodiments, updating the values of an object's properties based on the anchor's midpoint includes updating the values of the object's properties to be equal to the anchor's midpoint (for example, the device sets the scroll or zoom value to the midpoint).
[0201] According to some embodiments, the starting value and the ending value are different. According to some embodiments, the intermediate value is not the average of the starting value and the ending value.
[0202] In some embodiments, upon determining that a user input request causes the values of an object's properties (e.g., scroll position, zoom size) to move within the range of an anchor's zone, the device initiates a period (e.g., a time period) during which received user input requests to manipulate the object's properties do not affect the displayed properties of the object. Thus, once the values of the object's properties fall within the range of the start and end values, further user input during the given time period will not affect the visual display of the object. This helps, for example, to give the user time to visually recognize that the object has been moved or moved to an intermediate value of the anchor.
[0203] According to some embodiments, this period is based on the rate of change in the object's property value when the object's property value transitions within the anchor's zone. For example, if the document is scrolled at a high scroll rate when it transitions within the anchor's zone, this period may be shorter than if the document were scrolled at a low scroll rate.
[0204] In some embodiments, a user input request determines that the values of an object's properties (e.g., scroll position, zoom size) (e.g., scroll position value, zoom size value) will not transition to either the range of an anchor's zone (e.g., the object's scroll position / zoom size lies between two anchor zones) or the range of a second anchor's zone (e.g., anchor 808B), wherein the second anchor has a second start value, a second intermediate value, and a second end value, and a zone between the second start value and the second end value. In accordance with this determination, the device updates the values of the object's properties according to the user input (e.g., the device scrolls the document to a stop point that is not within any anchor's zone). The device also updates the display of the object according to the updated values of the object's properties (e.g., the device displays the document scrolled to the stop point). Based on the updated values of the object's properties according to the user input, the device identifies the nearest anchor from at least the anchor and the second anchor. The device then updates the object's property values based on the corresponding midpoint of the nearest identified anchor (for example, setting the scroll position value to the midpoint of the nearest anchor, or setting the zoom size value to the midpoint of the nearest anchor). The device then updates the object's display according to the updated object's property values (for example, displaying a document scrolled according to the midpoint of the nearest anchor, or displaying an object zoomed according to the midpoint of the nearest anchor).
[0205] According to some embodiments, identifying the nearest anchor includes calculating the difference between the value of the object's characteristic, updated according to the user input request, and the midpoint of the anchor, and calculating the difference between the value of the object's characteristic, updated according to the user input request, and the midpoint of a second anchor.
[0206] According to some embodiments, identifying the nearest anchor includes identifying the nearest start and end values of the anchor and the second anchor.
[0207] In some embodiments, the device executes a haptic alert, such as a mechanical or audible (e.g., audio playback) haptic alert, in an electronic device, according to a determination that a user input request causes the values of object characteristics (e.g., scroll position, zoom size) to transition within the range of an anchor's zone.
[0208] According to some embodiments, the object is a document, and the object's characteristic is its scroll position. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). The device analyzes at least a portion of the document, and analyzing at least a portion of the document includes identifying locations within the document.
[0209] According to some embodiments, a location within a document includes one or more page boundaries of at least a portion of the document, one or more paragraph boundaries of at least a portion of the document, and one or more keyword locations of at least a portion of the document. The device assigns an anchor to some or all of the identified page boundaries, paragraph boundaries, and keyword locations of the document.
[0210] According to some embodiments, the device accesses a first set of anchor points (for example, anchor points indicate the locations where anchors such as paragraphs and images should be placed), assigns each anchor to the first set of anchor points, and detects a change in the value of an object's property (for example, the document has been scrolled). In response to detecting a change in the value of an object's property, the device accesses a second set of anchor points (for example, more anchors are needed because the document has been scrolled), and assigns each anchor to the second set of anchor points, where the first set of anchor points and the second set of anchor points are different.
[0211] According to some embodiments, the manipulation of an object is affected by both the anchor and the subset, as described above. The device determines whether user input causes the values of an object's properties (e.g., scroll position, zoom size) to fall within the range of the anchor's zone, and further determines whether the values of the object's properties fall within a predetermined subset of the range of property values. In accordance with the determination that the values of the object's properties fall within the predetermined subset of the range of property values, the values of the object's properties are calculated within the range of property values, based on the user input request, according to a first function. In accordance with the determination that the values of the object's properties do not fall within the predetermined subset of the range of property values, the values of the object's properties are calculated within the range of property values, based on the user input request, according to a second function, where the first and second functions are different functions.
[0212] According to some embodiments, the object is a document or an image. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). According to some embodiments, the characteristics of the object are the scroll position (e.g., how much the object is scrolled up / down), the zoom size (e.g., how much the document is zoomed in / out), and the degree of rotation (e.g., how many radians the object is rotated).
[0213] Figure 9A is a flowchart illustrating an exemplary process for manipulating a user interface object according to several embodiments. In some embodiments, method 900 may be performed in an electronic device comprising a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506). Some operations of method 900 may be combined, some operations may be out of order, and some operations may be omitted. Exemplary devices capable of performing method 900 include devices 100, 300, 500, and / or 550 (Figures 1A, 3, 5A, and 5C).
[0214] Method 900 provides an intuitive way to manipulate user interface objects. This method reduces the cognitive load on the user when using a device to manipulate user interface objects, such as scrolling, zooming, or rotating the objects, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the interval between battery charges is increased by enabling the user to manipulate user interface objects more efficiently.
[0215] In block 902, objects (e.g., document 802, image 812) are displayed according to the values of the object's properties (e.g., scroll position in Figures 8C to 8E, zoom size in Figure 8F), where these values are within a range of property values (e.g., 0.0 to 1.0).
[0216] In block 904, a user input request is received that represents the rotation of a rotatable input mechanism (e.g., 506).
[0217] In block 906, upon receiving a user input request, it is determined whether the user input request causes the value of an object characteristic (e.g., scroll position or zoom size) to move within the range of an anchor's zone (e.g., anchor 806B, anchor 812B). The anchor has a start value (e.g., in 806E), an intermediate value (e.g., in 806C), and an end value (e.g., in 806D) within the range of the characteristic value, and the anchor's zone is between the start value and the end value.
[0218] In block 908, blocks 910 and 912 are executed according to the determination that the user input request causes the value of the object's characteristic to move within the range of the anchor's zone (for example, as shown in Figure 8D, 822 enters the zone of anchor 806B).
[0219] In block 910, the object's property values are updated based on the anchor's intermediate value (for example, the scroll position value is set to be equal to the intermediate value 806C).
[0220] In block 912, the display of an object is updated according to the updated values of the object's properties (for example, as shown in Figure 8E, the display of document 802 is updated to reflect the updated scroll position value).
[0221] According to some embodiments, updating the display of an object (e.g., 802, 812) according to updated values of its properties (e.g., scroll position, zoom size) includes animating the object (e.g., animating the document to scroll or animating the object to zoom) to reflect the updated values of the object's properties.
[0222] According to some embodiments (e.g., anchor 806), the intermediate value (e.g., 806C) is not equal to either the start value (e.g., 806E) or the end value (e.g., 806D). According to some embodiments (e.g., anchor 804), the intermediate value (e.g., 804C) is equal to either the start value (e.g., 804C) or the end value.
[0223] According to some embodiments, updating the values of an object's properties based on the anchor's midpoint includes updating the values of the object's properties to be equal to the anchor's midpoint (for example, the device sets the scroll or zoom value to the midpoint).
[0224] According to some embodiments, the starting value and the ending value are different. According to some embodiments, the intermediate value is not the average of the starting value and the ending value.
[0225] In some embodiments, upon determining that a user input request causes a value (e.g., scroll position value, zoom size value) of an object's properties (e.g., scroll position, zoom size) to move within the range of the anchor's zone, the device initiates a period (e.g., a time period) during which the received user input request to manipulate the object's properties does not affect the displayed properties of the object.
[0226] According to some embodiments, this period is based on the rate of change in the object's property value when the object's property value transitions within the range of the anchor's zone.
[0227] In some embodiments, the device updates the values of the object's properties (e.g., scroll position, zoom size) according to the user input, based on a determination that the user input request does not cause the values of the object's properties (e.g., scroll position value, zoom size value) to fall within the range of an anchor's zone (e.g., the scroll position / zoom size of an object between two anchor zones), or within the range of a second anchor (e.g., anchor 808B) having a second start value, a second intermediate value, and a second end value, and a zone between the second start value and the second end value (e.g., the device scrolls the document to a stop point that is not within any anchor's zone). The device also updates the display of the object according to the updated values of the object's properties (e.g., the device displays the document scrolled according to the stop point). Based on the updated values of the object's properties according to the user input, the device identifies the nearest anchor from at least the anchor and the second anchor. Subsequently, the device updates the values of the object's properties based on the corresponding intermediate value of the identified nearest anchor (e.g., setting the scroll position value to the intermediate value of the nearest anchor, or setting the zoom size value to the intermediate value of the nearest anchor). The device continues to update the display of objects according to the updated object properties (for example, displaying a document scrolled according to the midpoint of the nearest anchor, or displaying a document zoomed according to the midpoint of the nearest anchor).
[0228] According to some embodiments, identifying the nearest anchor includes calculating the difference between the value of the object's characteristic, updated according to the user input request, and the midpoint of the anchor, and calculating the difference between the value of the object's characteristic, updated according to the user input request, and the midpoint of a second anchor.
[0229] According to some embodiments, identifying the nearest anchor includes identifying the nearest start and end values of the anchor and the second anchor.
[0230] In some embodiments, according to a determination that a user input request does not cause a value of an object characteristic (e.g., scroll position, zoom size) (e.g., scroll position value, zoom size value) to transition within the range of an anchor zone, the device executes a haptic alert, such as a mechanical or audible (e.g., audio playback) haptic alert, in the electronic device.
[0231] In some embodiments, an object (e.g., 802) is a document, and an object characteristic is a scroll position. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, files editable by a user (e.g., word processing files), files not editable by a user (e.g., PDF files), web pages, lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). The device analyzes at least a portion of the document, and analyzing at least a portion of the document includes identifying locations within the document.
[0232]
[0233] In some embodiments, locations within a document include one or more of one or more page boundaries of at least a portion of the document, one or more paragraph boundaries of at least a portion of the document, and one or more keyword locations of at least a portion of the document. The device assigns an anchor to some or all of the identified page boundaries, paragraph boundaries, and keyword locations of the document.
[0234] According to some embodiments, the device accesses a first set of anchor points (e.g., the anchor points indicate positions where anchors such as paragraphs and images should be placed), assigns each anchor to the first set of anchor points, and detects a change in the value of an object's property (e.g., the document has been scrolled). In response to detecting a change in the value of an object's property (e.g., the document has been scrolled and more anchors are needed), the device accesses a second set of anchor points, assigns each anchor to the second set of anchor points, and the first set of anchor points and the second set of anchor points are different.
[0234] According to some embodiments, the operation of an object is affected by both anchors and subsets as described above. The device determines whether the user input causes the value of an object's property (e.g., scroll position, zoom size) (e.g., scroll position value, zoom size value) to transition within the range of an anchor zone, and the device also determines whether the value of the object's property is within a predetermined subset of the range of the property value. In accordance with the determination that the value of the object's property is within a predetermined subset of the range of the property value, the value of the object's property is calculated according to a first function within the range of the property value based on the user input request. In accordance with the determination that the value of the object's property is not within a predetermined subset of the range of the property value, the value of the object's property is calculated according to a second function within the range of the property value based on the user input request. Here, the first function and the second function are different functions.
[0235] According to some embodiments, the object is a document or an image. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). According to some embodiments, the characteristics of the object are the scroll position (e.g., how much the object is scrolled up / down), the zoom size (e.g., how much the document is zoomed in / out), and the degree of rotation (e.g., how many radians the object is rotated).
[0236] According to some embodiments, object analysis is not required to specify an anchor. For example, an anchor may be associated with an object before the object is accessed on a device (e.g., embedded within a document). Such a default anchor may be manually specified by the object's creator.
[0237] The anchors described in relation to Figures 8 and 9A (e.g., 804B, 806B, 808B, 812A, 812B, 814C) have the technical advantage that coarse input can be translated into precise control. Certain parts of a document (or certain zoom sizes, certain degrees of rotation) may be made easier or more difficult to navigate to, thereby facilitating the user's focusing process. Furthermore, anchors for specific objects may have different characteristics, such as different size ranges. Anchors may be used to direct the "flow" within a document and enable curation.
[0238] It should be noted that the details of the process described above with respect to Method 900 (for example, Figure 9A) are also applicable in a similar manner to the methods described above and below. For example, Method 900 may include one or more characteristics of the various methods described above with reference to the processes in Figures 7, 9B, 11, 13K, 22, 31, 39, and 46. For the sake of brevity, these details will not be repeated below.
[0239] It should be understood that the specific sequence of operations described in Figure 11 is illustrative and not intended to indicate that the described sequence is the only sequence in which the operations can be performed. Those skilled in the art will recognize various methods for not only excluding certain operations but also for rearranging the operations described herein. For the sake of brevity, these details will not be repeated here. Furthermore, it should be noted that the methods and modes of processing described throughout this description may be combined with one another.
[0240] In another embodiment, Figures 8G to 8H show an exemplary user interface for manipulating user interface objects using an electronic device. In some embodiments, the electronic device is device 500. The electronic device has a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506).
[0241] Figures 8G to 8H show a document 842, which is an embodiment of a user interface object. In some embodiments, the electronic device is configured to allow the user to scroll within the document 842 such that only a portion of the document 842 is displayed on the display (e.g., 504) at a given point in time. The scroll position of the document 842 is a property of the document. The value of the document's scroll position changes as the document is scrolled.
[0242] The user interface diagrams described may optionally include columns (e.g., 850) indicating the range of object characteristics. These columns are typically not part of the displayed user interface but are provided to aid in the interpretation of the diagram. In this embodiment, the document scroll position may range from 0.0 to 1.0.
[0243] In this embodiment, column 850 includes various anchors within its range that modify how the object's properties are manipulated by the user. Figure 8G shows anchors 844B and 846B. Similar to the columns, the anchors shown in the figure are not typically part of the user interface displayed, but are provided to aid in the interpretation of the figure. The zone for anchor 844B is from 844E (e.g., scroll position value 0.30) to 844D (e.g., 0.50) on column 850. The zone for anchor 846B is from 846E (e.g., value 0.60) to 846D (e.g., value 0.95) on column 850. When the scroll position value of document 842 reaches a stable state (i.e., the document stops scrolling), the device scrolls document 842 to the midpoint of the nearest anchor, as described in detail below. This aligns the position of document 842 on the display (e.g., 504) for user viewing.
[0244] Figures 8G to 8H also show the visible display area 860 and the scroll value indicator 862. The visible display area 860 includes an exemplary area that identifies the user interface to be displayed. For example, the display area 860 shows the portion of document 842 that is displayed on the display when document 842 is scrolled using a rotatable input mechanism (e.g., 506). The scroll value indicator 862 assists in the interpretation of the figure by indicating the scroll position value of document 842. The scroll value indicator 862 is not typically part of the user interface to be displayed.
[0245] Figure 8G shows the visible portion of document 842, as indicated by the display area 860. The device displays an object (e.g., document 802) on the display according to a value of an object characteristic (e.g., scroll position), which is within a range of the characteristic values (e.g., within column 850 ranging from 0.0 to 1.0). In other embodiments, the object characteristic may be, for example, the zoom size of the object (e.g., magnification) or the degree of rotation of the object.
[0246] The device receives a user input request that represents the rotation of a rotatable input mechanism (e.g., 506). For example, the user rotates the rotatable input mechanism 506 to change the scroll position of document 842.
[0247] In response to receiving a user input request, the device updates the values of object properties (e.g., scroll position, zoom size) within a range of the property values based on the user input request, and updates the display of the object according to the updated values of the object properties. In the embodiments of Figures 8G to 8H, the device scrolls a document and the document stops scrolling. The scroll position value of the document is indicated by the scroll value indicator 862 (e.g., scroll position value 0.53). Therefore, when the device receives user input, the device scrolls document 842 to the updated scroll position value (e.g., 0.53). In some embodiments, once the updated scroll position value is reached, document 842 reaches a stable state and stops scrolling.
[0248] The device identifies the anchor closest to the updated value (e.g., 0.53) of the object's properties (for example, when the document stops scrolling), and the closest anchor is identified from at least a first anchor (e.g., anchor 844B) having the corresponding intermediate value (e.g., 844C) and a second anchor (e.g., anchor 846B) having the corresponding intermediate value (e.g., 846C).
[0249] The device then updates the object's property values based on the corresponding midpoint of the nearest identified anchor. The device also updates the object's display according to the updated object property values. Thus, the device sets the object's property values to equal the midpoint of the nearest anchor and scrolls the document to the midpoint of the nearest anchor. In embodiments where the property is zoom size, the object's magnification is changed to the midpoint of the nearest anchor.
[0250] According to some embodiments, updating the display of an object according to the values of the subsequently updated object's properties includes animating the object to reflect the values of the subsequently updated object's properties. Thus, for example, the scrolling of document 842 from a stopped (stable) scroll position to the subsequently updated values is animated.
[0251] According to some embodiments, the corresponding intermediate value of the identified nearest anchor lies between the corresponding start value (e.g., 846E) and the corresponding end value (e.g., 846D) of the identified nearest anchor, such as anchor 846B, and does not include these start and end values.
[0252] According to some embodiments, the corresponding intermediate value (e.g., 844C) of the nearest identified anchor is equal to the corresponding starting value (e.g., 844C) or corresponding ending value of the nearest identified anchor, such as anchor 844B.
[0253] According to some embodiments, updating the value of an object's characteristic based on the corresponding intermediate value of the identified nearest anchor includes updating the value of the object's characteristic to be equal to the corresponding intermediate value of the identified nearest anchor.
[0254] According to some embodiments, the corresponding start value and the corresponding end value of the identified nearest anchor are different. According to some embodiments, the corresponding intermediate value of the identified nearest anchor is the average of the corresponding start value and the corresponding end value.
[0255] According to some embodiments, after continuously updating the display of the object according to the continuously updated value of the object's characteristic, the device starts a period (e.g., a time period) during which a received user input request for manipulating the object's characteristic does not affect the displayed characteristic of the object. This helps, for example, to give the user time to visually recognize that the object has moved to the intermediate value of the nearest anchor. According to some embodiments, during this period, the display of the object is continuously updated according to the user input requests received during this period.
[0256] According to some embodiments, the nearest anchor is identified by identifying the nearest zone when Document 842 stops scrolling (e.g., when it reaches a stable state). As shown in FIG. 8G, the distance from the continuously updated value (indicated by the scroll value indicator 862) to the zone of anchor 844B is distance 852 (e.g., distance 0.03), but the distance from the continuously updated value (indicated by the scroll value indicator 862) to the zone of anchor 846B is distance 850 (e.g., distance 0.07). In this example, since distance 852 (e.g., distance 0.03) is less than distance 850 (e.g., distance 0.07), anchor 844B is identified as the nearest anchor. Thus, identifying the nearest anchor includes identifying the nearest of the start and end values of the anchor and the second anchor.
[0257] According to some embodiments, the nearest anchor is identified by determining the nearest midpoint when document 842 stops scrolling (e.g., when it reaches a stable state). As shown in Figure 8H, the distance from the continuously updated value (indicated by the scroll value indicator 862) to the midpoint 844C of anchor 844B is distance 856 (e.g., distance 0.33), while the distance from the continuously updated value (indicated by the scroll value indicator 862) to the midpoint 846C of anchor 846B is distance 854 (e.g., distance 0.20). In this embodiment, since distance 854 (e.g., distance 0.20) is less than distance 856 (e.g., distance 0.33), anchor 844B is identified as the nearest anchor. For example, the device calculates the difference between the value of the continuously updated object's properties and the corresponding midpoint of the first anchor, and then calculates the difference between the value of the continuously updated object's properties and the corresponding midpoint of the second anchor. The smaller of these values indicates the nearest anchor.
[0258] According to some embodiments, the device updates the display of an object according to the updated object's properties while simultaneously executing a haptic alert (e.g., a mechanical or audible haptic alert) on the device. This provides the user with notification that the object is transitioning to the nearest anchor.
[0259] According to some embodiments, the object is a document, and the object's characteristic is its scroll position. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). The device analyzes at least a portion of the document, and analyzing at least a portion of the document includes identifying locations within the document. According to some embodiments, locations within the document include one or more page boundaries of at least a portion of the document, one or more paragraph boundaries of at least a portion of the document, and one or more keyword locations of at least a portion of the document. The device assigns anchors to some or all of the identified page boundaries, paragraph boundaries, and keyword locations of the document.
[0260] According to some embodiments, the device accesses a first set of anchor points (for example, anchor points indicate the locations where anchors such as paragraphs and images should be placed). The device assigns each anchor to the first set of anchor points. The device then detects a change in the value of an object's property (for example, the document has been scrolled) and, in response to detecting the change in the value of the object's property, accesses a second set of anchor points (for example, more anchors are needed because the document has been scrolled). The device assigns each anchor to the second set of anchor points, where the first and second sets of anchor points are different. This is useful, for example, when an object contains many anchor points that require anchors, but the device has limited memory and assigning anchors to all anchor points simultaneously would strain the device's available memory.
[0261] According to some embodiments, the object is selected from a group consisting of documents and images. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). According to some embodiments, the object's characteristics are selected from a group consisting of scroll position (e.g., how much the object has been scrolled up / down), zoom size (e.g., how much the document has been zoomed in / out), and degree of rotation (e.g., how many radians the object has been rotated).
[0262] Figure 9B is a flowchart illustrating exemplary processes for manipulating user interface objects according to several embodiments. In some embodiments, method 920 may be performed in an electronic device comprising a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506). Some operations of method 920 may be combined, some operations may be rearranged, and some operations may be omitted. Exemplary devices capable of performing method 920 include devices 100, 300, 500, and / or 550 (Figures 1A, 3, 5A, and 5C).
[0263] Method 920 provides an intuitive way to manipulate user interface objects. This method reduces the cognitive load on the user when using a device to manipulate user interface objects, such as scrolling, zooming, or rotating the objects, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the interval between battery charges is increased by enabling the user to manipulate user interface objects more efficiently.
[0264] In block 922, an object (e.g., document 842) is displayed according to the value of the object's characteristic (e.g., scroll position value), which is within a range of the characteristic's value (e.g., from 0.0 to 1.0).
[0265] In block 924, a user input request is received. The user input request represents the rotation of a rotatable input mechanism (e.g., 506).
[0266] In block 926, blocks 928 and 930 are executed in response to the receipt of a user input request. In block 928, the value of an object's (e.g., document 842) characteristic is updated based on the user input request, within a range of characteristic values (e.g., from 0.0 to 1.0). In block 930, the object's display is updated according to the updated value of the object's characteristic (e.g., the document is scrolled and then reaches a stable stopping position).
[0267] In block 932, the anchor (e.g., anchor 844B or 846B) closest to the updated value of the object's properties is identified, and the closest anchor is selected from at least a first anchor (e.g., 844B) having the corresponding intermediate value (e.g., 844C) and a second anchor (e.g., 846B) having the corresponding intermediate value (e.g., 846C).
[0268] In block 934, the object's property values are still updated based on the corresponding intermediate values (e.g., the values at 844C or 846C) of the nearest identified anchor (e.g., anchor 844B or 846B).
[0269] In block 936, the display of an object (for example, document 842) continues to update according to the updated object's property values.
[0270] According to some embodiments, updating the display of an object according to the values of the object's properties that have been subsequently updated includes animating the object to reflect the values of the object's properties that have been subsequently updated.
[0271] According to some embodiments, the corresponding intermediate value of the identified nearest anchor lies between the corresponding start value (e.g., 846E) and the corresponding end value (e.g., 846D) of the identified nearest anchor, such as anchor 846B, and does not include these start and end values.
[0272] According to some embodiments, the corresponding intermediate value (e.g., 844C) of the nearest identified anchor is equal to the corresponding starting value (e.g., 844C) or corresponding ending value of the nearest identified anchor, such as anchor 844B.
[0273] According to some embodiments, updating the value of an object's property based on the corresponding midpoint of the identified nearest anchor includes updating the value of the object's property to be equal to the corresponding midpoint of the identified nearest anchor.
[0274] According to some embodiments, the corresponding start and end values of the nearest identified anchor are different. According to some embodiments, the corresponding midpoint of the nearest identified anchor is the average of the corresponding start and end values.
[0275] According to some embodiments, following the updating of the object's display according to the updated object's property values, the device initiates a period (e.g., a time period) during which received user input requests for manipulating the object's properties do not affect the displayed properties of the object. According to some embodiments, following this period, the object's display is updated according to user input requests received during this period.
[0276] According to some embodiments, the nearest anchor is identified by identifying the nearest zone when document 842 stops scrolling (e.g., when it reaches a stable state).
[0277] According to some embodiments, the nearest anchor is identified by identifying the nearest intermediate value when document 842 stops scrolling (e.g., when it reaches a stable state).
[0278] According to some embodiments, the device updates the display of an object according to the updated object's properties while simultaneously executing a tactile alert (e.g., a mechanical or audible tactile alert) on the device.
[0279] According to some embodiments, the object is a document, and the object's characteristic is its scroll position. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). The device analyzes at least a portion of the document, and analyzing at least a portion of the document includes identifying locations within the document. According to some embodiments, locations within the document include one or more page boundaries of at least a portion of the document, one or more paragraph boundaries of at least a portion of the document, and one or more keyword locations of at least a portion of the document. The device assigns anchors to some or all of the identified page boundaries, paragraph boundaries, and keyword locations of the document.
[0280] According to some embodiments, the device accesses a first set of anchor points (for example, anchor points indicate the locations where anchors such as paragraphs and images should be placed). The device assigns each anchor to the first set of anchor points. The device then detects a change in the value of an object's property (for example, the document has been scrolled) and accesses a second set of anchor points in response to detecting the change in the value of the object's property (for example, more anchors are needed because the document has been scrolled). The device assigns each anchor to the second set of anchor points, where the first set of anchor points and the second set of anchor points are different.
[0281] According to some embodiments, the object is selected from a group consisting of documents and images. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists). According to some embodiments, the object's characteristics are selected from a group consisting of scroll position (e.g., how much the object has been scrolled up / down), zoom size (e.g., how much the document has been zoomed in / out), and degree of rotation (e.g., how many radians the object has been rotated).
[0282] According to some embodiments, object analysis is not required to specify an anchor. For example, an anchor may be associated with an object before the object is accessed on a device (e.g., embedded within a document). Such a default anchor may be manually specified by the object's creator.
[0283] The anchors described in relation to Figures 8 and 9B (e.g., 844B, 846B) have the technical advantage that coarse input can be translated into precise control. Certain parts of a document (or specific zoom sizes, degrees of rotation) may be made easier or more difficult to navigate to, thereby facilitating the user's focusing process. Furthermore, anchors for specific objects may have different characteristics, such as different size ranges. Anchors may be used to direct the "flow" within a document and enable curation.
[0284] It should be noted that the details of the process described above with respect to Method 920 (for example, Figure 9B) are also applicable in a similar manner to the methods described above and below. For example, Method 920 may include one or more characteristics of the various methods described above with reference to the processes in Figures 7, 9B, 11, 13K, 22, 31, 39, and 46. For the sake of brevity, these details will not be repeated below.
[0285] It should be understood that the specific sequence of operations described in Figure 11 is illustrative and not intended to indicate that the described sequence is the only sequence in which the operations can be performed. Those skilled in the art will recognize various methods for not only excluding certain operations but also for rearranging the operations described herein. For the sake of brevity, these details will not be repeated here. Furthermore, it should be noted that the methods and modes of processing described throughout this description may be combined with one another.
[0286] Figures 10A and 10B show exemplary user interfaces for manipulating user interface objects using an electronic device (e.g., 500) according to several embodiments. In some embodiments, the electronic device is device 500. The electronic device comprises a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506).
[0287] Figures 10A and 10B show an instant messaging conversation 1002, which is an embodiment of a user interface object. In some embodiments, the electronic device is configured to allow the user to scroll an object (e.g., 1002) so that only a portion of the object is displayed on the display (e.g., 504) at a given time. The scroll position of an object is a property of the object. The value of the scroll position of an object changes as the object is scrolled.
[0288] The user interface diagrams described optionally include markers (e.g., 1002A, 1002B, 1002C). These markers are typically not part of the displayed user interface but are provided to aid in the interpretation of the diagram. In these embodiments, the markers indicate the scroll position of an object.
[0289] Figures 10A and 10B also show a visible display area (1020) and a scroll value indicator (e.g., 1022). The visible display area includes an exemplary area that identifies the user interface to be displayed. For example, display area 1020 shows the portion of conversation 1002 that appears on the display when conversation 1002 is scrolled using a rotatable input mechanism (e.g., 506). The rotatable input mechanism 506 and the scroll value indicator (e.g., 1022) assist in the interpretation of the figure and are not typically part of the user interface to be displayed.
[0290] Figure 10A shows the visible portion of conversation 1002, as indicated by the display area 1020. The device displays an object (e.g., conversation 1002) on the display. The object is associated with a first marker (e.g., marker 1002A) having a first value and a second marker (e.g., marker 1002B) having a second value. The value of the object's properties (e.g., scroll position) (e.g., scroll position value) is based on the first value of the first marker.
[0291] The device receives user input representing the rotation of a rotatable input mechanism. Upon receiving user input representing the rotation of the rotatable input mechanism, the device determines whether an attribute of the user input (e.g., velocity, acceleration, duration of user input) exceeds a threshold (e.g., the user input exceeds a threshold velocity or threshold acceleration). In accordance with the determination that an attribute of the user input exceeds a threshold (e.g., the user input exceeds a threshold velocity or threshold acceleration), the device updates the value of the object's characteristic (e.g., 1002) based on the second value of a second marker. In some embodiments, the attribute may be acceleration, the threshold may be the acceleration threshold of the rotatable input mechanism, and the input may be called a “flicking” input. The device also updates the display of the object according to the updated value of the object's characteristic. For example, if the device determines that the user input in the rotatable input mechanism exceeds a threshold velocity, the device scrolls the document on the display to the next marker (e.g., from marker 1002A to marker 1002B). In some embodiments, the direction of rotation of the input mechanism determines the direction of scrolling, and the second marker is the closest marker in the determined direction of scrolling.
[0292] According to some embodiments, updating the display of an object according to updated values of the object's properties includes animating the object to reflect the updated values of the object's properties. For example, the device displays an animation of scrolling through the conversation up to a second marker. In another example, when the property is zoom size, the device displays an animation of zooming the object up to a second marker.
[0293] In some embodiments, upon determination that the user input attributes fall below a threshold (for example, the user input does not exceed a threshold velocity and threshold acceleration), the device maintains the display of an object according to the object's characteristic values based on a first value of a first marker (for example, continuing to display the object in the same position as before, or continuing to display the object at the same zoom level as before).
[0294] In some embodiments, the object's property values are updated to a third value based on the user input, according to the determination that the user input attributes do not exceed a threshold (for example, the user input does not exceed a threshold velocity and threshold acceleration). Therefore, if the input does not exceed a threshold, the object is scrolled (or zoomed) to a point other than the second marker. Thus, when the user rotates the rotatable input mechanism without exceeding a threshold, the device scrolls the object smoothly.
[0295] According to some embodiments, the second marker is an anchor, and the second value of the second marker is the midpoint of the anchor.
[0296] In some embodiments, the device executes a haptic alert (e.g., a mechanical or audible alert) in an electronic device based on a determination that the user input attribute exceeds a threshold (e.g., the user input exceeds a threshold velocity or threshold acceleration).
[0297] According to some embodiments, the object is a document. The device analyzes at least a portion of the document, and analyzing at least a portion of the document includes identifying locations within the document (e.g., locations where markers are placed).
[0298] According to some embodiments, a location within a document includes one or more page boundaries of at least a portion of the document, one or more paragraph boundaries of at least a portion of the document, and one or more keyword locations of at least a portion of the document. The device assigns a marker to some or all of the identified page boundaries, paragraph boundaries, and keyword locations of the document.
[0299] According to some embodiments, the device accesses a first set of markers for an object. The device detects a change in the value of an object's property (e.g., the document has been scrolled). In response to detecting a change in the value of an object's property, the device associates a second set of markers with the object, and the first and second sets are distinct.
[0300] In some embodiments, a period is initiated in which the received user input representing the rotation of the rotatable input mechanism does not affect the displayed characteristics of the object, based on the determination that the user input attribute exceeds a threshold (for example, the user input exceeds a threshold velocity or threshold acceleration).
[0301] According to some embodiments, the user input attribute is the angular velocity of the rotatable input mechanism, and the threshold is the threshold angular velocity. According to some embodiments, the user input attribute is the maximum angular velocity of the rotatable input mechanism, and the threshold is the threshold angular velocity. According to some embodiments, the user input attribute is the angular acceleration of the rotatable input mechanism, and the threshold is the threshold angular acceleration.
[0302] According to some embodiments, the object is selected from a group consisting of documents and images. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists).
[0303] According to some embodiments, the object's characteristics are selected from a group consisting of scroll position (e.g., how much the object has been scrolled up / down), zoom size (e.g., how much the document has been zoomed in / out), and degree of rotation (e.g., how many radians the object has been rotated).
[0304] Figure 11 is a flowchart illustrating exemplary processes for manipulating user interface objects according to several embodiments. In some embodiments, method 1100 may be performed in an electronic device comprising a display (e.g., 112, 340, 504) and a rotatable input mechanism (e.g., 506). Some operations of method 1100 may be combined, some operations may be rearranged, and some operations may be omitted. Exemplary devices capable of performing method 1100 include devices 100, 300, 500, and / or 550 (Figures 1A, 3, 5A, and 5C).
[0305] Method 1100 provides an intuitive way to manipulate user interface objects. This method reduces the cognitive load on the user when using a device to manipulate user interface objects, such as scrolling, zooming, or rotating the objects, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the interval between battery charges is increased by enabling the user to manipulate user interface objects more efficiently.
[0306] In block 1102, an object (e.g., instant message conversation 1002) is displayed, and the object (e.g., conversation 1002) is associated with a first marker (e.g., 1002A) having a first value and a second marker (e.g., 1002B) having a second value, and the values of the object's (e.g., conversation 1002) properties (e.g., scroll position or zoom size) (e.g., scroll position value or zoom size value) are based on the first value of the first marker.
[0307] In block 1104, user input is received that represents the rotation of a rotatable input mechanism (e.g., 506).
[0308] In block 1106, upon receiving user input representing the rotation of the rotatable input mechanism, it is determined whether the attributes of the user input (e.g., velocity, acceleration, duration of user input) exceed a threshold.
[0309] In block 1108, the object's property values are updated based on the second value of the second marker, according to the determination that the user input attribute exceeds a threshold (for example, the user input exceeds a threshold velocity or threshold acceleration).
[0310] In block 1110, the display of the object is updated according to the updated values of the object's properties (for example, the conversation scrolls up to the marker, as shown in Figure 10B).
[0311] According to some embodiments, updating the display of an object (e.g., conversation 1002) according to updated values of the object's properties includes animating the object to reflect the updated values of the object's properties.
[0312] In some embodiments, upon determination that the user input attributes fall below a threshold, the device maintains the display of an object according to the object's characteristic values, based on a first value of a first marker (for example, the conversation is not scrolled).
[0313] In some embodiments, the object's property values are updated to a third value based on the user input, according to the determination that the user input attributes do not exceed a threshold (for example, the user input does not exceed a threshold velocity and threshold acceleration). Therefore, if the input does not exceed a threshold, the object is scrolled (or zoomed) to a point other than the second marker.
[0314] According to some embodiments, a second marker (e.g., 1002B) is an anchor, and the second value of the second marker is the midpoint of the anchor.
[0315] In some embodiments, the device executes a haptic alert (e.g., a mechanical or audible alert) in an electronic device based on a determination that the user input attribute exceeds a threshold (e.g., the user input exceeds a threshold velocity or threshold acceleration).
[0316] According to some embodiments, the object is a document. The device analyzes at least a portion of the document, and analyzing at least a portion of the document includes identifying locations within the document (e.g., locations where markers are placed).
[0317] According to some embodiments, a location within a document includes one or more page boundaries of at least a portion of the document, one or more paragraph boundaries of at least a portion of the document, and one or more keyword locations of at least a portion of the document. The device assigns a marker to some or all of the identified page boundaries, paragraph boundaries, and keyword locations of the document.
[0318] According to some embodiments, the device accesses a first set of markers for an object. The device detects a change in the value of an object's property (e.g., the document has been scrolled). In response to detecting a change in the value of an object's property, the device associates a second set of markers with the object, and the first and second sets are distinct.
[0319] In some embodiments, a period is initiated in which the received user input representing the rotation of the rotatable input mechanism does not affect the displayed characteristics of the object, based on the determination that the user input attribute exceeds a threshold (for example, the user input exceeds a threshold velocity or threshold acceleration).
[0320] According to some embodiments, the user input attribute is the angular velocity of the rotatable input mechanism, and the threshold is the threshold angular velocity. According to some embodiments, the user input attribute is the maximum angular velocity of the rotatable input mechanism, and the threshold is the threshold angular velocity. According to some embodiments, the user input attribute is the angular acceleration of the rotatable input mechanism, and the threshold is the threshold angular acceleration.
[0321] According to some embodiments, the object is selected from a group consisting of documents and images. Examples of documents include, but are not limited to, messages, text messages, text message conversations, emails, presentations, spreadsheets, user-editable files (e.g., word processing files), user-ineditable files (e.g., PDF files), web pages, and lists of items (e.g., contact lists, music lists, calendar event lists, message lists, file lists, folder lists).
[0322] According to some embodiments, the object's characteristics are selected from a group consisting of scroll position (e.g., how much the object has been scrolled up / down), zoom size (e.g., how much the document has been zoomed in / out), and degree of rotation (e.g., how many radians the object has been rotated).
[0323] According to some embodiments, object analysis is not required to specify a marker. For example, a marker may be associated with an object before the object is accessed on the device (e.g., embedded within the document). Such a default marker may be manually specified by the object's creator.
[0324] The markers described in relation to Figures 10 and 11 (e.g., 1002A, 1002B, 1002C) have the technical advantage that coarse input can be translated into precise control. Certain parts of the document (or certain zoom sizes, certain degrees of rotation) may be made easier or more difficult to move to, which facilitates the user's focusing process. Furthermore, markers for certain objects may have different properties, such as different thresholds for moving to them. Markers may be used to direct the "flow" within the document and enable curation.
[0325] It should be noted that the details of the process described above with respect to Method 1100 (e.g., Figure 11) are also applicable in a similar manner to the methods described above and below. For example, Method 1100 may include one or more characteristics of the various methods described above with reference to the processes in Figures 7, 9A, 9B, 13K, 22, 31, 39, and 46. For the sake of brevity, these details will not be repeated below.
[0326] It should be understood that the specific sequence of operations described in Figure 11 is illustrative and not intended to indicate that the described sequence is the only sequence in which the operations can be performed. Those skilled in the art will recognize various methods for not only excluding certain operations but also for rearranging the operations described herein. For the sake of brevity, these details will not be repeated here. Furthermore, it should be noted that the methods and modes of processing described throughout this description may be combined with one another.
[0327] Figure 12 shows an exemplary functional block of an electronic device 1200 that performs the features described above and below in several embodiments. As shown in Figure 12, the electronic device 1200 includes a display unit 1202 configured to display graphical objects, a touch-sensing surface unit 1204 configured to receive user gestures (e.g., touches), one or more RF units 1206 configured to detect and communicate with external electronic devices, and a processing unit 1208 coupled to the display unit 1202, the touch-sensing surface unit 1204, and the RF units 1206. In some embodiments, the processing unit 1208 includes a display-enabled unit 1210, a receiving unit 1212, and a determination unit 1214. The units in Figure 12 may be used to implement various techniques and methods described above and below.
[0328] For example, the displayable unit 1210 may be used to display an object on a display according to the values of the object's characteristics, wherein the values are within the range of the characteristic values; to display an object on a display according to the values of the object's characteristics, wherein the values are within the range of the characteristic values; to display an object on a display according to the values of the object's characteristics, wherein the values are within the range of the characteristic values; and to display an object on a display, wherein the object is associated with a first marker having a first value and a second marker having a second value.
[0329] For example, the receiving unit 1212 may be used to receive a user input request representing the rotation of the rotatable input mechanism, to receive a user input request representing the rotation of the rotatable input mechanism, to receive a user input request representing the rotation of the rotatable input mechanism, and to receive a user input representing the rotation of the rotatable input mechanism.
[0330] For example, the determination unit 1214 may be used to determine whether the value of an object's characteristic falls within a predetermined subset of the range of characteristic values, whether a user input request causes the value of an object's characteristic to move within the range of an anchor's zone, and whether the attribute of the user input exceeds a threshold.
[0331] For example, the update unit 1216 may be used to update the value of an object's characteristic within a range of characteristic values based on a user input request and according to a first function, update the value of an object's characteristic within a range of characteristic values based on a user input request and according to a second function, wherein the first and second functions are different functions, update the display of the object according to the updated value of the object's characteristic, update the value of an object's characteristic based on an anchor's midpoint, update the display of the object according to the updated value of the object's characteristic, update the value of an object's characteristic within a range of characteristic values based on a user input request and update the display of the object according to the updated value of the object's characteristic, subsequently update the value of an object's characteristic based on the corresponding midpoint of the nearest identified anchor, subsequently update the display of the object according to the updated value of the object's characteristic, update the value of an object's characteristic based on a second value of a second marker, and update the display of the object according to the updated value of the object's characteristic.
[0332] The functional blocks of device 1200 are optionally implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various embodiments described. Those skilled in the art will understand that the functional blocks described in Figure 12 can be optionally combined or separated into subblocks to carry out the principles of the various embodiments described. Therefore, the description herein optionally supports any possible combinations or separations, or further definitions of the functional blocks described herein.
[0333] Figures 13A to 13J show an exemplary user interface 1300 that displays multiple user interface objects in the form of selectable elements 1302, 1304, 1306, 1308 and a focus selector 1310. The user may select a selectable element from among the multiple selectable elements by using the physical crown of a wearable electronic device to move the focus selector 1310 so that it is aligned with the desired selectable element.
[0334] The crown 558 of device 550 is a user interface input (e.g., a rotatable input mechanism) that can be rotated by the user. The crown 558 may be rotated in two different directions: clockwise and counterclockwise. Figures 13 to 13J include, where necessary, rotation direction arrows indicating the direction of rotation of the crown and movement direction arrows indicating the direction of movement of one or more user interface objects. These rotation direction arrows and movement direction arrows are not normally part of the user interface that is displayed, but are provided to assist in the interpretation of the figures. In this embodiment, clockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing upward. Similarly, counterclockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing downward. The properties of the rotation direction arrows do not indicate the distance, speed, or acceleration by which the crown 558 is rotated by the user. Instead, the rotation direction arrows indicate the direction of rotation of the crown 558 by the user.
[0335] Figures 13 to 13J show a physics-based exemplary model that may be used in combination with a physical crown user input device to control user interaction with user interface objects. In this embodiment, elements 1302, 1304, 1306, and 1308 are fixed, and the focus selector 1310 is movable via user input received from the crown 558. Clockwise movement of the crown 558 is associated with an upward force relative to the focus selector 1310, and counterclockwise movement of the crown 558 is associated with a downward force relative to the focus selector 1310. Thus, moving the focus selector 1310 from a position aligned with element 1306, as shown in Figure 13A, to a position aligned with element 1304 positioned upward, as shown in Figure 13J, requires a clockwise user input relative to the crown 558.
[0336] To facilitate the user's ability to control the movement of the focus selector 1310 between four user-selectable elements 1302, 1304, 1306, and 1308, a "magnetic" relationship is established between each user-selectable element and the focus selector 1310. Each element 1302, 1304, 1306, and 1308 is associated with a simulated magnetic value. In this embodiment, the magnetic values of elements 1302, 1304, 1306, and 1308 are equal. In other embodiments, the magnetic values of elements 1302, 1304, 1306, and 1308 may not be equal.
[0337] When using the magnetic relationship between elements 1302, 1304, 1306, and 1308 and the focus selector 1310, physics-based modeling may be used to simulate the magnetic attraction between elements 1302, 1304, 1306, and 1308 and the focus selector 1310. As will be described in more detail below, the user interface 1300 generates an attractive force between elements 1302, 1304, 1306, and 1308 and the focus selector 1310. As a result, when no user input is received, the focus selector 1310 eventually reaches a stable state where it aligns with one of elements 1302, 1304, 1306, and 1308. An object is in a stable state when it is not translated, rotated, or scaled. Aligning the focus selector 1310 with an element allows the element to be activated using user input. Even before any user input for activation, the alignment of the focus selector 1310 with an element indicates the selection of that element. This physics-based magnetic model provides a user interface that demonstrates a virtual stopper.
[0338] In this embodiment, physics-based magnetic modeling is achieved, for example, by modeling each element 1302, 1304, 1306, and 1308 as an object made from a magnetized material that generates its own persistent magnetic field, and by modeling the focus selector 1310 as a material such as a ferromagnetic material containing iron, cobalt, and nickel that is attracted to a magnet. In another embodiment, physics-based modeling may be achieved by modeling each element 1302, 1304, 1306, and 1308 as an object made from a material that is attracted to a magnet, and by modeling the focus selector 1310 as a material that generates its own persistent magnetic field. In yet another embodiment, physics-based modeling may be achieved by modeling each element 1302, 1304, 1306, and 1308 as an object that generates its own persistent magnetic field, and by modeling the focus selector 1310 as a material such as two attractive magnets that also generate their own persistent magnetic field. Each of these physics-based models may include a magnetic field that is not permanent but changes based on certain factors, such as the distance between the element and the focus selector 1310, the velocity of the focus selector 1310, the acceleration of the focus selector 1310, or a combination of two or more factors. For example, the changing magnetic field may be simulated by the use of an electromagnet, which can be turned on or off and may have a changing intensity.
[0339] In Figure 13A, the focus selector 1310 is aligned with element 1306, which indicates the selection of element 1306. In Figure 13B, the device 550 determines a change in the position of the crown 558 in a clockwise direction, as indicated by the rotation direction arrow 1312. In response to determining the change in the position of the crown 558, the device increases the velocity of the focus selector 1310 and moves the focus selector 1310 upward, as indicated by the movement direction arrow 1314. In one embodiment, the focus selector 1310 may be associated with mass or may have calculated inertia.
[0340] Since element 1306 is modeled as a magnetic element and focus selector 1310 is modeled as a ferromagnetic material, a magnetic attraction exists between the two user interface objects. The physics-based model of user interface 1300 uses this magnetic attraction to generate resistance to movement of focus selector 1310 away from element 1306. The magnetic value of the element (e.g., the strength of the element's magnetic attraction) may be modeled, for example, in terms of its tensile force (the element's ability to move other objects). The applied tensile force may be based on the tensile force of an electromagnet or permanent magnet, as described by Maxwell's equations.
[0341] In Figures 13C to 13D, device 550 continues to determine the change in the position of the crown 558 in a clockwise direction, as indicated by the rotation direction arrow 1316. In response to determining the change in the position of the crown 558, device 550 applies an additional upward velocity to the focus selector 1310. Simultaneously, the magnetic attractive forces of elements 1302, 1304, 1306, and 1308 act on the focus selector 1310. In Figure 13C, elements 1306 and 1308 apply a downward force to the focus selector 1310 as a result of physics-based magnetic modeling. Elements 1302 and 1304 apply an upward force to the focus selector 1310 as a result of physics-based magnetic modeling.
[0342] The distance between each element and the focus selector 1310 plays a constant role in the amount of force the element exerts on the focus selector 1310. Generally, as the distance between the element and the focus selector 1310 increases, the strength of the force between the element and the focus selector 1310 decreases. The rate of change in force strength can be modeled in many ways. For example, the inverse square law can be applied to the force strength as a function of distance. More specifically, I = 1 / d², where I is the force strength and d is the distance. In other embodiments, the magnetic force may change inversely with distance, or inversely with the cube of the distance.
[0343] In some embodiments, a magnetic attraction force exists between the element and the focus selector only while the focus selector is within an attractive region having an outer edge at a predetermined distance from the element. In this case, the calculation is simplified because the magnetic force of elements beyond a predetermined distance from the focus selector is not considered when determining the force applied to the focus selector.
[0344] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may also utilize a physics-based model of friction to reduce the speed of the focus selector while it is moving. For example, the speed of the focus selector may be reduced continuously (or repeatedly) based on a friction coefficient value. This physics-based friction model may simulate kinetic friction, drag friction, etc.
[0345] In Figure 13D, the focus selector 1310 is located just between elements 1302, 1304 and elements 1306, 1308. However, the focus selector 1310 continues to move upward, partly based on the velocity or inertia associated with the focus selector 1310.
[0346] In Figures 13E to 13J, device 550 determines that the position of the crown 558 has not changed. As a result of this determination, no further velocity is added to the existing velocity of the focus selector 1310. However, the magnetic forces of elements 1302, 1304, 1306, and 1308 continue to be applied, similar to the physics-based friction model. In Figures 13E to 13J, element 1304 has the greatest magnetic effect on the focus selector 1310 compared to elements 1302, 1306, and 1308, because element 1304 is the closest to the focus selector 1310. As a result of this physics-based magnetic modeling, a user interface is provided that indicates a virtual stopper.
[0347] In Figures 13E to 13F, element 1304 applies an upward magnetic force to the focus selector 1310. In Figures 13G to 13H, as the focus selector 1310 passes element 1304, element 1304 applies a downward force to the focus selector 1310, further reducing its speed until it reaches a temporary stopping point in Figure 13H. In Figure 13I, the downward magnetic force applied to the focus selector 1310 by element 1304 moves the focus selector 1310 downward and aligns it with element 1304. In Figure 13J, the focus selector 1310 comes to a rest, aligned with element 1304. The system interprets this alignment as a selection of element 1304, which is achieved by the user operating the focus selector 1310 through the use of the crown 558.
[0348] While element 1304 is selected, the user may activate element 1304 by one or more techniques. For example, the user may press the touch-sensitive display 556, press the touch-sensitive display with a force exceeding a predetermined threshold, press the button 562, or simply allow element 1304 to remain selected for a predetermined period of time. In another embodiment, aligning the element and the focus selector may be interpreted as both selecting and activating the element.
[0349] In this embodiment, the movement of the focus selector 1310 is restricted along a default vertical path. In other embodiments, the movement of the focus selector may be restricted along a different default path, or it may not be restricted to a default path at all. In this embodiment, alignment along only one axis (the vertical axis) is used to indicate the selection of an element. In some embodiments, alignment along two, three, or more axes may be required between the element and the focus selector to indicate the selection.
[0350] Figure 13K is a flowchart illustrating a process 1350 for selecting an element within a graphical user interface using a physical crown as an input device. Process 1350 is performed in a wearable electronic device having a physical crown (e.g., device 550 in Figure 1). In some embodiments, the electronic device also includes a touch-sensitive display. This process provides an efficient technique for selecting an element from among multiple elements within a graphical user interface.
[0351] In block 1352, the device generates the display of multiple selectable elements on the touch-sensitive display of a wearable electronic device. The device also generates the display of a focus selector. The device uses a physics-based model to simulate the magnetic attraction force between the selectable elements and the focus selector. Each of the multiple selectable elements is associated with a corresponding magnetic value. The magnetic value may be the strength of the magnetic attraction force of the element in its tensile force.
[0352] In some embodiments, the system may display multiple selectable elements linearly and at equal intervals. This configuration makes it easier for the user to select elements. This configuration is particularly useful when the selectable elements have equal importance and are therefore equally weighted.
[0353] In block 1354, the device receives crown position information. The crown position information may be received as a series of pulse signals, real numbers, integer values, etc.
[0354] In block 1356, the device determines whether a change has occurred in the crown distance value. The crown distance value is based on the angular displacement of the physical crown of the wearable electronic device. A change in the crown distance value indicates that the user is providing input to the wearable electronic device, for example, by rotating the physical crown. If the device determines that no change has occurred in the crown distance value, the system returns to block 1354 and continues to receive the crown position information. If the device determines that a change has occurred in the crown distance value, the system may continue to receive the crown position information, but the system proceeds to block 1358.
[0355] The device also determines the direction based on the direction of rotation of the physical crown of the wearable electronic device. For example, the upward direction may be determined based on the clockwise rotation of the physical crown. Similarly, the downward direction may be determined based on the counterclockwise rotation of the physical crown. In other embodiments, the downward direction may be determined based on the clockwise rotation of the physical crown, and the upward direction may be determined based on the counterclockwise rotation of the physical crown.
[0356] In block 1358, in response to a determination of a change in the distance value of the crown, the device causes the focus selector to move toward the selected element among several selectable elements. This movement changes the focus of the multiple selectable elements. At least initially, the focus selector movement is in the determined direction. The focus selector movement may be animated. This movement has a rate of movement (velocity). The system changes the rate of movement of the focus selector using the physically-based magnetic interaction of the focus selector with the selected element, based at least on the magnetic value associated with the selected element. For example, the physically-based magnetic attraction of the selected element may increase the rate of movement of the focus selector as the focus selector moves toward the selected element. Similarly, the physically-based magnetic attraction of the selected element may decrease the rate of movement of the focus selector as the focus selector moves away from the selected element.
[0357] Similarly, magnetic interactions of the focus selector with other selectable elements may cause a change in the rate of movement of the focus selector. For example, the rate of movement of the focus selector may change when the focus selector approaches and passes through an element that remains unselected. This change in the rate of movement of the focus selector, resulting from the interaction with the unselected element, is at least partially based on the magnetic value of the unselected element.
[0358] In some embodiments, the magnetic value associated with the selectable element is a virtual magnetic intensity based on a virtual tensile force.
[0359] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may utilize a friction-based physics model to reduce the rate at which the focus selector moves while it is in motion. For example, the rate at which the focus selector moves may be reduced continuously (or repeatedly) based on a friction coefficient value. This physics-based friction model may simulate kinetic friction, resistance friction, and the like.
[0360] In some embodiments, the device receives additional input through the rotation of the crown before the focus selector reaches a stable state. The object is stable when it is not being translated, rotated, or scaled. In this embodiment, the system determines a second change in the distance value of the crown. The system also determines a second direction based on the direction of rotation of the physical crown of the wearable electronic device. In response to determining the second change in the distance value of the crown, the system increases or decreases the rate of movement of the focus selector. The change in the rate of movement of the focus selector is based on the second change in the distance value of the crown and the second direction.
[0361] In some embodiments, when the focus selector aligns with the selected element and becomes stable, the system determines that the selected element has been selected.
[0362] Figures 14 to 21 show an exemplary user interface 1400 displaying multiple user interface objects in the form of selectable elements 1402, 1404, 1406, and 1408, and a focus selector 1410. The user may select a selectable element from among the multiple selectable elements by using the physical crown of a wearable electronic device to move the focus selector 1410 to align with the desired selectable element. Additional input from the user may be used to activate the selected selectable element.
[0363] The crown 558 of device 550 is a user interface input (e.g., a rotatable input mechanism) that can be rotated by the user. The crown 558 may be rotated in two different directions: clockwise and counterclockwise. Figures 14 to 20 include, where necessary, rotation direction arrows indicating the direction of rotation of the crown and movement direction arrows indicating the direction of movement of one or more user interface objects. These rotation direction arrows and movement direction arrows are not normally part of the user interface that is displayed, but are provided to assist in the interpretation of the figures. In this embodiment, clockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing upward. Similarly, counterclockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing downward. The properties of the rotation direction arrows do not indicate the distance, speed, or acceleration by which the crown 558 is rotated by the user. Instead, the rotation direction arrows indicate the direction of rotation of the crown 558 by the user.
[0364] Figures 14 to 21 show a physics-based exemplary model that may be used in combination with a physical crown user input device to control user interaction with user interface objects. In this embodiment, elements 1402, 1404, 1406, and 1408 are fixed, and the focus selector 1410 is movable via user input received from the crown 558. Clockwise movement of the crown 558 is associated with an upward force relative to the focus selector 1410, and counterclockwise movement of the crown 558 is associated with a downward force relative to the focus selector 1410.
[0365] To facilitate the user's ability to control the movement of the focus selector 1410 between four user-selectable elements 1402, 1404, 1406, and 1408, a "magnetic" relationship is associated between each user-selectable element and the focus selector 1410. Each element 1402, 1404, 1406, and 1408 is associated with a magnetic value. In this embodiment, the magnetic values of elements 1402, 1304, 1306, and 1408 are not all equal. The unequal magnetic values may help allow the user to more easily select a particular option. For example, if the system anticipates that the user has a 90% probability of selecting a particular option from among several options, the magnetic value of that particular option may be configured to be significantly higher than the magnetic values of the other options. This allows the user to quickly and easily select a particular option, but at the same time requires the user to perform more precise user interface navigation to select one of the other options.
[0366] In this embodiment, the magnetic value of element 1402 is equal to that of element 1404. This is shown in Figures 14 to 21 by elements 1402 and 1404 of equal size. The magnetic value of element 1406 is lower than that of element 1404. This is shown in Figures 14 to 21 by element 1406 of reduced size. The magnetic value of element 1408 is higher than that of element 1404. This is shown in Figures 14 to 21 by element 1408 of larger size. Therefore, in this embodiment, the respective magnetic strengths of elements 1402, 1404, 1406, and 1408 are represented in Figures 14 to 21 by their relative sizes.
[0367] When using the magnetic relationship between elements 1402, 1404, 1406, and 1408 and the focus selector 1410, physics-based modeling may be used to simulate the magnetic attraction between elements 1402, 1404, 1406, and 1408 and the focus selector 1410. As will be described in more detail below, the user interface 1400 generates an attractive force between elements 1402, 1404, 1406, and 1408 and the focus selector 1410. As a result, when no user input is received, the focus selector 1410 eventually reaches a stable state where it aligns with one of elements 1402, 1404, 1406, and 1408. An object is in a stable state when it is not translated, rotated, or scaled. Alignment of the focus selector 1410 with an element indicates the selection of that element. In other embodiments, additional input, such as a tap, a crown, or the pressing of another button, may be required for selection. This physics-based magnetic model provides a user interface that demonstrates a virtual stopper.
[0368] In this embodiment, physics-based magnetic modeling is achieved by modeling each element 1402, 1404, 1406, and 1408 as an object made from a magnetized material that generates its own persistent magnetic field, and by modeling the focus selector 1410 as a material such as a ferromagnetic material containing iron, cobalt, and nickel that is attracted to a magnet. Other physics-based models, such as those described above, may be used.
[0369] In this embodiment, as described above, the magnetic strengths of elements 1402, 1404, 1406, and 1408 are not all equal. Furthermore, the magnetic strengths of elements 1402, 1404, 1406, and 1408 change based on the speed of the focus selector 1410. The faster the speed of the focus selector 1410, the lower the magnetic strength of elements 1402, 1404, 1406, and 1408. The slower the speed of the focus selector 1410, the higher the magnetic strength of elements 1402, 1404, 1406, and 1408. As a result, when the focus selector 1410 is moving quickly, the role that elements 1402, 1404, 1406, and 1408 play in changing the speed of the focus selector is smaller than when the focus selector 1410 is moving slowly.
[0370] Techniques for varying the magnetic intensity of elements 1402, 1404, 1406, and 1408 are shown in Figures 14 to 21. The magnetic intensity (and, in this embodiment, size) of elements 1402, 1404, 1406, and 1408 is based on the speed of the focus selector 1410. For example, the varying magnetic intensity may be simulated by using an electromagnet that may have a varying intensity.
[0371] In Figure 14, the focus selector 1410 is aligned with element 1404, indicating the selection of element 1404. In some embodiments, additional input, such as a tap, pressing of a crown, or another button, may be required for selection. In Figure 15, the device 550 determines a change in the position of the crown 558 in a counterclockwise direction, as indicated by the rotation direction arrow 1430. In response to determining the change in the position of the crown 558, the device increases the speed of the focus selector 1410 and moves the focus selector 1410 downward, as indicated by the movement direction arrow 1420. In one embodiment, the focus selector may be associated with mass or may have calculated inertia.
[0372] Since element 1406 is modeled as a magnetic element and focus selector 1410 is modeled as a ferromagnetic material, a magnetic attraction exists between the two user interface objects. The magnetic value of the element (e.g., the strength of the element's magnetic attraction) may be modeled, for example, in terms of its tensile force (the element's ability to move other objects). The applied tensile force may be based on the tensile force of an electromagnet or permanent magnet, as described by Maxwell's equations.
[0373] However, the magnetic strength of elements 1402, 1404, 1406, and 1408 is based on the speed of the focus selector 1410. The faster the focus selector 1410 moves, the lower the magnetic strength of elements 1402, 1404, 1406, and 1408. This is shown in Figures 15 to 17. As the speed of the focus selector 1410 increases, elements 1402, 1404, 1406, and 1408 lose their magnetic strength. This loss of magnetic strength is illustrated for illustrative purposes by the smaller size of elements 1402, 1404, 1406, and 1408 in Figures 15 to 17. In general, the size of the elements and the focus selector does not visually change with changes in their magnetic strength.
[0374] In Figures 18 to 20, the speed of the focus selector 1410 decreases. The slower the focus selector 1410 moves, the greater the magnetic intensity of elements 1402, 1404, 1406, and 1408. This is shown in Figures 18 to 20. As the speed of the focus selector 1410 decreases, elements 1402, 1404, 1406, and 1408 recover their magnetic intensity. This recovery of magnetic intensity is illustrated for illustrative purposes by the larger size of elements 1402, 1404, 1406, and 1408 in Figures 18 to 20. Generally, the size of the elements and the focus selector does not visually change with changes in their magnetic intensity. In summary, the magnetic intensity of the elements is inversely proportional to the speed of the focus selector.
[0375] As described above, the distance between each element 1402, 1404, 1406, and 1408 and the focus selector 1410 plays a certain role in the amount of force that the element exerts on the focus selector 1410.
[0376] In some embodiments, a magnetic attraction force exists between the element and the focus selector only while the focus selector is within an attractive region having an outer edge at a predetermined distance from the element. In this case, the calculation is simplified because the magnetic force of elements beyond a predetermined distance from the focus selector is not considered when determining the force applied to the focus selector.
[0377] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may also utilize a physics-based model of friction to reduce the speed of the focus selector while it is moving. For example, the speed of the focus selector may be reduced continuously (or repeatedly) based on a friction coefficient value. This physics-based friction model may simulate kinetic friction, resistance friction, etc.
[0378] In Figures 19 to 20, the downward magnetic force applied to the focus selector 1410 by element 1408 moves the focus selector 1410 downward and aligns it with element 1408. In Figure 21, the focus selector 1410 remains stationary in an aligned position with element 1408. The system interprets this alignment as a selection of element 1408, which is achieved by the user operating the focus selector 1410 through the use of the crown 558. In some embodiments, additional input, such as a tap, pressing the crown, or another button, may be required for selection. Further user input may be used to activate the selection.
[0379] While element 1408 is selected, the user may activate element 1408 by one or more of several techniques. For example, the user may press the touch-sensitive display of the device, press the touch-sensitive display with a force exceeding a predetermined threshold, press a button, or simply allow element 1408 to remain selected for a predetermined period of time. In another embodiment, aligning the element and the focus selector may be interpreted as both selecting and activating the element.
[0380] In this embodiment, the movement of the focus selector is restricted along a default vertical path. In other embodiments, the movement of the focus selector may be restricted along a different default path, or it may not be restricted to a default path at all. In this embodiment, alignment on only one axis (the vertical axis) is used to indicate the selection of an element. In some embodiments, alignment on two, three, or more axes may be required between the element and the focus selector to indicate the selection. In some embodiments, additional input, such as a tap after alignment, or the pressing of a crown or another button, may be required for selection.
[0381] Figure 22 is a flowchart illustrating a process 2200 for selecting elements within a graphical user interface using a physical crown as an input device. The process 2200 is performed in a wearable electronic device having a physical crown (e.g., device 550 in Figure 1). In some embodiments, the electronic device also includes a touch-sensitive display. This process provides an efficient technique for selecting elements from among multiple elements within a graphical user interface.
[0382] In block 2202, the device generates the display of multiple selectable elements on a touch-sensitive display of a wearable electronic device. The device also generates the display of a focus selector. The device uses a physics-based model to simulate the magnetic attraction force between the selectable elements and the focus selector. Each of the multiple selectable elements is associated with a corresponding magnetic value. The magnetic value may be the strength of the magnetic attraction force of the element in its tensile force, and each element may have a different magnetic value.
[0383] In block 2204, the device receives crown position information. The position information may be received as a series of pulse signals, real numbers, integer values, etc.
[0384] In block 2206, the device determines whether a change has occurred in the crown distance value. The crown distance value is based on the angular displacement of the physical crown of the wearable electronic device. A change in the crown distance value indicates that the user is providing input to the wearable electronic device, for example, by rotating the physical crown. If the device determines that no change has occurred in the crown distance value, the system returns to block 2204 and continues to receive the crown position information. If the device determines that a change has occurred in the crown distance value, the system may continue to receive the crown position information, but the system proceeds to block 2208.
[0385] The device also determines the direction based on the direction of rotation of the physical crown of the wearable electronic device. For example, the upward direction may be determined based on the clockwise rotation of the physical crown. Similarly, the downward direction may be determined based on the counterclockwise rotation of the physical crown. In other embodiments, the downward direction may be determined based on the clockwise rotation of the physical crown, and the upward direction may be determined based on the counterclockwise rotation of the physical crown.
[0386] In block 2208, in response to detecting a change in the crown's distance value, the device causes the focus selector to move toward the selected element among multiple selectable elements. This movement changes the focus of the multiple selectable elements. At least initially, the focus selector movement is in the detected direction. The focus selector movement may be animated. This movement has a rate (velocity).
[0387] In some embodiments, the minimum angular velocity of the crown rotation required for the focus selector to reach escape velocity directly corresponds to the instantaneous angular velocity of the crown 558 (Figure 1), meaning that the user interface of device 550 responds when the crown 558 has reached a sufficient angular velocity. In some embodiments, the minimum angular velocity of the crown rotation required for the focus selector to reach escape velocity is a velocity calculated based on the instantaneous ("current") angular velocity of the crown 558, although this does not perfectly match. In these embodiments, device 550 may maintain the crown (angular) velocity V at each individual moment in time T, calculated according to Equation 1.
[0388] VT=V(T-1)+ΔVCROWN-ΔCDRAG (Equation 1) In Equation 1, VT represents the calculated crown velocity (velocity and direction) at time T, V(T-1) represents the previous velocity (velocity and direction) at time T-1, ΔVCROWN represents the change in velocity caused by the force applied through the rotation of the crown at time T, and ΔVDRAG represents the change in velocity due to the drag force. The applied force reflected through ΔVCROWN may depend on the current velocity of the crown's angular rotation. Thus, ΔVCROWN may also depend on the current angular velocity of the crown. In this way, device 550 may provide user interface interaction not only based on the instantaneous velocity of the crown, but also based on user input in the form of the movement of the crown over multiple time intervals (even if the intervals are finely divided). Typically, according to Equation 1, if there is no user input in the form of ΔVCROWN, VT approaches (and becomes zero) based on ΔVDRAG, but it should be noted that VT does not change sign even if there is no user input in the form of the rotation of the crown (ΔVCROWN).
[0389] Typically, the value of ΔVCROWN increases as the rate of angular rotation of the crown increases. However, the actual correspondence between the rate of angular rotation of the crown and ΔVCROWN may vary depending on the desired user interface effect. For example, various linear or nonlinear correspondences may be used between the rate of angular rotation of the crown and ΔVCROWN.
[0390] Furthermore, ΔVDRAG may take on various values. For example, ΔVDRAG may depend on the rotational speed of the crown, such that a larger inverse velocity change (ΔVDRAG) may occur at faster speeds. In another embodiment, ΔVDRAG may have a constant value. It should be understood that the above requirements for ΔVCROWN and ΔVDRAG may be modified to produce the desired user interface effect.
[0391] As can be seen from Equation 1, the sustained velocity (VT) continues to increase as long as ΔVCROWN exceeds ΔVDRAG. Furthermore, VT may have a non-zero value even when no input for ΔVCROWN is received, meaning that the user interface object may continue to change even if the user does not rotate the crown. When this occurs, the object may stop changing based on the sustained velocity and ΔVDRAG component at the time the user stopped rotating the crown.
[0392] In some embodiments, when the crown is rotated in a direction corresponding to the rotation direction opposite to the current user interface change, the V(T-1) component is reset to a value of zero, allowing the user to quickly change the orientation of the object without having to provide enough force to cancel out the VT.
[0393] In block 2210, the system determines the speed of the focus selector. The speed of the focus selector may be determined based on the speed of the crown, as described above.
[0394] In block 2212, the magnetic values of one or more of the selectable elements are modified based on the speed of the focus selector. In one embodiment, the magnetic values of one or more selectable elements are inversely proportional to the speed of the focus selector. For example, when the focus selector has a speed above a first threshold, the magnetic values of the selectable elements are reduced to one-tenth of their original values. When the focus selector has a speed below the first threshold and above a second threshold, the magnetic values of the selectable elements are reduced to one-fifth of their original values. When the speed of the focus selector decreases further and falls below the second threshold, the magnetic values of the selectable elements return to their original values.
[0395] Furthermore, the velocity of the focus selector changes due to the physically-based magnetic interaction between the focus selector and the selection element, which is at least based on the magnetic value associated with the selection element. For example, the physically-based magnetic attraction of the selection element may increase the velocity of the focus selector as it moves toward the selection element. Similarly, the physically-based magnetic attraction of the selection element may decrease the velocity of the focus selector as it moves away from the selection element.
[0396] Similarly, magnetic interactions of the focus selector with other selectable elements may cause changes in the velocity of the focus selector. For example, the velocity of the focus selector may change when it approaches and passes an element that remains unselected. This change in the velocity of the focus selector, resulting from the interaction with the unselected element, is at least partially based on the magnetic value of the unselected element.
[0397] In some embodiments, the magnetic value associated with the selectable element is a virtual magnetic intensity based on a virtual tensile force.
[0398] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may utilize a physics-based model of friction to reduce the speed of the focus selector while it is moving. For example, the speed of the focus selector may be reduced continuously (or repeatedly) based on a friction coefficient value. This physics-based friction model may simulate kinetic friction, resistance friction, etc.
[0399] In some embodiments, the device receives additional input through the rotation of the crown before the focus selector reaches a stable state. The object is stable when it is not being translated, rotated, or scaled. In this embodiment, the system determines a second change in the distance value of the crown. The system also determines a second direction based on the direction of rotation of the physical crown of the wearable electronic device. In response to determining a second change in the distance value of the crown, the system increases or decreases the velocity of the focus selector by applying further force to the focus selector. The change in the rate of movement of the focus selector is based on the second change in the distance value of the crown and the second direction.
[0400] In some embodiments, when the focus selector aligns with the selected element and becomes stable, the system determines that the selected element has been selected.
[0401] Figures 23 to 30 show an exemplary user interface 2300 displaying multiple user interface objects in the form of selectable elements 2302, 2304, 2306, and 2308, and a focus selector 2310. The user may select a selectable element from the multiple selectable elements by using the physical crown of a wearable electronic device to move the focus selector 2310 to align with the desired selectable element. In some embodiments, the user may be required to perform additional input, such as a tap after alignment, pressing the crown, or pressing another button, in order to select a selectable element.
[0402] The crown 558 of device 550 is a user interface input (e.g., a rotatable input mechanism) that can be rotated by the user. The crown 558 may be rotated in two different directions: clockwise and counterclockwise. Figures 24 to 29 include, where necessary, rotation direction arrows indicating the direction of rotation of the crown and movement direction arrows indicating the direction of movement of one or more user interface objects. These rotation direction arrows and movement direction arrows are not typically part of the user interface that is displayed, but are provided to assist in the interpretation of the figures. In this embodiment, counterclockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing downward. The characteristics of the rotation direction arrow do not indicate any distance, speed, or acceleration by which the crown 558 is rotated by the user. Instead, the rotation direction arrow indicates the direction of rotation of the crown 558 by the user.
[0403] Figures 23 to 30 show a physics-based exemplary model that may be used in combination with a physical crown user input device to control user interaction with user interface objects. In this embodiment, elements 2302, 2304, 2306, and 2308 are fixed, and the focus selector 2310 is movable via user input received from the crown 558. Counterclockwise movement of the crown 558 is associated with a downward force relative to the focus selector 2310.
[0404] As described above, when using the magnetic relationship between elements 2302, 2304, 2306, and 2308 and the focus selector 2310, a physics-based model may be used to simulate the magnetic attraction force between elements 1302, 1304, 1306, and 1308 and the focus selector 1310. Furthermore, the movement of the focus selector 2310 may be further controlled using a physics-based spring model.
[0405] The physics-based modeling of springs is achieved, for example, by modeling springs attached to elements 2302 and 2308. When the focus selector 2310 moves beyond the limit range of multiple selectable elements, the springs engage with the focus selector 2310, causing "rubber banding" of the focus selector. For example, the virtual springs 2312 and 2314 may be modeled using Hooke's Law, which states that the force required to stretch or compress a spring by a certain distance is proportional to that distance. In other words, F = kx, where F = force, k = spring constant, and x = distance. Springs 2312 and 2314 are typically provided to assist in the interpretation of the diagram, rather than being part of the displayed user interface.
[0406] In Figure 23, the focus selector 2310 is aligned with element 2308, indicating the selection of element 2308. In Figure 24, the device 550 determines a change in the position of the crown 558 in a counterclockwise direction, as indicated by the rotation direction arrow 2330. In response to determining the change in the position of the crown 558, the device increases the velocity of the focus selector 2310 and moves the focus selector 2310 downward, as indicated by the movement direction arrow 2320. In one embodiment, the focus selector may be associated with mass or may have calculated inertia.
[0407] Since element 2308 is modeled as a magnetic element and focus selector 2310 is modeled as a ferromagnetic material, a magnetic attraction exists between the two user interface objects.
[0408] In Figures 24 to 26, the focus selector 2310 moves beyond the range of selectable elements. As a result, the spring 2314 engages with the focus selector 2310 and returns the focus selector 2310 by "rubber banding," as shown in Figures 27 to 30. The spring constant of the spring 2310 may be changed to produce results with different properties.
[0409] In Figure 30, the focus selector 2310 is stationary, aligned with element 2308. The system interprets this alignment as a selection of element 2308, which is achieved by the user operating the focus selector 2310 through the use of the crown 558. In some embodiments, additional input, such as a tap after alignment, pressing the crown, or pressing another button, may be required from the user to select element 2308.
[0410] While element 2308 is selected, the user may activate element 2308 by one or more of several techniques. For example, the user may press a touch-sensitive display, press a touch-sensitive display with a force exceeding a predetermined threshold, press a button, or simply allow element 2308 to remain selected for a predetermined period of time. In another embodiment, aligning the element and the focus selector may be interpreted as both selecting and activating the element.
[0411] In this embodiment, the movement of the focus selector is restricted along a default vertical path. In other embodiments, the movement of the focus selector may be restricted along a different default path, or it may not be restricted to a default path at all. In this embodiment, alignment along only one axis (the vertical axis) is used to indicate the selection of an element. In some embodiments, alignment along two, three, or more axes may be required between the element and the focus selector to indicate the selection.
[0412] Figure 31 is a flowchart illustrating a process 3100 for selecting elements within a graphical user interface using a physical crown as an input device. The process 3100 is performed in a wearable electronic device having a physical crown (e.g., device 550 in Figure 1). In some embodiments, the electronic device also includes a touch-sensitive display. This process provides an efficient technique for selecting elements from among multiple elements within a graphical user interface.
[0413] In block 3102, the device generates the display of multiple selectable elements on a touch-sensitive display of a wearable electronic device. The device also generates the display of a focus selector. The device uses a physics-based model to simulate the magnetic attraction force between the selectable elements and the focus selector. Each of the multiple selectable elements is associated with a corresponding magnetic value. The magnetic value may be the strength of the magnetic attraction force of the element in its tensile force, and each element may have a different magnetic value.
[0414] In block 3104, the device receives the crown's position information. The position information may be received as a series of pulse signals, a real number, an integer value, or the like.
[0415] In block 3106, the device determines whether a change has occurred in the crown distance value. The crown distance value is based on the angular displacement of the physical crown of the wearable electronic device. A change in the crown distance value indicates that the user is providing input to the wearable electronic device, for example, by rotating the physical crown. If the device determines that no change has occurred in the crown distance value, the system returns to block 3104 and continues to receive the crown position information. If the device determines that a change has occurred in the crown distance value, the system may continue to receive the crown position information, but the system proceeds to block 3108.
[0416] The device also determines the direction based on the direction of rotation of the physical crown of the wearable electronic device. For example, the upward direction may be determined based on the clockwise rotation of the physical crown. Similarly, the downward direction may be determined based on the counterclockwise rotation of the physical crown. In other embodiments, the downward direction may be determined based on the clockwise rotation of the physical crown, and the upward direction may be determined based on the counterclockwise rotation of the physical crown.
[0417] In block 3108, the device causes a movement of the focus selector in response to a change in the crown distance value. This movement changes the focus of multiple selectable elements. At least initially, the movement of the focus selector is in the determined direction. The movement of the focus selector may be animated. This movement has a rate (velocity). Furthermore, the magnetic values of one or more of the selectable elements may be modified based on the velocity of the focus selector.
[0418] In block 3110, the system determines whether the focus selector has exceeded a predetermined limit range. If the system determines that the focus selector has not exceeded the predetermined limit range, the system returns to block 3104. If the system determines that the focus selector has exceeded the predetermined limit range, the system engages a virtual spring in block 3112. The virtual spring slows down the focus selector and causes it to return to the predetermined limit range by rubber banding. This mechanism prevents the user from moving the focus selector far beyond the range of selectable elements. In block 3104, the system continues to receive crown position information.
[0419] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may utilize a physics-based model of friction to reduce the speed of the focus selector while it is moving. For example, the speed of the focus selector may be reduced continuously (or repeatedly) based on a friction coefficient value. This physics-based friction model may simulate kinetic friction, resistance friction, etc.
[0420] In some embodiments, the device receives additional input through the rotation of the crown before the focus selector reaches a stable state. The object is stable when it is not being translated, rotated, or scaled. In this embodiment, the system determines a second change in the distance value of the crown. The system also determines a second direction based on the direction of rotation of the physical crown of the wearable electronic device. In response to determining a second change in the distance value of the crown, the system increases or decreases the velocity of the focus selector by applying further force to the focus selector. The change in the rate of movement of the focus selector is based on the second change in the distance value of the crown and the second direction.
[0421] In some embodiments, when the focus selector is aligned to the selection element and becomes stable, the system determines that the selection element has been selected. In other embodiments, the user may be required to perform additional input, such as a tap after alignment, or pressing the crown or another button, in order to select the selection element that has been aligned to the focus selector and become stable.
[0422] Figures 32 to 38 show an exemplary user interface 3200 displaying multiple user interface objects in the form of selectable elements 3202, 3204, 3206, 3208, 3210, and 3212, and a focus area 3220. The user may select a selectable element from the multiple selectable elements by scrolling through the selectable elements 3202, 3204, 3206, 3208, 3210, and 3212 and using the physical crown of a wearable electronic device to align the desired selectable element in the focus area 3220. The focus area 3220 is typically not part of the displayed user interface but is provided to assist in the interpretation of the figure. In some embodiments, the user may be required to perform additional input, such as a tap after alignment, pressing a crown, or pressing another button, in order to select a selectable element.
[0423] The crown 558 of device 550 is a user interface input (e.g., a rotatable input mechanism) that can be rotated by the user. The crown 558 may be rotated in two different directions: clockwise and counterclockwise. Figures 32 to 38 include, where necessary, rotation direction arrows indicating the direction of rotation of the crown and movement direction arrows indicating the direction of movement of one or more user interface objects. These rotation direction arrows and movement direction arrows are not typically part of the user interface that is displayed, but are provided to assist in the interpretation of the figures. In this embodiment, clockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing upward. Similarly, counterclockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing downward. The properties of the rotation direction arrows do not indicate the distance, speed, or acceleration by which the crown 558 is rotated by the user. Instead, the rotation direction arrows indicate the direction of rotation of the crown 558 by the user.
[0424] Figures 32 to 38 show an exemplary scrollable list of elements using a physics-based model that can be used in conjunction with a physical crown user input device to control user interaction with user interface objects. In this embodiment, elements 3202, 3204, 3206, 3208, 3210, and 3212 are scrollable via user input received from the crown 558, and the focus region 3220 is fixed. Clockwise movement of the crown 558 is associated with an upward force on elements 3202, 3204, 3206, 3208, 3210, and 3212, and counterclockwise movement of the crown 558 is associated with a downward force on elements 3202, 3204, 3206, 3208, 3210, and 3212. In this embodiment, elements 3202, 3204, 3206, 3208, 3210, and 3212 form a scrollable list of elements.
[0425] To facilitate the user's ability to control movement within a scrollable list of elements, a "magnetic" relationship is associated between each user-selectable element and the focus region 3220. In this embodiment, the magnetic relationship values (also called magnetic values) between elements 3202, 3204, 3206, 3208, 3210, and 3212 and the focus region 3220 are constant. In other embodiments, the magnetic values of elements 3202, 3204, 3206, 3208, 3210, and 3212 may be different.
[0426] When using the magnetic relationship between elements 3202, 3204, 3206, 3208, 3210, and 3212 and the focus region 3220, physics-based modeling may be used to simulate the magnetic attraction between elements 3202, 3204, 3206, 3208, 3210, and 3212 and the focus region 3220. As will be described in more detail below, the user interface 3200 generates an attractive force between elements 3202, 3204, 3206, 3208, 3210, and 3212 and the focus region 3220. As a result, when no user input is received, multiple elements are scrolled until a stable state is reached in which one element is aligned to the focus region 3220. An object is in a stable state when it is not translated, rotated, or scaled. The alignment of an element to the focus region 3220 indicates the selection of that element. As a result of this physics-based magnetic modeling, a user interface is provided that indicates a virtual stop.
[0427] In this embodiment, physics-based modeling is achieved, for example, by modeling each element 3202, 3204, 3206, 3208, 3210, and 3212 as objects made from magnetized material that generates its own persistent magnetic field, and by modeling the focus region 3220 as a material such as a ferromagnetic material containing iron, cobalt, and nickel that is attracted to a magnet. In another embodiment, physics-based modeling may be achieved by modeling each element 3202, 3204, 3206, 3208, 3210, and 3212 as objects made from material that is attracted to a magnet, and by modeling the focus region 3220 as a material that generates its own persistent magnetic field. In another embodiment, physics-based modeling may be achieved by modeling each element 3202, 3204, 3206, 3208, 3210, 3212 as an object that generates its own persistent magnetic field, and modeling the focus region 3220 as a material such as two attractive magnets that also generate its own persistent magnetic field. Each of these physics-based models may include a magnetic field that does not remain persistent but changes based on certain factors, such as the distance between the element and the focus region 3220, the velocity of the element, the acceleration of the element, or a combination of two or more factors. For example, the changing magnetic field may be simulated by using an electromagnet that can be turned on or off and may have a varying intensity.
[0428] In one embodiment, the magnetic strength of elements 3202, 3204, 3206, 3208, 3210, and 3212 changes based on the speed of the element's scrollable list. As the speed of the element's scrollable list increases, the magnetic strength of elements 3202, 3204, 3206, 3208, 3210, and 3212 decreases. As the speed of the element's scrollable list increases, the magnetic strength of elements 3202, 3204, 3206, 3208, 3210, and 3212 increases. As a result, when the element's scrollable list is moving quickly, the role that elements 3202, 3204, 3206, 3208, 3210, and 3212 play in changing the speed of the focus area is smaller than when the element's scrollable list is moving slowly.
[0429] In Figure 32, element 3204 is aligned to the focus region 3220, which indicates the selection of element 3204. In Figure 33, device 550 determines a change in the position of the crown 558 in a clockwise direction, as indicated by the rotation direction arrow 3230. In response to determining the change in the position of the crown 558, the device increases the speed of the scrollable list of elements and moves the scrollable list of elements upward, as indicated by the movement direction arrow 3240. In one embodiment, the scrollable list of elements may be associated with mass or may have calculated inertia.
[0430] Since element 3204 is modeled as a magnetic element and the focus region 3220 is modeled as a ferromagnetic material, a magnetic attraction exists between the two user interface objects. The physics-based model of user interface 3200 uses this magnetic attraction to generate resistance to the movement of element 3204 away from the focus region 3220. The magnetic value of the element (e.g., the strength of the element's magnetic attraction) may be modeled, for example, in terms of its tensile force (the element's ability to move other objects). The applied tensile force may be based on the tensile force of an electromagnet or permanent magnet, as described by Maxwell's equations.
[0431] In Figures 33 and 34, device 550 continues to determine the change in the position of the crown 558 in a clockwise direction, as indicated by the rotation direction arrow 3220. In response to the determination of the change in the position of the crown 558, device 550 adds an additional upward velocity to the scrollable list of elements. Simultaneously, the magnetic attractive forces of elements 3202, 3204, 3206, 3208, 3210, and 3212 with respect to the focus region 3220 act on the scrollable list of elements. For example, in Figure 34, at least elements 3204 and 3206 exert a downward force on the scrollable list of elements as a result of physically-based magnetic modeling. This is because elements 3204 and 3206 are attracted to the focus region 3220. Elements 3208 and 3210 exert an upward force on the scrollable list of elements as a result of physically-based magnetic modeling. This is because elements 3208 and 3210 are also attracted to the focus region 3220. In some embodiments, elements that are not visible in the element's scrollable list also contribute to the element's scrollable list.
[0432] The distance between the element and the focus region 3220 also plays a constant role in the amount of force the element exerts on the element's scrollable list. Generally, as the distance between the element and the focus region 3220 increases, the strength of the force between the element and the focus region 3220 decreases. The rate of change in force strength can be modeled in many ways. For example, the inverse square law can be applied to the force strength as a function of distance. More specifically, I = 1 / d², where I is the force strength and d is the distance. In other embodiments, the magnetic force may change inversely with distance, or inversely with the cube of distance.
[0433] In some embodiments, the magnetic attraction force between an element and the focus region exists only while the element is within a predetermined distance from the focus region 3220. In this case, the calculation is simplified because the magnetic force on elements beyond a predetermined distance from the focus region 3220 is not considered when determining the force applied to the scrollable list of elements.
[0434] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may also utilize a friction-based physics model to reduce the speed of the scrollable list of elements while it is moving. For example, the speed of the scrollable list of elements may be reduced continuously (or repeatedly) based on a friction coefficient value. This physics-based friction model may simulate kinetic friction, drag friction, etc.
[0435] In Figures 35 to 38, device 550 determines that the position of crown 558 has not changed. As a result of this determination, no further velocity is added to the existing velocity of the element's scrollable list. However, the magnetic forces of elements 3202, 3204, 3206, 3208, 3210, and 3212 continue to be added to the element's scrollable list. Similarly, the physics-based friction model continues to be applied to the element's scrollable list. In Figures 35 to 38, element 3208 has the largest magnetic effect on the element's scrollable list compared to the other elements in the element's scrollable list, because element 3208 is closest to the focus region 3220. As a result of this physics-based magnetic modeling, a user interface is provided that shows a virtual stopper.
[0436] In Figure 36, as element 3208 passes through the focus region 3220, element 3208 applies a downward force to the element's scrollable list, further slowing down the element's scrollable list. In Figure 37, the downward magnetic force applied by element 3208 to the element's scrollable list moves the element's scrollable list downward, aligning element 3208 with the focus region 3220. The element's scrollable list comes to a standstill with element 3208 aligned with the focus region 3220. The system interprets this alignment as a selection of element 3208, which is achieved by the user manipulating the element's scrollable list through the use of the crown 558.
[0437] While element 3208 is selected, the user may activate element 3208 by one or more of several techniques. For example, the user may press the touch-sensitive display 556, press the touch-sensitive display with a force exceeding a predetermined threshold, press the button 562, or simply allow element 3208 to remain selected for a predetermined period of time. In another embodiment, aligning the element and the focus area may be interpreted as both selecting and activating the element. In some embodiments, additional input, such as a tap after alignment, pressing the crown or another button, may be required for the user to select the element.
[0438] The user interface 3200 may be used, for example, for text input on a device with a reduced-size display. Each element in the scrollable list of elements may correspond to a letter (such as a letter selected from A to Z), a word, a phrase, or a number (such as a number selected from 0 to 9). The user may scroll through these alphanumeric elements and sequentially select and activate the desired elements to form words, numbers, sentences, etc. In embodiments where the elements have varying magnetic strengths, the magnetic strength of the elements associated with alphabetic letters may be based on the frequency of use of that letter. As a result, certain letters may have a stronger magnetism than others and therefore be easier to select.
[0439] In this embodiment, movement of the scrollable list of elements is restricted along a default vertical path. In other embodiments, movement of the scrollable list of elements may be restricted along a different default path, or may not be restricted to a default path at all. In this embodiment, alignment along only one axis (the vertical axis) is used to indicate the selection of an element. In some embodiments, alignment along two, three, or more axes may be required between the element and the focus area to indicate the selection.
[0440] Figure 39 is a flowchart illustrating a process 3900 for selecting elements within a graphical user interface using a physical crown as an input device. The process 3900 is performed in a wearable electronic device having a physical crown (e.g., device 550 in Figure 1). In some embodiments, the electronic device also includes a touch-sensitive display. This process provides an efficient technique for selecting elements from among multiple elements within a graphical user interface.
[0441] In block 3902, the device generates the display of multiple selectable elements on a touch-sensitive display of a wearable electronic device. The device also records a focus area, which may be, for example, a region, a line, or a point. The device uses a physics-based model to simulate the magnetic attraction force between the selectable elements and the focus area. Each of the multiple selectable elements is associated with a corresponding magnetic value. The magnetic value may be the strength of the magnetic attraction force of the element in its tensile force, and each element may have a different magnetic value.
[0442] In block 3904, the device receives the crown's position information. The position information may be received as a series of pulse signals, a real number, an integer value, or the like.
[0443] In block 3906, the device determines whether a change has occurred in the crown distance value. The crown distance value is based on the angular displacement of the physical crown of the wearable electronic device. A change in the crown distance value indicates that the user is providing input to the wearable electronic device, for example, by rotating the physical crown. If the device determines that no change has occurred in the crown distance value, the system returns to block 3904 and continues to receive the crown position information. If the device determines that a change has occurred in the crown distance value, the system may continue to receive the crown position information, but the system proceeds to block 3908.
[0444] The device also determines the direction based on the direction of rotation of the physical crown of the wearable electronic device. For example, the upward direction may be determined based on the clockwise rotation of the physical crown. Similarly, the downward direction may be determined based on the counterclockwise rotation of the physical crown. In other embodiments, the downward direction may be determined based on the clockwise rotation of the physical crown, and the upward direction may be determined based on the counterclockwise rotation of the physical crown.
[0445] In block 3908, the device causes the movement of multiple selectable elements in response to a change in the crown's distance value. The direction of the movement is such that the selected element moves closer to the focus region than it did before the movement. This movement changes the focus of the multiple selectable elements. At least initially, the movement of the multiple selectable elements is in the determined direction. The movement of the multiple selectable elements may be animated. The movement of the multiple selectable elements has a rate (velocity).
[0446] In block 3910, the magnetic values of one or more of the selectable elements are modified based on the velocities of the selectable elements. In one embodiment, the magnetic values of one or more selectable elements are inversely proportional to the velocities of the selectable elements. For example, when the selectable elements have a velocity above a first threshold, the magnetic values of the selectable elements are reduced to one-tenth of their original values by a first coefficient (e.g., 10). When the selectable elements have a velocity below the first threshold and above a second threshold, the magnetic values of the selectable elements are reduced to one-fifth of their original values by a second coefficient (e.g., 5). When the velocities of the selectable elements decrease further and fall below the second threshold, the magnetic values of the selectable elements return to their original values. The first coefficient is greater than the second coefficient.
[0447] Furthermore, the velocities of the multiple selectable elements change due to the physically-based magnetic interaction between the multiple selectable elements and the focus region, which is at least based on the magnetic values associated with the selectable elements. For example, the physically-based magnetic attraction of a selectable element to the focus region may increase the velocities of the multiple selectable elements as the selectable element moves toward the focus region. Similarly, the physically-based magnetic attraction of a selectable element to the focus region may decrease the velocities of the multiple selectable elements as the selectable element moves away from the focus region. Likewise, the magnetic interaction of the focus region with other selectable elements among the multiple selectable elements may cause changes in the velocities of the multiple selectable elements.
[0448] In some embodiments, the magnetic value associated with the selectable element is a virtual magnetic intensity based on a virtual tensile force between the selectable element and the focus region.
[0449] In some embodiments, to add greater realism to the user interface and provide greater usability, the system may utilize a friction-based model to reduce the velocity of multiple selectable elements while they are in motion. For example, the velocity of the multiple selectable elements may be reduced continuously (or repeatedly) based on the friction coefficient value. This physics-based friction model may simulate kinetic friction, resistance friction, and the like.
[0450] In some embodiments, the device receives additional input through the rotation of the crown before the multiple selectable elements reach a stable state. An object is stable when it is not being translated, rotated, or scaled. In this embodiment, the system determines a second change in the distance value of the crown. The system also determines a second direction based on the direction of rotation of the physical crown of the wearable electronic device. In response to determining the second change in the distance value of the crown, the system increases or decreases the velocity of the multiple selectable elements by applying further force to the multiple selectable elements. The change in the rate of movement of the multiple selectable elements is based on the second change in the distance value of the crown and the second direction.
[0451] In some embodiments, when a selection element is aligned to the focus region and multiple selectable elements are in a stable state, the system determines that a selection element has been selected.
[0452] Figures 40 to 45 show an exemplary user interface 4000 displaying multiple user interface objects in the form of selectable elements 4002, 4004 and a focus area 4006. The scrollable list of elements includes the selectable elements 4002, 4004. The user may select a selectable element from among the multiple selectable elements by using the physical crown of a wearable electronic device to move the scrollable list of elements so that the desired selectable element is aligned with the focus area 4006.
[0453] The crown 558 of device 550 is a user interface input that can be rotated by the user. The crown 558 may be rotated in two different directions: clockwise and counterclockwise. Figures 40 to 45 include, where necessary, rotation direction arrows indicating the direction of rotation of the crown and movement direction arrows indicating the direction of movement of the scrollable list of elements. These rotation direction arrows and movement direction arrows are not normally part of the user interface that is displayed, but are provided to assist in the interpretation of the figures. In this embodiment, counterclockwise rotation of the crown 558 is indicated by a rotation direction arrow pointing downward. The characteristics of the rotation direction arrow do not indicate any distance, speed, or acceleration by which the crown 558 is rotated by the user. Instead, the rotation direction arrow indicates the direction of rotation of the crown 558 by the user.
[0454] Figures 40 to 45 show a physics-based exemplary model that may be used in combination with a physical crown user input device to control user interaction with user interface objects. In this embodiment, the focus region 4006 is fixed, and elements 4002, 4004 are movable via user input received from the crown 558. Counterclockwise movement of the crown 558 is associated with a downward force relative to the scrollable list of elements.
[0455] As described above, when using the magnetic relationship between the focus region 4006 and elements 4002 and 4004, a physics-based model may be used to simulate the magnetic attraction force between the focus region 4006 and elements 4002 and 4004. Furthermore, the movement of the scrollable list of elements may be further controlled using a physics-based spring model.
[0456] Physics-based spring modeling is achieved, for example, by modeling a spring attached to one or more ends of a scrollable list of elements. When the scrollable list of elements moves beyond a predetermined limit, the spring engages with the scrollable list of elements, causing "rubber banding" of the scrollable list of elements. For example, the hypothetical spring 4008 in Figures 41 to 44 may be modeled using Hooke's Law, which states that the force required to stretch or compress a spring by a given distance is proportional to that distance. In other words, F = kx, where F = force, k = spring constant, and x = distance. Spring 4008 is typically provided to assist in the interpretation of the figure, rather than being part of the displayed user interface.
[0457] In Figure 40, element 4002 is aligned to the focus region 4006, which indicates the selection of element 4002. In Figure 41, device 550 determines a change in the position of the crown 558 in a counterclockwise direction, as indicated by the rotation direction arrow 4010. In response to determining the change in the position of the crown 558, the device increases the speed of the scrollable list of elements and moves elements 4002, 4004 downward, as indicated by the movement direction arrow 4012. In one embodiment, the scrollable list of elements may be associated with mass or may have calculated inertia.
[0458] Since element 4002 is modeled as a magnetic element and the focus region 4006 is modeled as a ferromagnetic material, a magnetic attraction force exists between the two user interface objects.
[0459] In Figures 41 to 42, the scrollable list of elements moves beyond a predetermined limit. As a result, spring 4008 engages with the scrollable list of elements and returns the scrollable list of elements by "rubber banding," as shown in Figures 43 to 45. The spring constant of spring 4008 may be changed to produce results with different properties.
[0460] In Figure 45, element 4002 is stationary, aligned to the focus region 4006. The system interprets this alignment as a selection of element 4006, which is achieved by the user manipulating a scrollable list of elements through the use of the crown 558. In some embodiments, additional input, such as a tap after alignment, pressing the crown, or another button, may be required for the user to select element 4006.
[0461] While element 4002 is selected, the user may activate element 4002 by one or more of several techniques. For example, the user may press a touch-sensitive display, press a button, or simply allow element 4002 to remain selected for a predetermined period of time. In another embodiment, aligning the element and the focus area may be interpreted as both selecting and activating the element.
[0462] In this embodiment, movement of the scrollable list of elements is restricted along a default vertical path. In other embodiments, movement of the scrollable list of elements may be restricted along a different default path, or may not be restricted to a default path at all. In this embodiment, alignment along only one axis (the vertical axis) is used to indicate the selection of an element. In some embodiments, alignment along two, three, or more axes may be required between the element and the focus area to indicate the selection.
[0463] Figure 46 is a flowchart illustrating a process 4600 for selecting elements within a graphical user interface using a physical crown as an input device. The process 4600 is performed in a wearable electronic device having a physical crown (e.g., device 550 in Figure 1). In some embodiments, the electronic device also includes a touch-sensitive display. This process provides an efficient technique for selecting elements from among multiple elements within a graphical user interface.
[0464] In block 4602, the device generates the display of multiple selectable elements on a touch-sensitive display of a wearable electronic device. The device also records the focus area. The device uses a physics-based model to simulate the magnetic attraction force between the selectable elements and the focus area. Each of the multiple selectable elements is associated with a corresponding magnetic value. The magnetic value may be the strength of the magnetic attraction force of the element in its tensile force, and each element may have a different magnetic value.
[0465] In block 4604, the device receives crown position information. The position information may be received as a series of pulse signals, real numbers, integer values, etc.
[0466] In block 4606, the device determines whether a change has occurred in the crown distance value. The crown distance value is based on the angular displacement ...
Claims
1. It is a method, In a wearable electronic device having a crown and a display, Displaying content on the display of the wearable electronic device, To detect the rotation of the crown, Navigating through content in response to detecting the rotation of the crown, wherein navigating through content changes which content is aligned to the focus area, After navigating the content, a press input on the crown is detected, wherein the press input on the crown is in a certain direction, and the rotation of the crown occurs around the axis in which the direction of the press input is detected. In response to detecting the press input on the crown, a selection operation corresponding to each part of the content aligned to the focus area is performed. Methods that include...
2. In response to detecting the press input on the crown, Selecting the first portion of the content in accordance with the determination that the first portion of the content is aligned with the focus area, Selecting the second portion of the content in accordance with the determination that the second portion of the content is aligned with the focus area. The method according to claim 1, further comprising:
3. The method according to claim 1 or 2, wherein navigating through the content includes moving the content through the focus area.
4. The method according to any one of claims 1 to 3, wherein navigating through the content includes moving the content along a predetermined vertical path.
5. The method according to any one of claims 1 to 4, wherein navigating through the content includes moving the focus area through the content.
6. The method according to claim 5, wherein the movement speed of the focus region is based on the rotation speed of the crown.
7. In accordance with the determination that the rotation of the crown is clockwise, the content is navigated in a first direction. In accordance with the determination that the rotation of the crown is counterclockwise, the content is navigated in a second direction. The method according to any one of claims 1 to 6, further comprising:
8. In accordance with the determination that the focus area is aligned to the starting position of the content, a tactile output is provided. In accordance with the determination that the focus area is aligned to the end position of the content, a tactile output is provided. The method according to any one of claims 1 to 7, further comprising:
9. Navigating through the aforementioned content means In accordance with the determination that the rotation of the crown is in a clockwise direction, the content is navigated through a fixed focus region in a first direction based on the clockwise rotation of the crown. Navigate content through the fixed focus area in a second direction based on the counterclockwise rotation of the crown, in accordance with the determination that the rotation of the crown is counterclockwise, wherein the second direction differs from the first direction, and the fixed focus area corresponds to the same respective portion of the display while the crown is rotating. The method according to any one of claims 1 to 8, further comprising:
10. A computer program that causes a computer to perform the method described in any one of claims 1 to 9.
11. It is an electronic device, The display and Crown and A memory storing one or more computer programs including instructions for performing the method described in any one of claims 1 to 9, One or more processors capable of executing the instructions stored in the memory An electronic device equipped with the following features.
12. An apparatus comprising means for executing one or more computer programs that include instructions for performing the method described in any one of claims 1 to 9.
Citation Information
Patent Citations
Electronic equipment
JP1999136336A
Display and portable information processor
JP2001202178A
Method for inputting information and device for the same
JP2002055767A
Portable terminal
JP2002342000A
Input device for vehicle
JP2007302213A