Compact size interface for managing alerts
By receiving alarm information in small electronic devices and detecting user input, small devices solve the challenges of displaying and responding to alarms, enabling efficient user interface management and energy use.
Patent Information
- Application Number
- JP2024218951
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2015-03-07
- Filing Date
- 2024-12-13
- Publication Date
- 2025-04-11
AI Technical Summary
Small electronic devices have challenges in displaying and responding to alerts, including limited screen space that makes text difficult to read and enter, and the user interface designed as a large screen device may not be suitable for small screen devices.
By implementing a method in an electronic device, the method includes receiving alarm information, issuing a perceived output, detecting a user input, and determining within a predetermined time interval whether the user input is associated with the perceived output. According to the determination, a notification is displayed, which contains the first portion of the alarm information.
This approach allows for efficient viewing and response to alerts on small electronic devices, improving user experience and productivity by optimizing the user interface to adapt to the limitations of small screen devices while reducing unnecessary user input and energy consumption.
Smart Images

Figure 2025061657000001_ABST
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Provisional Patent Application No. 62 / 044,894, entitled "Reduced-Size Interfaces For Managing Alerts," filed September 2, 2014, and U.S. Provisional Patent Application No. 62 / 129,818, entitled "Reduced-Size Interfaces For Managing Alerts," filed March 7, 2015, the contents of which are incorporated herein by reference for all purposes.
[0002] This application is related to the following co-pending U.S. Provisional Patent Application No. 62 / 129,924, entitled "Reduced-Size Notification Interface," filed March 8, 2015; U.S. Provisional Patent Application No. 62 / 044,953, entitled "Reduced-Size Notification Interface," filed September 2, 2014; U.S. Provisional Patent Application No. 62 / 129,903, entitled "User Interface For Receiving User Input," filed March 8, 2015; U.S. Provisional Patent Application No. 62 / 127,800, entitled "User Interface For Receiving User Input," filed March 3, 2015; U.S. Provisional Patent Application No. 62 / 044,923, entitled "User Interface For Receiving User Input," filed July 18, 2014; This application is related to U.S. Provisional Patent Application No. 62 / 026,532, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," filed May 8, 2013, International Application No. PCT / US2013 / 040061, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," filed November 11, 2013, and U.S. Provisional Patent Application No. 62 / 044,894, filed September 2, 2014, the contents of which are incorporated herein by reference in their entireties.
[0003] The disclosed examples relate generally to user interfaces for electronic devices. [Background technology]
[0004] Small electronic devices (e.g., devices smaller than a typical cell phone) configured to be worn by a user allow the user to view and respond to various types of alerts, such as text messages, emails, voicemails, and calendar alerts. A user interface that allows efficient use of the small electronic device to view and respond to the alerts is desired. Summary of the Invention
[0005] According to some embodiments, a method is performed in an electronic device having a display. The method includes receiving an alert including information and, in response to receiving the alert, emitting a sensory output. The method includes detecting a user input and determining whether the user input is detected within a predetermined time interval from the sensory output. The method includes, in accordance with determining that the user input is detected within the predetermined time interval, displaying a notification on the display, the notification including a first portion of the information.
[0006] According to some embodiments, a method is performed in an electronic device having a display. The method includes receiving a first alert and a second alert. In response to receiving the first alert and the second alert, the method includes determining whether the first alert and the second alert meet grouping criteria. In response to determining that the first alert and the second alert meet the grouping criteria, the method includes displaying a grouped notification representing the first alert and the second alert. In response to determining that the first alert and the second alert do not meet the grouping criteria, the method includes displaying a first notification representing the first alert and replacing the display of the first notification with a display of a second notification representing the second alert.
[0007] According to some embodiments, a method is performed on an electronic device actively displaying content. The method includes receiving an alert including information. In response to receiving the alert, the method includes displaying a notification banner over a portion of a display, the notification banner including a first portion of the information, while at least a portion of the content continues to be displayed. The method includes detecting a contact on the display at a location corresponding to the notification banner, and in response to detecting the contact, displaying a second portion of the information, the second portion being different from the first portion.
[0008] According to some embodiments, a non-transitory computer-readable storage medium is disclosed that stores one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the electronic device to: receive an alert including information, emit a sensory output in response to receiving the alert, detect a user input, determine whether the user input is detected within a predetermined time interval from the sensory output, and, pursuant to determining that the user input is detected within the predetermined time interval, display a notification on the display, the notification including a first portion of the information.
[0009] According to some embodiments, a non-transitory computer-readable storage medium is disclosed that stores one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the electronic device to receive a plurality of alerts, determine whether the plurality of alerts meet grouping criteria in response to receiving the plurality of alerts, display a grouped notification representing the plurality of alerts in accordance with a determination that the plurality of alerts meets the grouping criteria, and display a plurality of notifications representing the plurality of alerts in response to a determination that the plurality of alerts do not meet the grouping criteria.
[0010] According to some embodiments, a non-transitory computer-readable storage medium is disclosed that stores one or more programs including instructions that, when executed by one or more processors of an electronic device with a touch-sensitive display, cause the electronic device to: receive an alert including information while actively displaying content; in response to receiving the alert, display a notification banner over a portion of the display, the notification banner including a first portion of the information, wherein at least a portion of the content continues to be displayed; detect a contact on the touch-sensitive display at a location corresponding to the notification banner; and in response to detecting the contact, display a second portion of the information, the second portion being different from the first portion.
[0011] According to some embodiments, a transient computer-readable storage medium is disclosed that stores one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the electronic device to: receive an alert including information, emit a sensory output in response to receiving the alert, detect a user input, determine whether the user input is detected within a predetermined time interval from the sensory output, and, pursuant to determining that the user input is detected within the predetermined time interval, display a notification on the display, the notification including a first portion of the information.
[0012] According to some embodiments, a transient computer-readable storage medium is disclosed that stores one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the electronic device to receive a plurality of alerts, determine in response to receiving the plurality of alerts whether the plurality of alerts meet grouping criteria, display a grouped notification representing the plurality of alerts in accordance with a determination that the plurality of alerts meet the grouping criteria, and display a plurality of notifications representing the plurality of alerts in response to a determination that the plurality of alerts do not meet the grouping criteria.
[0013] According to some embodiments, a transient computer-readable storage medium is disclosed that stores one or more programs including instructions that, when executed by one or more processors of an electronic device with a touch-sensitive display, cause the electronic device to: receive an alert including information while actively displaying content; in response to receiving the alert, display a notification banner over a portion of the display, the notification banner including a first portion of the information, wherein at least a portion of the content continues to be displayed; detect a contact on the touch-sensitive display at a location corresponding to the notification banner; and in response to detecting the contact, display a second portion of the information, the second portion being different from the first portion.
[0014] The electronic device comprises a display, one or more processors, a memory, and one or more programs configured to be stored in the memory and executed by the one or more processors, the one or more programs including instructions for receiving an alert including information and, in response to receiving the alert, emitting a sensory output; instructions for detecting a user input and determining whether the user input is detected from the sensory output within a predetermined time interval; and, in accordance with a determination that the user input is detected within the predetermined time interval, displaying a notification on the display, the notification including a first portion of the information.
[0015] The electronic device comprises a display, one or more processors, a memory, and one or more programs configured to be stored in the memory and executed by the one or more processors, the one or more programs including instructions for receiving a first alert and a second alert, and in response to receiving the first alert and the second alert, determining whether the first alert and the second alert meet grouping criteria; instructions for displaying a grouped notification representing the first alert and the second alert in response to determining that the first alert and the second alert do not meet the grouping criteria; and instructions for displaying a first notification representing the first alert and replacing the display of the first notification with a display of a second notification representing the second alert.
[0016] The electronic device comprises a touch-sensitive display, one or more processors, a memory, and one or more programs configured to be stored in the memory and executed by the one or more processors, the one or more programs including instructions for receiving an alert including information, and in response to receiving the alert, displaying a notification banner over a portion of the display, the notification banner including a first portion of the information, wherein at least a portion of the content continues to be displayed; and instructions for detecting a contact on the display at a location corresponding to the notification banner, and in response to detecting the contact, displaying a second portion of the information, the second portion being different from the first portion.
[0017] Executable instructions for performing these functions are optionally contained in a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. Executable instructions for performing these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. [Brief explanation of the drawings]
[0018] For a better understanding of the various embodiments described, please refer to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings, in which:
[0019] [Figure 1A] 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display in accordance with some embodiments.
[0020] [Figure 1B] FIG. 2 is a block diagram illustrating exemplary components for event processing according to some embodiments.
[0021] [Figure 2] FIG. 1 illustrates a portable multifunction device with a touch screen in accordance with some embodiments.
[0022] [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface in accordance with some embodiments.
[0023] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device in accordance with some embodiments.
[0024] [Figure 4B] 1A-1C illustrate exemplary user interfaces for multifunction devices with touch-sensitive surfaces that are separate from the display in accordance with some embodiments.
[0025] [Figure 5A] FIG. 1 illustrates a personal electronic device according to some embodiments.
[0026] [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device according to some embodiments.
[0027] [Figure 5C] FIG. 10 is a diagram illustrating detection of contact by an intensity sensor.
[0028] [Figure 5D] FIG. 1 illustrates the assignment of collective strengths to contacts.
[0029] [Figure 5E] FIG. 1 illustrates detection of a gesture with intensity of contact. [Figure 5F] FIG. 1 illustrates detection of a gesture with intensity of contact. [Figure 5G] FIG. 1 illustrates detection of a gesture with intensity of contact. [Figure 5H] FIG. 1 illustrates detection of a gesture with intensity of contact.
[0030] [Figure 6A] FIG. 1 illustrates an exemplary user interface. [Figure 6B] FIG. 1 illustrates an exemplary user interface. [Figure 6C] FIG. 1 illustrates an exemplary user interface.
[0031] [Figure 7] FIG. 1 illustrates an exemplary user interface.
[0032] [Figure 8] FIG. 1 illustrates an exemplary user interface.
[0033] [Figure 9] FIG. 1 illustrates an exemplary user interface.
[0034] [Figure 10]FIG. 1 illustrates an exemplary user interface.
[0035] [Figure 11] FIG. 1 illustrates an exemplary user interface.
[0036] [Figure 12A] FIG. 1 illustrates an exemplary user interface. [Figure 12B] FIG. 1 illustrates an exemplary user interface. [Figure 12C] FIG. 1 illustrates an exemplary user interface.
[0037] [Figure 13A] FIG. 1 illustrates an exemplary user interface. [Figure 13B] FIG. 1 illustrates an exemplary user interface.
[0038] [Figure 14] FIG. 1 illustrates an exemplary user interface.
[0039] [Figure 15] FIG. 1 illustrates an exemplary user interface.
[0040] [Figure 16] FIG. 1 illustrates an exemplary user interface.
[0041] [Figure 17] FIG. 1 illustrates an exemplary user interface.
[0042] [Figure 18] FIG. 1 illustrates an exemplary user interface.
[0043] [Figure 19] FIG. 1 illustrates an exemplary user interface.
[0044] [Figure 20] FIG. 1 illustrates an exemplary user interface.
[0045] [Figure 21] FIG. 1 illustrates an exemplary user interface.
[0046] [Figure 22] FIG. 1 illustrates an exemplary user interface.
[0047] [Figure 23A] FIG. 1 illustrates an exemplary user interface. [Figure 23B] FIG. 1 illustrates an exemplary user interface. [Figure 23C] FIG. 1 illustrates an exemplary user interface.
[0048] [Figure 24] FIG. 1 illustrates an exemplary user interface.
[0049] [Figure 25] FIG. 1 illustrates an exemplary process for managing alerts.
[0050] [Figure 26] FIG. 1 illustrates an exemplary process for managing alerts.
[0051] [Figure 27] FIG. 1 illustrates an exemplary process for managing alerts.
[0052] [Figure 28] FIG. 1 is an exemplary functional block diagram of an electronic device according to some embodiments. [Figure 29] FIG. 1 is an exemplary functional block diagram of an electronic device according to some embodiments. [Figure 30] FIG. 1 is an exemplary functional block diagram of an electronic device according to some embodiments. [Figure 31] FIG. 1 is an exemplary functional block diagram of an electronic device according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0053] In the following description, example methods, parameters, etc. are set forth. However, it should be recognized that such description is not intended as a limitation on the scope of the present disclosure, but is provided as a description of example embodiments.
[0054] As described above, small personal electronic devices configured to be worn by a user allow the user to view and respond to various alerts, such as text messages, emails, voicemails, audio messages, stock alerts, clock alarms, calendar alerts, fitness alerts, store coupons, or point program alerts, for example, via a user interface. However, small devices present several challenges associated with viewing and responding to alerts. For example, user interface approaches designed for large screens may not work well on electronic devices with small screens. Smaller screen sizes may, for example, make text content associated with alerts difficult to read or provide accurate input to a touchscreen. Because there may not be enough screen space to display detailed device usage instructions, it is important that the user interface be intuitive to learn and use. Due to limited screen size, displaying multiple tiled screens may be impractical; therefore, substituting one screen for another and limiting the amount of information displayed on a single screen may be a more effective user interface strategy.
[0055] In addition to the above usage concerns, privacy concerns may exist when a small electronic device is worn externally by a user (e.g., by attaching it to a shirt, belt, bracelet, or necklace) rather than placed in a pocket, case, or handbag, as is common with larger electronic devices such as mobile phones or laptop computers. Because users may be concerned that others in their vicinity will be able to see their alerts, it is desirable for such a user interface to allow the user to control when and how often the content of an alert is displayed. Furthermore, because the device is worn by the user and therefore in closer contact with the user than, for example, a mobile phone, it is desirable for such a user interface not to annoy the user with frequent interruptions. Ideally, a user interface would allow a user to quickly, easily, and intuitively view and respond to alerts on a small personal electronic device. Such techniques may reduce the cognitive burden on users using alerts, thereby increasing productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0056] 1A, 1B, 2, 3, 4A, 4B, 5A, and 5B below provide a description of an exemplary device for performing techniques for managing alert notifications. Figures 6A-24 show exemplary user interfaces for managing alert notifications. The user interfaces in these figures are also used to illustrate processes described below, including the processes in Figures 25-27.
[0057] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of various described embodiments. A first touch and a second touch are both touches, but are not the same touch.
[0058] The terminology used in the description of the various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various embodiments set forth and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. As used herein, the term "and / or" should also be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0059] The word "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "if it is determined" or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining" or "in response to determining," "upon detecting [the stated condition or event]," or "in response to detecting [the stated condition or event]," depending on the context.
[0060] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile telephone, that also includes other functions, such as PDA functionality and / or music playback functionality. Exemplary embodiments of portable multifunction devices include, without limitation, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. (Cupertino, California). Other portable electronic devices, such as laptops or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), are also optionally used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer with a touch-sensitive surface (e.g., touchscreen displays and / or touchpads).
[0061] The following discussion describes an electronic device with a display and a touch-sensitive surface, however, it should be understood that the electronic device optionally includes one or more other physical user interface devices, such as a physical keyboard, a mouse, and / or a joystick.
[0062] The device may support a variety of applications, such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephone application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music playback application, and / or a digital video playback application.
[0063] Various applications running on the device optionally use at least one common physical user interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture (such as the touch-sensitive surface) of the device optionally supports various applications with user interfaces that are intuitive and easy to understand for the user.
[0064] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 with touch-sensitive display system 112, according to some embodiments. Touch-sensitive display 112 may conveniently be referred to as a "touch screen" and may also be known or referred to as a "touch-sensitive display system." Device 100 includes memory 102 (optionally including one or more computer-readable storage media), memory controller 122, one or more processing units (CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, input / output (I / O) subsystem 106, other input control devices 116, and external port 124. Device 100 optionally includes one or more light sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on device 100 (e.g., a touch-sensitive surface such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 for generating a tactile output on device 100 (e.g., generating a tactile output on a touch-sensitive surface such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0065] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a surrogate (proxy) for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values that includes at least four different values and more typically includes hundreds (e.g., at least 256) different values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors beneath or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., in a weighted average) to determine an estimated force of the contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as proxies for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure of the force or pressure of the contact is used directly to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is stated in units corresponding to the surrogate measure). In some implementations, the surrogate measure of the force or pressure of the contact is converted to an estimated force or pressure, and this estimated force or pressure is used to determine whether an intensity threshold has been exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using contact intensity as an attribute of user input allows users to access additional device functionality that may not otherwise be accessible to users on small devices that have limited area for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical controls such as knobs or buttons).
[0066] As used herein and in the claims, the term “tactile output” refers to a physical displacement of a device relative to a previous position of the device, 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 a user using the user's sense of touch. For example, in a situation where a device or a component of a device is in contact with a touch-sensitive surface of a user (e.g., a finger, a palm, or another part of the user's hand), the tactile output produced by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, the user will feel a tactile sensation such as a “downclick” or “upclick” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically depressed (e.g., displaced) by the user's movement. As another example, movement of the touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. Such interpretation of touch by a user depends on the user's individual sensory perception, but there are many sensory perceptions of touch that are common to most users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., an "upclick," "downclick," "roughness"), unless otherwise specified, the tactile output generated corresponds to a physical displacement of the device or its components that produces the described sensory perception for a typical (or average) user.
[0067] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of those components. The various components shown in Figure 1A may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0068] Memory 102 may include one or more computer-readable storage media. The computer-readable storage media may be tangible and non-transitory. 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. Memory controller 122 may control access to memory 102 by other components of device 100.
[0069] A peripheral interface 118 can be used to couple input and output peripherals of the device to the CPU 120 and memory 102. The one or more processors 120 run or execute various software programs and / or instruction sets stored in memory 102 to perform various functions and process data for the device 100. In some embodiments, the peripheral interface 118, the CPU 120, and the 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.
[0070] The RF (radio frequency) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. The RF circuitry 108 converts electrical signals to electromagnetic signals or electromagnetic signals to electrical signals and communicates with communication networks and other communication devices via electromagnetic signals. The RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. The RF circuitry 108 optionally communicates with networks such as the Internet, also called the World Wide Web (WWW), intranets and / or wireless networks such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and other devices via wireless communication. The RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as via short-range communication radio. The wireless communication optionally uses any of a plurality of communication standards, protocols, and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (WDMA), and the like.access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth®, Bluetooth Low Energy (BTLE), Wireless Fidelity (Wi-Fi)® (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), 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 (SIP)), and the like. Such communication protocols include, but are not limited to, SIMPLE (Simple Message Extensions), Instant Messaging and Presence Service (IMPS), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.
[0071] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data may be retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 also includes a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a removable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., single or double ear headphones) and an input (e.g., a microphone).
[0072] I / O subsystem 106 connects input / output peripherals of device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes a display controller 156, a light 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 send and receive electrical signals to and from other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller(s) 160 are optionally connected to any (or none) of a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2) optionally include up / down buttons for adjusting the volume of the speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206 in FIG. 2).
[0073] A quick press of a push button may unlock the touchscreen 112 or initiate the process of unlocking the device using gestures on the touchscreen, 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, which is incorporated herein by reference in its entirety. A longer press of a push button (e.g., 206) may power the device 100 on or off. The user may be able to customize the function of one or more of the buttons. The touchscreen 112 may be used to implement virtual or soft buttons and one or more soft keyboards.
[0074] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 sends and receives electrical signals to and from touchscreen 112. Touchscreen 112 displays visual output to the user. This visual output may include graphics, text, icons, video, 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.
[0075] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on tactile and / or haptic contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contact (and any movement or break in contact) on touchscreen 112 and translates the detected contact into interaction with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.
[0076] Touchscreen 112 may use liquid crystal display (LCD), light emitting polymer display (LPD), or light emitting diode (LED) technology, although other display technologies may be used in other embodiments. Touchscreen 112 and display controller 156 may detect contact and any movement or disruption thereof using any of a number of now-known or later-developed touch-sensing technologies, including, but not limited to, capacitive, resistive, infrared, and surface ultrasonic technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology, such as that found in the iPhone® and iPod Touch® from Apple Inc. (Cupertino, California), is used.
[0077] The touch-sensitive display in some embodiments of touchscreen 112 may be similar to the multi-touch-sensing touchpads described in the following U.S. Patent Nos. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Application Publication No. 2002 / 0015024 A1, each of which is incorporated by reference herein in its entirety, except that touchscreen 112 displays visual output from device 100, whereas touch-sensitive touchpads do not provide visual output.
[0078] The touch-sensitive display in some embodiments of touchscreen 112 may be as described in the following applications: (1) U.S. patent application Ser. No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller," (2) U.S. patent application Ser. No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen," (3) U.S. patent application Ser. No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices," (4) U.S. patent application Ser. No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices," and (5) U.S. patent application Ser. No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices." (6) U.S. patent application Ser. No. 11 / 228,758, filed Sep. 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface," (7) U.S. patent application Ser. No. 11 / 228,700, filed Sep. 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) U.S. patent application Ser. No. 11 / 228,737, filed Sep. 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) U.S. patent application Ser. No. 11 / 367,749, filed Mar. 3, 2006, entitled "Multi-Functional Hand-Held Device." All of these applications are incorporated herein by reference in their entirety.
[0079] 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. A user may contact the touchscreen 112 using any suitable object or accessory, such as a stylus, a finger, or the like. In some embodiments, the user interface is designed to function primarily with finger-based contacts and gestures, which may be less precise than stylus-based input due to the larger contact area of a finger on the touchscreen. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor positions or commands to perform actions desired by the user.
[0080] In some embodiments, in addition to a touchscreen, device 100 may include a touchpad (not shown) for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad may be a touch-sensitive surface separate from touchscreen 112 or may be an extension of the touch-sensitive surface formed by the touchscreen.
[0081] Device 100 also includes a power system 162 for providing power to the various components. Power system 162 may include a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of power within a portable device.
[0082] Device 100 may also include one or more light sensors 164. FIG. 1A shows a light sensor coupled to light sensor controller 158 in I / O subsystem 106. Light sensor 164 may include a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment projected through one or more lenses and converts the light into data representing an image. In conjunction with imaging module 143 (also called a camera module), light sensor 164 may capture still images or video. In some embodiments, the light sensor is located on the back of device 100, opposite touchscreen display 112 on the front of the device, allowing the touchscreen display to be used as a viewfinder for capturing still and / or video images. In some embodiments, the light sensor is located on the front of the device, allowing an image of a user to be captured for a videoconference while the user views other videoconference participants on the touchscreen display. In some embodiments, the position of the light sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing), thereby allowing a single light sensor 164 to be used in conjunction with a touchscreen display for both video conferencing and capturing still and / or video images.
[0083] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact intensity sensor is collocated with or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0084] Device 100 may also include one or more proximity sensors 166. FIG. 1A shows proximity sensor 166 coupled to peripherals interface 118. Alternatively, proximity sensor 166 may be coupled to input controller 160 within I / O subsystem 106. Proximity sensor 166 may function as described in U.S. patent application Ser. No. 11 / 241,839, entitled "Proximity Detector In Handheld Device," Ser. No. 11 / 240,788, entitled "Proximity Detector In Handheld Device," Ser. No. 11 / 620,702, entitled "Using Ambient Light Sensor To Augment Proximity Sensor Output," Ser. No. 11 / 586,862, entitled "Automated Response To And Sensing Of User Activity In Portable Devices," and Ser. No. 11 / 638,251, entitled "Methods And Systems For Automatic Configuration Of Peripherals," which applications are incorporated herein by reference in their entireties. In some embodiments, when the multifunction device is placed near the user's ear (eg, when the user is making a phone call), the proximity sensor turns off and disables touchscreen 112.
[0085] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generator 167 coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives tactile feedback generation instructions from haptic feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is collocated with or adjacent to a touch-sensitive surface (e.g., touch-sensitive display system 112) and, optionally, generates a tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or laterally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0086] Device 100 may also include one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 may be coupled to input controller 160 within I / O subsystem 106. Accelerometer 168 may function as described in U.S. Patent Application Publication Nos. 2005 / 0190059, "Acceleration-Based Theft Detection System for Portable Electronic Devices," and 2006 / 0017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated herein by reference in their entireties. In some embodiments, information is displayed on a touchscreen display in portrait or landscape orientation based on an analysis of data received from one or more accelerometers. In addition to accelerometer(s) 168, device 100 optionally includes a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for obtaining information about the location and orientation (e.g., portrait or landscape) of device 100.
[0087] In some embodiments, the software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a touch / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a text input module (or instruction set) 134, a global positioning system (GPS) module (or instruction set) 135, and applications (or instruction sets) 136. Additionally, in some embodiments, as shown in FIGS. 1A and 3, memory 102 (FIG. 1A) or memory 370 (FIG. 3) stores device / global internal state 157. Device / global internal state 157 includes one or more of: an active application state indicating which, if any, applications are currently active; a display state indicating which applications, views, or other information occupy various regions of touchscreen display 112; a sensor state including information obtained from the device's various sensors and input control devices 116; and location information regarding the device's position and / or orientation.
[0088] Operating system 126 (e.g., an embedded operating system such as Darwin®, RTXC®, LINUX®, UNIX®, OS X®, iOS®, WINDOWS®, or VxWorks®) includes various software components and / or drivers for controlling and managing common system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communication between various hardware and software components.
[0089] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE®, etc.) is adapted to couple directly to other devices or indirectly via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector identical to, similar to, and / or compatible with the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.
[0090] Contact / motion module 130 (in conjunction with display controller 156) detects contact with touch screen 112 and, optionally, with other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact occurs (e.g., detecting a finger-down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is contact movement and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has stopped (e.g., detecting a finger-up event or an interruption of the contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point represented by the series of contact data optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point. These actions are optionally applied to a single contact (e.g., one finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0091] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an action has been performed by the user (e.g., whether the user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator and may be adjusted without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display may be set to any of a wide range of pre-defined thresholds without modifying the trackpad or touchscreen display hardware. Furthermore, in some implementations, a user of the device is provided with a software setting to adjust one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once via a system-level click of the “intensity” parameter).
[0092] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensity of the detected contacts). Therefore, gestures are optionally detected by detecting particular contact patterns. For example, detecting a finger tap gesture includes detecting a finger down event, followed by a finger lift (lift-off) event at the same location (or substantially the same location) as the finger down event (e.g., at the location of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by one or more finger drag events, followed by a finger lift (lift-off) event.
[0093] Graphics module 132 includes various well-known software components for rendering and displaying graphics on touchscreen 112 or other display, including components for modifying the visual effects (e.g., brightness, transparency, saturation, contrast, or other visual characteristics) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, but not limited to, text, web pages, icons (such as user interface objects including soft keys), digital images, video, animation, etc.
[0094] In some embodiments, graphics module 132 stores data representing graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, along with coordinate data and other graphic property data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.
[0095] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 167 to generate tactile outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0096] The text input module 134 may be a component of the graphics module 132 and provides a soft keyboard for entering text in various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other application requiring text input).
[0097] The GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., to the phone 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, maps / navigation widgets, etc.).
[0098] The application 136 may include the following modules (or sets of instructions), or a subset or superset thereof: • a contacts module 137 (also called an address book or contact list); ●Telephone module 138, ●Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141; ●Training support module 142, a camera module 143 for still and / or video images, ● Image management module 144; ●Video player module, ●Music player module, ● Browser module 147, ●Calendar module 148, A widget module 149, which may include one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets obtained by the user, as well as user-created widgets 149-6; a widget creator module 150 for creating user-created widgets 149-6; ● Search module 151, A video and music player module 152 that combines a video player module and a music player module; ● Memo module 153, Map module 154, and / or ●Online video module 155.
[0099] Examples of 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, voice recognition, and voice duplication.
[0100] In conjunction with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134, the contacts module 137 can be used to manage an address book or contact list (e.g., stored in the memory 102 or in the application internal state 192 of the contacts module 137 in memory 370), including adding a name(s) to the address book, deleting a name(s) from the address book, associating phone number(s), email address(es), physical address(es), or other information with a name, associating an image with a name, categorizing and sorting names, providing a phone number or email address to initiate and / or facilitate communication via telephone 138, videoconferencing module 139, email 140, or IM 141, and the like.
[0101] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, telephone module 138 can be used to enter a series of characters corresponding to a telephone number, access one or more telephone numbers in contacts module 137, modify an entered telephone number, dial each telephone number, conduct a conversation, and disconnect or hang up when the conversation is completed. As noted above, wireless communication can use any of a number of communication standards, protocols, and technologies.
[0102] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch screen 112, display controller 156, light sensor 164, light sensor controller 158, touch / motion module 130, graphics module 132, text input module 134, contacts module 137, and telephone module 138, videoconferencing module 139 includes executable instructions for initiating, conducting, and terminating videoconferences between a user and one or more other participants in accordance with the user's instructions.
[0103] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for composing, sending, receiving, and managing emails in response to user instructions. In conjunction with image management module 144, email client module 140 greatly facilitates composing and sending emails containing still or video images captured by camera module 143.
[0104] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions for entering a series of characters corresponding to an instant message, modifying previously entered characters, sending each instant message (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephone-based instant messaging, or using XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages may include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0105] In conjunction with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 includes executable instructions for generating workouts (e.g., having time, distance, and / or calorie burn goals), communicating with training sensors (sports devices), receiving training sensor data, calibrating sensors used to monitor workouts, selecting and playing music for workouts, and displaying, storing, and transmitting workout data.
[0106] In association with touch screen 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, camera module 143 includes executable instructions for capturing still images or video (including video streams) and storing them in memory 102, changing the characteristics of the still images or video, or deleting the still images or video from memory 102.
[0107] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 includes executable instructions for arranging, modifying (e.g., editing) or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slide show or album), and storing still and / or video images.
[0108] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, browser module 147 contains executable instructions for browsing the Internet in accordance with a user's instructions, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0109] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 includes executable instructions for creating, displaying, modifying, and storing calendars and data associated with calendars (e.g., calendar entries, to-do lists, etc.) in accordance with user instructions.
[0110] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget modules 149 are mini-applications that can be downloaded and used by a 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 created by a user (e.g., user-created widget 149-6). In some embodiments, widgets include HTML (HyperText Markup Language) files, CSS (Cascading Style Sheets) files, and JavaScript files. In some embodiments, widgets include XML (Extensible Markup Language) files and JavaScript files (e.g., Yahoo! Widgets).
[0111] In conjunction with the RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget creator module 150 may be used by a user to create widgets (e.g., turn user-specified portions of a web page into widgets).
[0112] In association with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, search module 151 includes executable instructions for searching memory 102 for text, music, sound, images, video, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with a user's instructions.
[0113] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 includes executable instructions that enable a user to download and play pre-recorded music or other sound files stored in one or more file formats, such as MP3 or AAC files, and executable instructions for displaying, presenting, or otherwise playing videos (on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a registered trademark of Apple Inc.).
[0114] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, notes module 153 contains executable instructions for creating and managing notes, to-do lists, and the like, in accordance with user instructions.
[0115] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 can be used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data about businesses and other points of interest at or near a particular location, and other location-based data) in accordance with user instructions.
[0116] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 contains instructions that enable a user to access, view, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124), send emails containing links to the online videos, or otherwise manage the online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos rather than email client module 140. Additional description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," filed June 20, 2007, and U.S. Patent Application No. 11 / 968,067, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," filed December 31, 2007, the contents of which are incorporated by reference herein in their entireties.
[0117] Each of the above-identified modules and applications corresponds to a set of executable instructions and methods described herein (e.g., computer-implemented methods and other information processing methods described herein) for performing one or more of the functions described above. These modules (e.g., sets of instructions) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules may be combined or otherwise rearranged. For example, a video player module may be combined with a music player module into a single module (e.g., video and music player module 152 of FIG. 1A). In some embodiments, memory 102 may store a subset of the above-identified modules and data structures. Additionally, memory 102 may store additional modules and data structures not described above.
[0118] In some embodiments, device 100 is a device in which operation of a predefined set of functions on the device is performed exclusively via a touchscreen and / or touchpad. By using the touchscreen and / or touchpad as the primary input control device for operation of device 100, the number of physical input control devices (push buttons, dials, etc.) on device 100 can be reduced.
[0119] The predefined 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 a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device instead of a touchpad.
[0120] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or 370 (FIG. 3) includes event sorter 170 (e.g., within operating system 126) and corresponding application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).
[0121] Event sorter 170 receives the event information and determines which application 136-1 and application view 191 of application 136-1 to deliver the event information to. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) to be displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine which application view(s) to deliver the event information to.
[0122] In some embodiments, application internal state 192 includes additional information, such as one or more of resume information used when application 136-1 resumes execution, user interface state information indicating information being displayed or ready to be displayed by application 136-1, a state queue to allow the user to return to a previous state or view of application 136-1, and a redo / undo queue of actions previously performed by the user.
[0123] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about sub-events (e.g., a user's touch on touch-sensitive display 112 as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (via audio circuitry 110). Information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.
[0124] In some embodiments, event monitor 171 sends a request to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., exceeding a predetermined noise threshold and / or receiving an input for more than a predetermined time).
[0125] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .
[0126] Hit view determination module 172 provides software procedures for determining where a sub-event occurred within one or more views when touch-sensitive display 112 displays one or more views. A view consists of controls and other elements that a user can see on the display.
[0127] Another aspect of a user interface associated with an application is the set of views, sometimes 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 a programmatic level within the programmatic or view hierarchy of that application. For example, the lowest-level view in which a touch is detected may be referred to as the hit view, and the set of events that are 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.
[0128] Hit view determination module 172 receives information associated with sub-events of a touch-based gesture. If an application has multiple views organized as a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which the first sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events associated with the same touch or input source for which it was identified as the hit view.
[0129] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive a particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all actively participating views should receive a particular sequence of sub-events by determining that all views that contain the physical location of the sub-events are actively participating views. In other embodiments, even if a touch sub-event is completely confined to an area associated with a particular view, views higher in the hierarchy still remain actively participating views.
[0130] Event dispatcher module 174 sends event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers event information determined by active event recognizer determination module 173 to the event recognizers. In some embodiments, event dispatcher module 174 stores event information obtained by each event receiver 182 in an event queue.
[0131] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or part of another module stored in memory 102, such as contact / motion module 130.
[0132] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for handling touch events that occur within a respective view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, each application view 191 includes multiple event recognizers 180. In other embodiments, one or more of event recognizers 180 are part of a separate module, such as a User Interface Kit (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 of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 may utilize or call data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 include one or more respective event handlers 190. Also, 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.
[0133] Each event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 also includes at least a subset of metadata 183 and event delivery instructions 188 (which may include sub-event delivery instructions).
[0134] Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, such as a touch or touch movement. Depending on the sub-event, the event information also includes additional information, such as the location of the sub-event. If the sub-event relates to touch movement, the event information may also include the speed and direction of the sub-event. In some embodiments, the event includes a device rotation from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the device's current orientation (also called the device's attitude).
[0135] The event comparator 184 compares the event information with predefined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a predefined sequence of sub-events), such as, for example, Event 1 (187-1), Event 2 (187-2), etc. In some embodiments, sub-events within an event (187) include, for example, a touch start, a touch end, a touch movement, a touch cessation, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a display object. The double tap includes, for example, a first touch on a display object for a predetermined stage (touch start), a first lift-off (touch end) for the predetermined stage, a second touch on a display object for the predetermined stage (touch start), and a second lift-off (touch end) for the predetermined stage. In another example, the definition for event 2 (187-2) is dragging on a display object. Dragging includes, for example, touching (or contacting) on a display object for a predetermined phase, moving the touch across the touch-sensitive display 112, and lifting off the touch (ending of the touch). In some embodiments, the event also includes information about one or more associated event handlers 190.
[0136] In some embodiments, event definition 187 includes a definition of the event for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine which user interface object is associated with the sub-event. For example, in an application view in which three user interface objects are displayed on touch-sensitive display 112, when a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each display object is associated with a respective event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 to activate. For example, event comparator 184 selects the event handler 190 associated with the sub-event and the object that triggered the hit test.
[0137] In some embodiments, the definition for each event (187) also includes a delay action that delays delivery of the event information until it is determined whether the sequence of sub-events corresponds to the event type of the event recognizer 180.
[0138] If the respective event recognizer 180 determines that the sequence of sub-events does not match any of the events in the event definition 186, the respective event recognizer 180 enters an event-disabled state, an event-failed state, or an event-ended state, and thereafter ignores subsequent sub-events of the touch-based gesture. In this situation, other event recognizers, if any, that remain active for the hit view continue to track and process sub-events of the ongoing touch-based gesture.
[0139] In some embodiments, each event recognizer 180 includes metadata 183 with configurable properties, flags, and / or lists that indicate how the event delivery system performs sub-event delivery to actively participating event recognizers. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers may interact with each other or how interaction is enabled. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate whether sub-events are delivered to various levels in the view hierarchy or programmatic hierarchy.
[0140] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with that event to the event handler 190. Activating the event handler 190 is distinct from sending (and deferring) the sub-events to the respective hit view. In some embodiments, the event recognizer 180 throws a flag associated with the recognized event, and the event handler 190 associated with the flag catches the flag and performs a predetermined process.
[0141] In some embodiments, event delivery instructions 188 include sub-event delivery instructions that deliver event information about a sub-event without activating an event handler. Instead, the sub-event delivery instructions deliver the event information to an event handler associated with a set of sub-events or to an actively participating view. The event handler associated with the set of sub-events or the actively participating view receives the event information and performs a predetermined process.
[0142] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used in contacts module 137 or stores video files used in a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.
[0143] In some embodiments, event handler(s) 190 include or have access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are contained within a single module of the respective application 136-1 or application view 191. In other embodiments, they are contained within two or more software modules.
[0144] It should be understood that the foregoing discussion regarding event processing of a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 using input devices, although not all of them are initiated on the touchscreen. For example, mouse movements and mouse button presses, touch movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple keyboard presses or holds, pen stylus input, device movement, verbal commands, detected eye movements, biometric input, and / or any combination thereof are optionally utilized as inputs corresponding to sub-events that define the event to be recognized.
[0145] FIG. 2 illustrates portable multifunction device 100 having touchscreen 112, according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as embodiments described below, a user can select one or more of the graphics by making a gesture on the graphics, for example, with one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics occurs when the user loses contact with one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward, and / or downward), and / or rolling of a finger in contact with device 100 (right to left, left to right, upward, and / or downward). In some implementations or situations, accidental contact with a graphic does not select the graphic. For example, if the gesture corresponding to selection is a tap, a swipe gesture that swipes over an application icon optionally does not select the corresponding application.
[0146] Device 100 may also include one or more physical buttons, such as a "home" or menu button 204. As previously mentioned, menu button 204 may be used to navigate to any application 136 within a set of applications capable of running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key within a GUI displayed on touchscreen 112.
[0147] In one embodiment, device 100 includes touchscreen 112, menu button 204, pushbutton 206 for powering the device on / off and locking the device, volume control button(s) 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to power the device on / off by pressing and holding the button down for a predetermined time interval, to lock the device by pressing and releasing the button before the predetermined time interval has elapsed, and / or to unlock the device or initiate an unlocking process. In an alternative embodiment, device 100 also accepts verbal input through microphone 113 to activate or deactivate certain features. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.
[0148] FIG. 3 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface, according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia player device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 for interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components. Device 300 includes an input / output (I / O) interface 330 with a display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350, as well as a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator 167 described above with reference to FIG. 1A ) for generating tactile output on device 300, sensors 359 (e.g., optical sensors, acceleration sensors, proximity sensors, touch-sensitive sensors, and / or contact intensity sensors similar to contact intensity sensor 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310.In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Moreover, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disc authoring module 388, and / or spreadsheet module 390, while memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.
[0149] Each of the above-identified elements of FIG. 3 may be stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set for performing the functions described above. The above-identified modules or programs (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules; thus, various embodiments may combine or otherwise rearrange various subsets of these modules. In some embodiments, memory 370 may store a subset of the above-identified modules and data structures. Additionally, memory 370 may store additional modules and data structures not described above.
[0150] Attention is now directed to user interface embodiments that may be implemented on portable multifunction device 100, for example.
[0151] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface may be implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth indicator 405, ● Battery status indicator 406, A tray 408 containing icons for frequently used applications, such as: an icon 416 for the phone module 138, labeled "Phone," optionally including an indicator 414 of the number of missed calls or voicemail messages; an icon 418 for the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser", and ○ An icon 422 for the video and music player module 152, also referred to as the iPod (trademark of Apple Inc.) module 152, labeled "iPod"; and ●Icons for other applications, such as: ○ Icon 424 for IM module 141, labeled "Messages"; ○ Icon 426 for the calendar module 148, labeled "Calendar" ○ Icon 428 for the image management module 144, labeled "Photos" ○ Icon 430 for camera module 143, labeled "Camera" ○ Icon 432 for the online video module 155, labeled "Online Video" Icon 434 for stock price widget 149-2, labeled "Stock Prices" ○ Icon 436 for map module 154, labeled "Map" ○ Icon 438 for weather widget 149-1, labeled "Weather" ○ Icon 440 for alarm clock widget 149-4, labeled "Clock" ○ Icon 442 for Training Support Module 142, labeled "Training Support"; ○ An icon 444 for the notes module 153, labeled "Notes," and An icon 446 for a settings application or module, labeled "Settings," that provides access to settings related to the device 100 and its various applications 136.
[0152] 4A are merely exemplary. For example, icon 422 for video and music player module 152 may optionally be labeled "Music" or "Music Player." Other labels are optionally used for various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to that particular application icon.
[0153] 4B shows an exemplary user interface on a device (e.g., device 300 of FIG. 3) that includes a touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 357) for detecting the intensity of a contact on touch-sensitive surface 451 and / or one or more tactile output generators 359 for generating a tactile output for a user of device 300.
[0154] Although some of the following examples are described with reference to input on touch screen display 112 (when the touch-sensitive surface and display are combined), in some embodiments, the device detects input on a touch-sensitive surface that is separate from the display, as shown in FIG. 4B . In some embodiments, the touch-sensitive surface (e.g., 451 in FIG. 4B ) has a major axis (e.g., 452 in FIG. 4B ) that corresponds to a major axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this manner, when the touch-sensitive surface is separate from the display, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device. It should be understood that similar methods are optionally used with respect to the other user interfaces described herein.
[0155] Furthermore, while the following examples are described primarily with reference to finger input (e.g., finger touches, finger tap gestures, finger swipe gestures), it should be understood that in some embodiments, one or more of the finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced with a mouse click (e.g., instead of a touch), followed by cursor movement along the path of the swipe (e.g., instead of moving the contact). As another example, a tap gesture is optionally replaced with a mouse click while the cursor is positioned over the location of the tap gesture (e.g., instead of detecting a contact and then ceasing to detect the contact). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger contacts are optionally used simultaneously.
[0156] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 may include some or all of the features described in connection with device 100 and device 300 (e.g., FIGS. 1A-4B ). In some embodiments, device 500 has a touch-sensitive display screen 504, hereafter referred to as touchscreen 504. Alternatively, or in addition to touchscreen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or the touch-sensitive surface) may include one or more intensity sensors for detecting the intensity of an applied contact (e.g., a touch). The one or more intensity sensors in touchscreen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. The user interface of device 500 may respond to a touch based on the intensity of the touch, meaning that touches of different intensities may invoke different user interface actions on device 500.
[0157] Techniques for detecting and processing touch intensity can be found, for example, in related applications, International Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application," and International Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships," each of which is incorporated herein by reference in its entirety.
[0158] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, may be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, may allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms may allow device 500 to be worn by a user.
[0159] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 may include some or all of the components described in connection with FIGS. 1A, 1B, and 3. Device 500 has a bus 512 operably coupling an I / O unit 514 to one or more computer processors 516 and memory 518. I / O unit 514 may be connected to a display 504, which may have touch-sensing components 522 and optionally an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O unit 514 may 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. Device 500 may include input mechanisms 506 and / or 508. Input mechanism 506 may be, for example, a rotatable input device or a depressible and rotatable input device. Input mechanism 508 may, in some examples, be a button.
[0160] The input mechanism 508 may be a microphone in some examples. The personal electronic device 500 may include various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to the I / O section 514. The personal electronic device 500 may also include a haptic mechanism 542. The haptic mechanism 542 may emit a vibration or other haptic output that may be perceived by the user. In some embodiments, the haptic mechanism 542 may emit the haptic output in a manner similar to that described with respect to the tactile output generator 167 of the device 100.
[0161] The memory 518 of the personal electronic device 500 may be a non-transitory computer-readable storage medium for storing computer-executable instructions that, when executed by one or more computer processors 516, may cause the computer processors to perform the techniques described above, including processes 2500-2700 (FIGS. 25-27). The computer-executable instructions may also be stored and / or transmitted to any non-transitory computer-readable storage medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, a system including a processor, or other system that may fetch instructions from and execute those instructions from an instruction execution system, apparatus, or device. For purposes of this specification, a "non-transitory computer-readable storage medium" may be any medium that can tangibly contain or store computer-executable instructions for use by or in connection with an instruction execution system, apparatus, or device. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CD, DVD, or Blu-ray technology, and persistent solid-state memory such as flash, solid-state drives, etc. Personal electronic device 500 is not limited to the components and configuration of Figure 5B and may include other or additional components in multiple configurations.
[0162] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that may be displayed on the display screen of device 100, 300, and / or 500 (FIGS. 1, 3, and 5). For example, an image (e.g., an icon), a button, and text (e.g., a hyperlink) may each constitute an affordance.
[0163] As used herein, the term “focus selector” refers to an input element that indicates the current portion of a user interface with which a user is interacting. In some implementations involving a cursor or other position marker, the cursor acts as the “focus selector” such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 of FIG. 3 or touch-sensitive surface 451 of FIG. 4B ) while the cursor is over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations involving a touchscreen display (e.g., touch-sensitive display system 112 of FIG. 1A or touchscreen 112 of FIG. 4A ) that allows direct interaction with user interface elements on the touchscreen display, a contact detected on the touchscreen acts as the “focus selector” such that when input (e.g., a press input by a contact) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface without a corresponding cursor movement or contact movement on the touchscreen display (e.g., by moving focus from one button to another using the tab or arrow keys). In these implementations, the focus selector moves to follow the movement of focus between different regions of the user interface. Regardless of the particular form the focus selector takes, the focus selector is generally a user interface element (or a contact on a touchscreen display) controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface with which the user wants to interact).For example, while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of a focus selector (e.g., a cursor, touch, or selection box) over a corresponding button indicates that the user intends to activate that corresponding button (as opposed to other user interface elements shown on the device's display).
[0164] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of the contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples or a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predetermined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean value of the intensity of the contact, the average value of the intensity of the contact, the top 10 percentiles of the intensity of the contact, half the maximum intensity of the contact, 90 percent of the maximum intensity of the contact, etc. In some embodiments, the duration of the contact is used in determining the characteristic intensity (e.g., where the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an action is performed by the user. For example, the set of one or more intensity thresholds may include a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action, a contact having a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second action, and a contact having a characteristic intensity that exceeds the second threshold results in a third action. In some embodiments, the comparison of the characteristic intensity to one or more thresholds is not used to determine whether to perform the first action or the second action, but rather to determine whether to perform one or more actions (e.g., whether to perform the respective action or to forgo performing the respective action).
[0165] FIG. 5C illustrates the detection of multiple contacts 552A-552E on touch-sensitive display screen 504 by multiple intensity sensors 524A-524D. FIG. 5C also includes an intensity diagram showing the current intensity measurements of intensity sensors 524A-524D in terms of units of intensity. In this example, intensity sensors 524A and 524D each measure 9 units of intensity, and intensity sensors 524B and 524C each measure 7 units of intensity. In some implementations, an aggregate intensity is the sum of the intensity measurements of multiple intensity sensors 524A-524D. In this example, the aggregate intensity is 32 units of intensity. In some embodiments, each contact is assigned a corresponding intensity that is a portion of the aggregate intensity. FIG. 5D illustrates the assignment of aggregate intensities to contacts 552A-552E based on their respective distances from center of force 554. In this example, contacts 552A, 552B, and 552E are each assigned a contact intensity of 8 intensity units of the aggregate intensity, and contacts 552C and 552D are each assigned a contact intensity of 4 intensity units of the aggregate intensity. More generally, in some implementations, each contact j is assigned a corresponding intensity Ij, which is a portion of the aggregate intensity A, according to a predetermined mathematical function: Ij=A·(Dj / ΣDi), where Dj is the distance to the center of force of each contact j and ΣDi is the sum of the distances to the center of force of all contacts (e.g., i=1 through the end). The operations described with reference to FIGS. 5C and 5D may be performed using electronic devices similar to or identical to device 100, 300, or 500. In some embodiments, the characteristic intensity of a contact is based on the intensity of one or more contacts. In some embodiments, an intensity sensor is used to determine a single characteristic intensity (e.g., a single characteristic intensity of a single contact). Note that the intensity plots are not part of the displayed user interface, but are included in FIGS. 5C and 5D as an aid to the reader.
[0166] In some embodiments, a portion of the gesture is identified for purposes of determining the characteristic intensity. For example, a touch-sensitive surface may receive successive swipe contacts that transition from a start position and reach an end position, at which point the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end position may be based on only a portion of the successive swipe contacts (e.g., only the portion of the swipe contact at the end position) rather than the entire swipe contact. 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 optionally includes one or more of an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, these smoothing algorithms eliminate small spikes or drops in the intensity of the swipe contact for purposes of determining the characteristic intensity.
[0167] The intensity of a contact on the touch-sensitive surface may be characterized with respect to one or more intensity thresholds, such as a contact-detection intensity threshold, a light pressure intensity threshold, a deep pressure intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light pressure intensity threshold corresponds to an intensity that will cause the device to perform an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, the deep pressure intensity threshold corresponds to an intensity that will cause the device to perform an action different from an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, if a contact is detected with a characteristic intensity below the light pressure intensity threshold (e.g., and above a nominal contact-detection intensity threshold below which the contact is no longer detected), the device will move a focus selector in accordance with the movement of the contact on the touch-sensitive surface without performing an action associated with the light pressure intensity threshold or the deep pressure intensity threshold. Generally, unless otherwise specified, these intensity thresholds are consistent across different sets of user interface diagrams.
[0168] An increase in the characteristic intensity of the contact from an intensity below the light pressure intensity threshold to an intensity between the light pressure intensity threshold and the deep pressure intensity threshold may be referred to as a "light press" input. An increase in the characteristic intensity of the contact from an intensity below the deep pressure intensity threshold to an intensity above the deep pressure intensity threshold may be referred to as a "deep press" input. An increase in the characteristic intensity of the contact from an intensity below the contact detection intensity threshold to an intensity between the contact detection intensity threshold and the light pressure intensity threshold may be referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of the contact from an intensity above the contact detection intensity threshold to an intensity below the contact detection intensity threshold may be referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact detection intensity threshold is zero. In some embodiments, the contact detection intensity threshold is greater than zero.
[0169] In some embodiments described herein, one or more actions are performed in response to detecting a gesture including the respective pressure input or in response to detecting the respective pressure input performed on the respective contact (or contacts), where the respective pressure input is detected based at least in part on detecting an increase in intensity of the contact (or contacts) above a pressure input intensity threshold. In some embodiments, the respective actions are performed in response to detecting an increase in intensity of the respective contact above a pressure input intensity threshold (e.g., a “downstroke” of the respective pressure input). In some embodiments, the pressure input includes an increase in intensity of the respective contact above a pressure input intensity threshold followed by a subsequent decrease in intensity of the contact below the pressure input intensity threshold, where the respective actions are performed in response to detecting a subsequent decrease in intensity of the respective contact below the pressure input threshold (e.g., an “upstroke” of the respective pressure input).
[0170] 5E to 5H show the results of the light pressure intensity threshold (e.g., "IT L ") to the deep press intensity threshold (e.g., "IT D5 illustrates the detection of a gesture including a press input corresponding to an increase in the intensity of contact 562 to an intensity above a deep pressure intensity threshold (e.g., "IT 100"). The gesture performed by contact 562 is detected on touch-sensitive surface 560, with cursor 576 being displayed over application icon 572B corresponding to App2 on displayed user interface 570, which includes application icons 572A-572D displayed within predetermined region 574. In some embodiments, the gesture is detected on touch-sensitive display 504. An intensity sensor detects the intensity of the contact on touch-sensitive surface 560. The device detects when the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "IT 100"). D Contact 562 is maintained on touch-sensitive surface 560. Upon detecting the gesture, and during the gesture, a deep pressure intensity threshold (e.g., "IT D "), miniature representations 578A-578C (e.g., thumbnails) of documents currently open for App2 are displayed, as shown in FIGS. 5F-5H. In some embodiments, the intensity that is compared to one or more intensity thresholds is a characteristic intensity of the contact. Note that the intensity diagrams for contact 562 are not part of the displayed user interface, but are included in FIGS. 5E-5H as an aid to the reader.
[0171] In some embodiments, the display of indicia 578A-578C includes animation. For example, indicia 578A is initially displayed near application icon 572B, as shown in FIG. 5F. As the animation progresses, indicia 578A moves upward and indicia 578B is displayed near application icon 572B, as shown in FIG. 5G. Then, as indicia 578A moves upward and 578B moves upward toward indicia 578A, indicia 578C is displayed near application icon 572B, as shown in FIG. 5H. Indicia 578A-578C form a column above icon 572B. In some embodiments, as shown in FIGS. 5F and 5G, the animation progresses according to the intensity of contact 562, where the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "IT D "), indicia 578A-578C appear and move upward. In some embodiments, the intensity on which the animation progression is based is a characteristic intensity of the contact. The operations described with reference to FIGS. 5E-5H may be performed using an electronic device similar to or identical to device 100, 300, or 500.
[0172] In some embodiments, the device employs intensity hysteresis to avoid accidental input, sometimes referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship to the pressure input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units below the pressure input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the pressure input intensity threshold). Thus, in some embodiments, the pressure input includes an increase in the intensity of each contact above the pressure input intensity threshold, followed by a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold, with a respective action being performed in response to detecting each subsequent decrease in intensity of the contact below the hysteresis intensity threshold (e.g., an “upstroke” of each pressure input). Similarly, in some embodiments, a pressure input is detected only when the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the pressure input intensity threshold, and optionally when it detects a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a respective action is performed in response to detecting the pressure input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).
[0173] For ease of explanation, descriptions of actions performed in response to a pressure input associated with a pressure input intensity threshold or in response to a gesture including a pressure input are optionally triggered in response to detecting any of: an increase in the intensity of the contact above the pressure input intensity threshold, an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the pressure input intensity threshold, a decrease in the intensity of the contact below the pressure input intensity threshold, and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold. Additionally, in examples described as performing an action in response to detecting a decrease in the intensity of the contact below a pressure input intensity threshold, the action is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold that corresponds to and is lower than the pressure input intensity threshold. Attention is now directed to embodiments of user interfaces and related processes that can be implemented on multifunction devices with a display and a touch-sensitive surface, such as devices 100, 300, and / or 500, to enhance the user experience for managing alerts.
[0174] 1. User interface for managing alerts The user interface for managing alerts described below is illustrated by exemplary sequences of screens that device 500 may display in response to receiving alerts and detecting various user inputs, with arrows in these sequences indicating the order in which the screens may be displayed.
[0175] a. Display of notifications 6A and 6B show example screens 604, 612 that device 500 may display after receiving an alert. Initially, touchscreen 504 may be off or inactive. In response to receiving the alert, device 500 may emit a sensory output 602, such as an audible, visual, or tactile output, that may be perceived by the user. In some embodiments, device 500 may emit the sensory output by causing a haptic mechanism on device 500 to emit a tactile output. In some embodiments, device 500 may emit the sensory output by playing a sound or tone that is audible to the user. In some embodiments, device 500 may emit the sensory output by displaying a visual output, such as a flashing light or indicator, on touchscreen 504.
[0176] In some embodiments, emitting a haptic output includes emitting a first haptic output and, after emitting the first haptic output, emitting a second haptic output, where the first haptic output is different from the second haptic output. To increase the salience with which a user perceives the haptic output, the user may desire to receive a “pre-alert” haptic output. The first haptic output may “prime” the user to receive the second haptic output, which in some embodiments may indicate specific information (e.g., the source of the alert) or may be associated with a second sensory output (e.g., an audible output or a visual output), as described below. For example, it may be difficult for a user to perceive a haptic output while moving or while paying attention to something else. Therefore, a first haptic output that “primes” the user to perceive the second haptic output (and optionally, the associated second sensory output) may be advantageous.
[0177] A user may desire to receive a haptic output based on the source of the alert. For example, a user may desire to receive a different haptic output for email alerts than for answering machine alerts. To provide distinct haptic outputs, the device may emit a haptic output with a distinct audible or visual output, or the device may emit a haptic output with different characteristics, such as different intensities, lengths, and / or patterns. By allowing the user to receive distinct haptic outputs that distinguish the source of the alert, the user can perceive the type of alert without having to look at the display, thereby conserving battery life. In some embodiments, a second haptic output is based on the source of the alarm. In some embodiments, the second haptic output is emitted with an audible or visual output.
[0178] In some embodiments, the first haptic output has a greater intensity and / or duration compared to the second haptic output. This can be advantageous, for example, by providing a stronger haptic signal to the user and drawing the user's attention to device 500 in preparation for a second haptic signal (e.g., one with a distinct aspect based on the source of the alert or one associated with an audible or visual output). In some embodiments, device 500 may include a user interface (not shown) for configuring whether emitting the haptic output includes emitting a first “priming” haptic output. In such embodiments, if device 500 is configured not to emit a “priming” haptic output, emitting the haptic output may include emitting only one haptic output.
[0179] As shown in FIG. 6A , in response to detecting a subsequent user input from sensory output 602 within a predetermined time interval, device 500 may display screen 604 with a notification 606 representing the received alert. In some embodiments, the user input may be a contact on touchscreen 504, such as a swipe or tap. In some embodiments, if device 500 is worn on the user's wrist, the user input may be a signal indicating that the user is moving device 500 to a viewing position by raising or rotating their wrist. As used herein, a viewing position is a position on device 500 where the user can view touchscreen 504. In some embodiments, device 500 may detect a signal indicating that the user is raising or lowering their wrist, as described in U.S. Provisional Patent Application No. 62 / 026,532, entitled "Raise Gesture Detection in a Device," which is incorporated herein by reference in its entirety.
[0180] A received alert includes information. Such information may include, for example, the source of the alert, an application associated with the alert, and / or a time and / or date associated with the alert, along with textual, graphical, or audio content. In some embodiments, a notification representing a received alert includes a portion of the alert information. For example, as shown in FIG. 6A , notification 606 includes the source of the alert 610 (Jason Jones) and an application affordance 608 indicating the application associated with the alert (in this example, a text messaging application). (A dashed rectangle shown on screen 604 indicates the content of the notification, although the dashed rectangle may not be displayed.) In some embodiments, in response to detecting a selection of application affordance 608, device 500 may launch the application associated with the alert. In some embodiments, launching the application includes displaying the application on touchscreen 504 and opening the alert for viewing, editing, or responding within the application.
[0181] As described above, device 500 may display screen 604 in response to detecting a user input within a predetermined time interval from the haptic output. In some embodiments, the predetermined time interval may range from 0 seconds to 3 minutes. In other embodiments, the predetermined time interval may range from 0 seconds to 1 minute. In still other embodiments, the predetermined time interval may be set by the user or may be determined by device 500 based on the user's previous actions, such as an average of the previous time elapsed before the user provided input.
[0182] The scenario illustrated in FIG. 6A may correspond to a case where a user, having perceived the sensory output emitted by device 500 in response to receiving an alert, wishes to immediately view a notification representing the received alert and therefore moves device 500 (e.g., by raising their wrist) within a predetermined time interval to a position suitable for viewing touchscreen 504.
[0183] As shown in FIG. 6B , if the device 500 detects user input after a predetermined time interval, the device 500 may instead respond by displaying a clock face 612. This scenario may correspond to a case where the user does not want to see the notification immediately and raises their wrist to view the touchscreen 504 some time after the sensory output 602. In some embodiments, the clock face 612 may include a user interface object 616 indicating the current time. In some embodiments, the clock face 612 may include an unread alert indicator 614 corresponding to a received alert because the alert content has not yet been displayed. As shown in FIG. 6B , the indicator 614 may be a dot. FIG. 6C illustrates another embodiment in which the indicator 614 is a chevron. In some embodiments, the device 500 displays an arrow, triangle, or other graphic object that provides a directional indicator instead of a chevron. The unread alert indicator is described in more detail below.
[0184] In some embodiments, device 500 may display a home screen rather than clock face 612. An example home screen 706 is shown in Figure 7. The home screen may include multiple affordances representing multiple applications and may include indicators of unread alerts corresponding to received alerts.
[0185] If device 500 does not detect user input within a predetermined time interval from the sensory output, device 500 may remain in an initial dark or inactive state without displaying screen 604. This scenario may correspond to a case where a user does not move device 500 into a position to view touchscreen 504 after perceiving the sensory output because they do not want to see the notification immediately or to avoid others nearby seeing the notification.
[0186] While the notification 606 is being displayed, if the device 500 detects a second user input within a second predetermined time interval after the notification is displayed, the device 500 can return the touchscreen 504 to its initial dark or inactive state. The second user input can be, for example, a signal indicating that the user has moved the device 500 out of the viewing position by lowering and / or rotating their wrist. In response to detecting the second user input within the second predetermined time interval, the device 500 can return the display to its initial dark or inactive state. This scenario can correspond to a case where a user who has seen the notification lowers their wrist because they do not want to continue looking at or interacting with the device 500.
[0187] In some embodiments, displaying the notification 606 includes displaying an animation of the notification 606 sliding vertically on the touchscreen 504. For example, the device 500 may display an animation of the notification 606 sliding from the bottom of the touchscreen 504 to the top of the touchscreen 504. Such an animation may provide a visual cue to the user that the notification is (for example) “rising up” from the bottom of the screen and that “pushing down” the notification by making contact with the touchscreen 504 in the opposite direction of the animation (e.g., a downward swipe) will dismiss the notification. The user may also infer from the animation that making contact with the touchscreen 504 in the same direction as the animation (e.g., an upward swipe) will “pull up” (e.g., display) further alert information, such as the body of a text message or additional text associated with a calendar alert. Thus, the animation displayed by the device 500 may provide a visual cue to the user regarding possible input the user may provide to the device 500. Those skilled in the art will recognize that the animation direction for a notification need not be an upward direction. For example, a notification may slide down from the top of the screen on a touchscreen, in which case the user may know that an upward swipe is required to dismiss the notification. Such visual cues can improve human-machine interfaces by guiding users to apply the appropriate input without requiring detailed instructions to be displayed on small screens.
[0188] As described above, in some embodiments, device 500 may emit a sensory output in response to receiving an alert, for example, by emitting the sensory output to a haptic mechanism, thereby notifying the user that an alert has been received. However, in some embodiments, device 500 may delay generation of the sensory output in response to receiving an alert in order to convey the sensory output at a time that may be more convenient for the user. For example, device 500 may delay the sensory output until the user is relatively inactive and therefore more likely to perceive the sensory output, or may delay the sensory output when the user is actively engaged in an activity or sleeping so as not to disturb the user. In some embodiments, in response to receiving an alert, device 500 may obtain data from one or more motion sensors, accelerometers, heart rate monitors, and / or other types of sensors to determine a current user activity level (e.g., whether the user is currently exercising, typing, or sleeping). Device 500 may delay the sensory output until the determined user activity level meets an activity criterion. In some embodiments, activity criteria may include, for example, the user being relatively still (as determined by output from sensors on device 500), stopping typing on a physical keyboard, stopping conversation, or not sleeping. In this manner, device 500 can emit a sensory output to notify the user that a new alert has been received at a time that is less disruptive to the user and more likely to be perceived by the user.
[0189] After device 500 displays the notification, the user may choose to dismiss the notification or view the content of the alert (e.g., the body of a text message or the text associated with a calendar alert), among other options.
[0190] b. Clear notifications 7 shows another exemplary sequence of screens that device 500 may display on touchscreen 504 after receiving an alert. As discussed in connection with FIG. 6A , touchscreen 504 may initially be dark or inactive. In response to receiving the alert, device 500 may emit a sensory output. In response to receiving user input from the sensory output within a first predetermined time interval, as described in FIG. 6A , device 500 displays screen 604 including notification 606 representing the received alert. In this exemplary sequence, displaying notification 606 on screen 604 includes displaying an animation of notification 606 sliding upward from the bottom of touchscreen 504.
[0191] If device 500 detects a contact on touchscreen 504 that meets dismissal criteria while notification 606 is displayed, device 500 may dismiss notification 606. In some embodiments, dismissing notification 606 includes removing notification 606 from the display and / or replacing the display of the notification with a clock face (e.g., clock face 612 in FIG. 6B ) or a display of home screen 706.
[0192] In some embodiments, a contact meets the erase criteria if the contact is a swipe or flick on the touchscreen 504. In some embodiments, a contact meets the erase criteria if the contact is a swipe or flick on the touchscreen 504 in a particular direction, for example, a swipe or flick in a direction opposite to the direction in which the animation slides the notification on the touchscreen 504. For example, if the animation slides the notification from the bottom up on the touchscreen 504, the contact may meet the erase criteria if the contact is a swipe in a downward direction on the touchscreen 504. In some embodiments, the contact may meet the erase criteria if the distance of the swipe or flick across the touchscreen exceeds a threshold distance. In some embodiments, the threshold distance may be ¼, ½, or ¾ of the length of the touchscreen 504.
[0193] Returning to FIG. 7 , in some embodiments, in response to detecting contact movement (e.g., a swipe) on the touchscreen 504 while the notification 606 is displayed, the device 500 may slide the notification 606 on the touchscreen in the direction of the contact movement and display a dismissal indicator 714 adjacent to the notification. As shown in FIG. 7 , in some embodiments, the dismissal indicator may be displayed above the notification if the direction of contact movement is downward. The dismissal indicator 714 may provide a visual cue to the user that the notification will be dismissed if the contact movement continues in the same direction. After displaying the dismissal indicator, in some embodiments, in response to detecting a release of the contact, if the contact meets a threshold criterion, the device 500 may dismiss the notification 606 and remove the dismissal indicator 714 from the touchscreen 504. If the contact does not meet the threshold criterion (e.g., the contact movement does not exceed a threshold distance), the device 500 may display an animation of the notification 606 sliding back to its initial position on the display and remove the dismissal indicator 714 from the display. Thus, in this example, to dismiss the notification, the user must "push down" on the notification far enough to exceed the threshold distance, or the notification will return to its original position. In some embodiments, dismissing notification 606 includes displaying an animation of sliding notification 606 off touchscreen 504, as shown in Figure 7. In some embodiments, the animation slides notification 606 off touchscreen 504 in the direction of the swipe or flick.
[0194] As discussed above, the user may also dismiss a notification by lowering their wrist (as detected by device 500) while the notification is displayed. In some embodiments, device 500 may respond differently when dismissing a notification in response to detecting a contact that meets the dismissal criteria (discussed in connection with FIG. 7 ) than when dismissing a notification in response to detecting a signal indicating the user is lowering their wrist, as previously described. For example, if device 500 is worn on the user's wrist and device 500 detects a signal indicating the user is lowering their wrist, device 500 may infer that the user is no longer looking at touchscreen 504 and may therefore dismiss or deactivate touchscreen 504 after dismissing the notification. In contrast, if device 500 detects a contact on touchscreen 504 that meets the dismissal criteria (e.g., a downward swipe) while displaying a notification, device 500 may infer that the user is still actively looking at touchscreen 504, and device 500 may respond to the contact by dismissing the notification and then displaying another screen, such as a clock face, a home screen, or the screen that was displayed before the alert was received. c. Displaying alert content
[0195] As discussed above, a received alert includes information that may include the source of the alert, the application associated with the alert, and the time of the alert, along with (possible) alert content, such as the body of a text message or email, a voicemail message, details about a calendar reminder, or other type of content. A notification representing a received alert may include a first portion of this alert information, such as the source of the alert, the associated application, or the time it was received.
[0196] 6A, 6B, and 7, after receiving an alert, device 500 can emit a sensory output and then, in response to detecting a user input, display a notification 606 within a first time interval after the sensory output. After raising their wrist to view the notification, the user may wish to view the associated alert content.
[0197] In some embodiments, after displaying the notification, if device 500 determines that the user continues to maintain device 500 in a viewing position for a predetermined time interval, device 500 may display some or all of the alert content, which may also be referred to as a second portion of information. That is, in some embodiments, device 500 may automatically transition from displaying the notification to displaying the alert content if the user holds device 500 in a viewing position and waits.
[0198] FIG. 8 shows an example sequence of screens that device 500 may display in response to receiving an alert. Touchscreen 504 may initially be dark or inactive. In response to receiving the alert, device 500 may emit a sensory output. In response to receiving user input within a predetermined period of time from the sensory output (as described in connection with FIG. 6A ), device 500 may display notification 606. In response to determining that user input continues to be received a second predetermined period of time after displaying notification 606, indicating that device 500 is maintained in a viewing position, device 500 may display screen 802 including notification 606 and alert content 804. In some embodiments, device 500 may display screen 802 in response to not detecting a second user input within a second predetermined period of time after displaying notification 606. The second user input may be a signal indicating that the user is lowering their wrist, for example, the absence of such input indicating that device 500 remains in a viewing position.
[0199] In this example, the alert content 804 is the body of the text message represented by the notification 606. In other examples, the alert content may include, for example, some or all of the subject and body of a received email alert, or some or all of the text content associated with a calendar alert, or a multimedia message.
[0200] 8 , in some embodiments, displaying the alert content 804 includes animating the notification 606 sliding upward on the touchscreen 504 while sliding the alert content 804 up from the bottom of the touchscreen 504 for display, thereby displaying the notification and the alert content on the same screen. In some embodiments, the device 500 may slide the notification 606 to an upper corner of the touchscreen 504 to provide space for displaying the alert content. In some embodiments, the device 500 may shrink the display size of the notification 606 to provide space for displaying the alert content.
[0201] In some embodiments, if the alert content is too long to be fully displayed on the touchscreen 504, the alert content may be scrolled. In response to detecting user input, the device 500 scrolls the alert content to allow the user to view additional alert content on the touchscreen 504. Such scrolling input may include contact on the touchscreen 504 (e.g., an upward or downward swipe or flick) or, for example, rotation of a rotatable input mechanism, if present. In some embodiments, the device 500 may scroll the alert content in accordance with the user input. For example, in response to an upward swipe on the touchscreen 504, the device 500 may move the alert content upward on the touchscreen 504.
[0202] As shown in FIG. 8 , in some embodiments, device 500 may dismiss notification and alert content in response to detecting a contact that meets dismissal criteria, as described above in connection with FIG. 7 . In some embodiments, dismissing notification 606 and alert content 804 includes sliding notification 606 and alert content 804 off touchscreen 504. In some embodiments, device 500 may display a dismissal indicator and “return” notification and alert content if contact movement does not exceed a threshold distance, as described above. In some embodiments, device 500 may display clock face 612 after dismissing notification and alert content. In some embodiments, if clock face 612 is displayed after alert content has been dismissed, the clock face may be displayed without an indicator of unread alerts because it is after the alert content has been displayed.
[0203] As discussed above, device 500 may display alert content in response to detecting that the device is maintained in a viewing position after displaying a notification. However, in some cases, a user may not want to wait to view the alert content by maintaining device 500 in a viewing position for a predetermined time interval. Thus, in some embodiments, device 500 may also display screen 802 in response to detecting contact with touchscreen 504 while notification 606 is displayed. In some embodiments, the contact to invoke display of alert content 804 may include movement of the contact on touchscreen 504, such as a swipe or flick. In some embodiments, the swipe or flick must be in the same direction as the animation that slides notification 606 across touchscreen 504, such as an upward swipe on touchscreen 504, conceptually “pulling up” more alert information after the notification. In some embodiments, the contact may be a touch (e.g., a finger tap) on or near notification 606.
[0204] 24 , in some embodiments, in response to receiving an alert while touchscreen 504 is actively displaying content, device 500 may display a notification banner 2402 across the top of touchscreen 504, while still displaying at least a portion of the screen content. In some embodiments, in response to receiving an alert while touchscreen 504 is actively displaying content, device 500 may emit a sensory output 702. In the example shown in FIG. 24 , the displayed content is home screen 706. In response to detecting a contact on notification banner 2402, such as a swipe or tap, device 500 may display screen 802 including alert content 804.
[0205] Some alerts may not have any alert content, for example, a clock alarm, a low battery alert, or a fitness alarm, so in some embodiments, device 500 may continue to display the notification without transitioning to displaying alert content.
[0206] d. Suppressing automatic display of alert content In some cases, a user may not want device 500 to automatically display alert content as described in connection with FIG. 8 due to privacy concerns or other reasons. Thus, in some embodiments, device 500 may provide the user with the option to suppress such automatic display of alert content by modifying configuration data stored on device 500. In some embodiments, before transitioning to displaying the alert content, device 500 may retrieve the configuration data to determine whether the alert content should be displayed. If the configuration data indicates that the alert content should be displayed, device 500 may display the alert content as described above in connection with FIG. 8. If the configuration data indicates that the alert content should not be displayed, device 500 may continue to display the notification without transitioning to the alert content.
[0207] In some embodiments, even if device 500 is configured (via configuration data) to suppress the automatic display of alert content, device 500 may display alert content in response to detecting a contact, such as a tap or swipe, on a displayed notification.
[0208] e. Alerts containing audio content Some received alerts may include audio content. Such alerts may include answering machine messages, voice messages, or “push-to-talk” messages. In some embodiments, as shown in FIG. 9 , the displayed alert content may include a playback affordance 902 for playing the audio content. In response to detecting a selection of the playback affordance 902, device 500 may play the audio content. In some embodiments, if the audio content is received as part of a live voice conversation (e.g., when the device is operating in “push-to-talk” mode) and the user selects the playback affordance, device 500 may play the first audio message in response to the selection of the affordance, and device 500 may play subsequent audio messages live as they are received without requiring subsequent selections of the affordance.
[0209] f. Text Message Alerts In some embodiments, if the alert is a text message, the user may wish to view the text message conversation associated with the alert. FIG. 10 illustrates a sequence of screens that device 500 may display after receiving a text message alert. This sequence is similar to the sequence illustrated in FIG. 8 , showing displaying notification 606 and alert content 804 corresponding to a text message received from sender Jason Jones. However, in this example, while displaying screen 802, device 500 detects contact on touchscreen 504. The contact may be, for example, a touch or tap on touchscreen 504 at a location corresponding to application affordance 608, or a horizontal swipe on touchscreen 504. In response to detecting contact with touchscreen 504, device 500 may display screen 1002.
[0210] Screen 1002 includes some or all of a text message conversation between the user and the source of the text message alert. In this example, the text message conversation includes text messages sent to and from Jason Jones. In some embodiments, the text messages in the text message conversation are arranged chronologically based on the order in which the messages were sent and received.
[0211] g. Response options In some cases, upon viewing the notification or alert content, the user may wish to respond to the alert. Because device 500 is a small device with a relatively small touchscreen, user interfaces that may be used to respond to alerts on larger devices, such as mobile phones, may be ineffective and / or cumbersome on touchscreen 504. The user may wish to be able to respond to alerts without having to provide a relatively precise sequence of touchscreen inputs, which may be difficult or unsuccessful on a small device. Thus, in some embodiments, device 500 may provide a user interface that allows the user to respond to alerts more quickly and easily on a small screen.
[0212] As described above, device 500 may scroll the alert content in response to detecting a contact on touchscreen 504 or, in some embodiments, in response to rotating a rotatable input mechanism. In some embodiments, if a user attempts to scroll past the bottom of the alert content (end of content), device 500 may respond by displaying user interface objects associated with actions that can be performed by an application associated with the alert.
[0213] For example, FIG. 11 shows a sequence of screens that device 500 may display in response to receiving an alert. These screens are similar to the screens described in connection with FIG. 4. While displaying the bottom of alert content 804 (in this case, the alert content is a text message), device 500 detects user input requesting scrolling past the bottom of the alert content, i.e., moving the alert content upward to display more of the alert content. The user input may be, for example, an upward swipe on touchscreen 504 or a rotation of a rotatable input mechanism. In response to detecting the user input, device 500 may scroll notification 606 and alert content 804 upward and scroll user interface objects 1112, 1114 below the alert content on touchscreen 504. In this example, notification 606 has scrolled off the top of touchscreen 504 and is no longer displayed.
[0214] 11 , the alert is a text message. Thus, in this embodiment, user interface objects 1112, 1114 scrolled on touchscreen 504 are associated with actions corresponding to a text message application. Specifically, user interface object 1112 is associated with a reply action, and user interface object 1114 is associated with a dismiss action. For other types of alerts, the user interface object scrolled on touchscreen 504 may be different. For example, for a calendar invitation, the action may include accept or decline. For a voicemail alert, the action may include call back or send a message. In some embodiments, there may be more than two user interface objects displayed.
[0215] In some embodiments, in response to detecting a selection of a user interface object 1114 associated with a dismiss action, device 500 may dismiss the alert, as described above in connection with FIG.
[0216] In some embodiments, in response to detecting a selection of user interface object 1112 associated with a reply action, device 500 may display screen 1120. Screen 1120 includes multiple user interface objects 1122, 1124, 1126, 1128 corresponding to choices for replying to the text message. In this example, the reply options include "Smart Reply," "Emoji," "Speech Input," and "KB" (Keyboard). Such reply options may include functionality described in U.S. Provisional Patent Application No. 62 / 044,923, entitled "Historical Buttons for Input Methods," filed September 2, 2014, by Nicholas Zambetti, inventor; U.S. Provisional Patent Application No. 62 / 127,800, entitled "Historical Buttons for Input Methods," filed March 3, 2015, by Nicholas Zambetti, inventor; and U.S. Provisional Patent Application No. 62 / 129,903, entitled "Historical Buttons for Input Methods," filed March 8, 2015, by Nicholas Zambetti, inventor, all of which applications are incorporated by reference in their entireties.
[0217] In response to detecting a selection of user interface object 1122 corresponding to "Smart Reply," device 500 may display Smart Reply screen 1130. Smart Reply screen 1130 includes a user interface for selecting pre-defined reply messages 1132, 1134, 1136. In some embodiments, the content of the pre-defined reply messages may be provided by device 500 as a default or may be customized by the user. In some embodiments, the content of the pre-defined reply messages may be received by device 500 from an external device.
[0218] In response to detecting a selection of the predefined response message 1132, 1134, 1136, the device 500 may send the predefined response message to the alert source and display a message sent confirmation screen 1140. After displaying the message sent confirmation screen 1140 for a predefined time interval, the device 500 may display the clock face 212 or the home screen. In this example, the clock face 212 does not include an indication of an unread alert corresponding to the received alert because the alert content has been displayed after the alert content has been displayed.
[0219] Returning to screen 1120, if device 500 detects selection of user interface object 1124 rather than 1122, device 500 may display a user interface for selecting an emoji (e.g., an ideogram, clip art, or animation) to send in reply to the alert source. In response to detecting selection of an emoji, device 500 may send the selected emoji to the source of the alert and display message sent confirmation screen 1140.
[0220] In some embodiments, instead of transmitting a predetermined response or emoji immediately upon selection, device 500 may display a confirmation affordance. In response to detecting selection of the confirmation affordance, device 500 may transmit a predetermined response or emoji, as described above.
[0221] In some embodiments, in response to detecting selection of user interface object 1126, device 500 may record audio input from a microphone on device 500 and transmit data corresponding to the recorded audio in response to the source. In some embodiments, the recorded audio may be transmitted as audio message data. In other embodiments, the recorded audio may be transcribed by device 500 and transmitted as transcription data. In some embodiments, instead of immediately transmitting data representing the audio recording to the source, device 500 displays the recorded audio on touchscreen 504 along with a transmit affordance that, when selected, causes device 500 to transmit data corresponding to the audio to the source.
[0222] In some embodiments, in response to detecting a selection of user interface object 1128, device 500 may display a virtual keyboard that allows the user to type a response to the alert.
[0223] 12A , in some embodiments, in response to detecting a user input requesting that user interface objects 1112, 1114 be scrolled up on touch screen 504 and then scrolled past the bottom of user interface object 1114, device 500 may scroll user interface objects 1202, 1204, 1206, and 1208 representing reply options on touch screen 504 below user interface objects 1112, 1114. These reply options include two predetermined reply messages 1202, 1204, a voice input 1208, and an emoji 1206 option, as described above in connection with FIG. 11 . In response to detecting a selection of one of reply options 1202, 1204, 1206, 1208, device 500 may respond as described in connection with FIG. 11 .
[0224] 12B , in some embodiments, instead of scrolling user interface objects 1112, 1114 up below the bottom of the alert content, device 500 may scroll user interface objects 1202, 1204, 1206, and 1208 on the screen below the bottom of the alert content. In this example, in response to detecting user input (e.g., an upward swipe) requesting scrolling past the bottom of alert content 804, device 500 scrolls these reply options below the bottom of the alert content on touchscreen 504.
[0225] FIG. 12C shows an example animation that device 500 may display as part of an interface for using “Smart Reply,” described above with reference to FIGS. 11-12B. On screen 1210, device 500 displays an alert (e.g., text message 1212) and a user interface object 1214 associated with a reply action. In response to receiving user input associated with the reply action (e.g., a touch on touchscreen 504 at the location of user interface object 1214), device 500 may display an animated reveal of multiple predefined reply messages. For example, as shown in FIG. 12C, screen 1220 initially displays user interface objects 1222 and 1224 corresponding to the predefined reply messages. User interface objects 1222 and 1224 appear at the bottom of screen 1220 and are animated to move across the screen in an upward direction, as indicated by arrow 1226. In a series of animated displays, user interface objects 1228, 1230, and 1232 appear at the bottom of screen 1220, while user interface objects 1222 and 1224 move to the top of screen 504. User interface object 1228 represents a third predetermined response message, user interface object 1230 represents an emoji response, and user interface object 1232 represents an audio response.
[0226] The user may provide user input indicating selection of a predetermined response message or other response option (e.g., an emoji or voice input). For example, the user may provide a touch on touchscreen 504 at the location of user interface object 1228. In response to detecting user input indicating selection of a predetermined response message or other response option, device 500 may remove display of other predetermined response messages and response options (e.g., those not selected by the user). As shown in FIG. 12C , in response to receiving user input indicating selection of a predetermined response message of “I don’t know” (e.g., user interface object 1228), device 500 removes display of user interface objects 1222, 1224, 1230, and 1232. Thereafter, device 500 may animate the selected predetermined response message, temporarily pause it, and then move it off screen 1220, as indicated by arrow 1234, dismissing it. After deactivating, moving, and removing the displayed predefined reply message / other reply option, device 500 may display a second user interface screen (e.g., screen 1240), such as clock face 212 or a home screen. For example, after user interface object 1224 moves off screen 1220, device 500 may display screen 1240 by fading it in, transitioning from an out-of-focus state to an in-focus state, etc. Device 500 may also send the selected predefined reply message to the alert source.
[0227] The device 500 may display other response options to enable a user to respond to other types of alerts. For example, FIGS. 13A and 13B show an exemplary sequence of screens that the device 500 may display on the touchscreen 504 to enable a user to respond to a clock alarm alert or a social media “friend request” alert. In the example shown in FIG. 13A , the device 500 receives a clock alarm alert and emits a sensory output. In response to detecting user input within a predetermined time interval from the sensory output, the device 500 displays a screen 1302 that includes a notification 1304 corresponding to the clock alarm alert. In response to detecting a touch on the notification 1304, the device 500 displays a response screen 1330. The touch may be an upward swipe on the touchscreen 504 while the notification 1304 is displayed. In response to the touch, the device 500 displays the screen 1330. In this case, the response options include “snooze” 1306 and “stop” 1308.
[0228] In the example of FIG. 13B , device 500 receives a “friend request” alert from a social media application and emits a sensory output. In response to detecting user input within a predetermined time interval from the sensory output, device 500 displays screen 1310 including a notification 1312 corresponding to the friend request alert. In response to detecting contact with touchscreen 504 while displaying screen 1310, device 500 displays response screen 1340. The contact may be, for example, an upward swipe on touchscreen 504. In response to detecting this contact, device 500 displays screen 1340. In this case, response options for the alert include “approve” 1314 and “reject” 1316, allowing the user to accept or reject the friend request.
[0229] Those skilled in the art will recognize that many other response options are possible for other types of alerts.
[0230] 8-11, device 500 displays alert content associated with a received alert in response to an upward swipe on touchscreen 504 while the notification is displayed. However, in the example shown in FIGS. 13A and 13B, the received alert does not have associated alert content. In some embodiments, if the received alert does not have alert content, device 500 may respond to a contact (e.g., an upward swipe or tap) on touchscreen 504 while displaying the notification by displaying response options rather than displaying the alert content.
[0231] As discussed above, in some embodiments, device 500 may detect the intensity of a contact on touchscreen 504 (e.g., using intensity sensor 524). Device 500 may then respond to the contact on touchscreen 504 based on the intensity of the contact. Returning briefly to FIG. 11 , in some embodiments, while displaying alert content 804, in response to detecting a contact with touchscreen 504 having a characteristic intensity that exceeds a threshold intensity, device 500 may display some or all of user interface objects 1122, 1124, 1126, and 1128.
[0232] In some embodiments, the user may access user interface objects 1122, 1124, 1126, and / or 1128 by either scrolling past the bottom of the alert content or by touching the touchscreen 504 with a characteristic intensity above a threshold intensity (e.g., a strong press on the touchscreen 504 detected by the intensity sensor 524), as described above.
[0233] 14 shows another sequence of screens that may be displayed by device 500 to enable a user to respond to a received alert. In this example, while alert content 804 is being displayed, device 500 detects a contact with touchscreen 504 having a characteristic intensity that exceeds a threshold intensity. In response to detecting a contact having a characteristic intensity that exceeds the threshold, device 500 may display response screen 1402.
[0234] Response screen 1402 includes four user interface objects 1404, 1406, 1408, and 1410, corresponding to four response options. In response to detecting an input indicating a selection of user interface object 1404, device 500 may display screen 1120 as shown and described in connection with FIG.
[0235] In response to detecting a selection of user interface object 1406, device 500 may dismiss the alert and display a clock face or a home screen.
[0236] In response to detecting a selection of user interface object 1408, device 500 may suppress subsequent alerts indefinitely or for a predetermined period of time (e.g., by not producing a sensory output in response to receiving an alert and / or by not displaying any new notifications).
[0237] In some embodiments, in response to detecting a selection of user interface object 1410, device 500 may launch an application associated with the received alert and display the alert within the application. Launching an application may correspond to running the application in the foreground on device 500 and / or displaying the application on touchscreen 504. In this example, because the alert is a text message, device 500 may launch a text messaging application. In other examples, in response to the received alert, the application launched may be an email application, a calendar application, a weather application, a social networking application, or some other type of application. After launching the application, in response to detecting a press of a hardware button or a press of a rotatable and depressible mechanism (if either or both are present on device 500, as shown in FIG. 5A ), the device may close the application and display a home screen.
[0238] In the example shown in FIG. 14 , response screen 1402 includes user interface objects 1404, 1406, 1408, and 1410 suitable for responding to a text message or email alert. However, as discussed above in connection with FIGS. 12A and 12B , the response screen may have different user interface objects suitable for responding to different types of alerts. For example, if the alert is a clock alarm, instead of “Reply” option 1404, the response screen may provide a “Snooze” option. As another example, if the alert is an audio message, the response screen may provide a “Play” option so that the user can play the audio message. In some embodiments, the response screen may provide an “Open on Phone” option. In response to detecting a selection of the “Open on Phone” option, device 500 may transmit data to an external electronic device in communication with device 500, such as a mobile phone, to cause the external electronic device to launch an application associated with the alert.
[0239] 13A, 13B, and 14 are not part of the associated application, which may or may not be running on device 500, but the response interface is part of the alert user interface. In some embodiments, a third party may provide response options for an application running on an external electronic device in communication with device 500.
[0240] 2. Managing Multiple Alerts In some embodiments, the device 500 may receive multiple alerts and may display multiple successive notifications.
[0241] 15 illustrates a sequence of screens that may be displayed by device 500 in response to receiving multiple alerts. As in the previous example, touchscreen 504 may initially be dark or inactive. In response to receiving a first alert, device 500 emits first sensory output 602. In response to receiving user input within a first time interval from first sensory output 602, device 500 displays first notification 606, as shown and described above in connection with FIG. 6A.
[0242] While displaying the first notification, device 500 receives a second alert. In response to receiving the second alert, device 500 replaces screen 604 with screen 1502. In some embodiments, in response to receiving the second alert, device 500 may also emit a second sensory output 1506. Screen 1502 includes a second notification 1504 representing the second received alert. In this example, the second received alert is an email from sender Julia Smith. The second notification may be animated on the screen in a manner similar to that described above in connection with FIG. 8.
[0243] Device 500 may dismiss second notification 1504 in response to detecting user input meeting dismissal criteria, as discussed above in connection with FIG. 8. After dismissing the second notification, device 500 may display home screen 706 or clock face 612. As shown in FIG. 15, the home screen or clock face may include two unread alert indicators, corresponding to the first and second alerts. Note that unread alert indicator 614 shown on clock face 612 in FIG. 15 is larger than the unread alert indicator shown on clock face 612 in FIG. 6B. As discussed in more detail below, in some embodiments, the size of the indicator may provide an indication of the number of unread alerts.
[0244] 16 shows another example sequence of screens that may be displayed by device 500 in response to receiving multiple alerts. In this example, device 500 receives a first alert, emits a first sensory output 602, and displays a first notification 606 and first alert content 804 in response to various user inputs, as described above in connection with FIG.
[0245] While displaying the first alert content 804, the device 500 then receives a second alert including the information. In response to receiving the second alert, the device 500 may display a screen 1502 including a second notification 1504, as described in connection with FIG. 15 . In some embodiments, in response to receiving the second alert, the device 500 may emit a second sensory output 1506. The device 500 may dismiss the second notification 1504 in response to user input meeting dismissal criteria, as described above in connection with FIG. 8 . After dismissing the second notification 1504, the device 500 may display the clock face 612 or the home screen 706, as described above in connection with FIG. 15 . In some embodiments, instead of displaying the clock face 612 or the home screen 706, the device 500 may again display the first alert content 804 after dismissing the second notification 1504.
[0246] 17 shows another sequence of screens that device 500 may display. This sequence is similar to the sequence shown in FIG. 16, but instead of dismissing second notification 1504, the user desires to view second alert content. Device 500 may display second alert content 1712 while displaying second notification 1504 in response to detecting user input, as described above in connection with FIG. 8. In this example, second alert content 1712 includes a subject line 1710 for the email alert. The user input may be, for example, an upward swipe or tap on the second notification.
[0247] 17 , after viewing second alert content 1712, the user desires to invoke an application associated with the second alert. In some embodiments, in response to detecting a contact on touchscreen 504 at a location corresponding to the second alert content or second alert notification, device 500 may launch the application associated with the second alert and display screen 1714. In some embodiments, in response to detecting a selection of application affordance 1708, device 500 may launch the application associated with the second alert and display screen 1714.
[0248] In this example, the application associated with the second alert is an email application. Thus, in response to detecting a selection of application affordance 1708, device 500 may launch the email application. In some embodiments, when device 500 launches the application associated with the alert in this manner, the alert is opened within the application, as shown by screen 1714.
[0249] After launching and viewing an application, the user may wish to return to the home screen. In response to detecting a press of input button 506, which may be a pressable hardware button or a pressable and rotatable input mechanism, device 500 may display home screen 706. In this example, home screen 706 is displayed without indicators of unread alerts corresponding to the first and second alerts because first alert content 804 and second alert content 1712 were both displayed.
[0250] 18-20 illustrate further screen sequences that device 500 may display in response to receiving multiple alerts and detecting inputs, as described above.
[0251] In the sequence shown in FIG. 18 , device 500 receives a first alert and displays the first notification, as shown and described in connection with FIG. 17 . While displaying the first notification, device 500 receives a second alert. In response to receiving the second alert, device 500 displays the second notification. In this example, the user dismisses the second notification, as described above in connection with FIG. 16 . After dismissing the second notification, device 500 again displays the first notification. The user then dismisses the first notification, and device 500 displays the home screen. In this example, the home screen is displayed with indicators of two unread alerts corresponding to the first and second alerts.
[0252] FIG. 19 is similar to FIG. 18. However, in this example, after device 500 displays a first notification, the user holds device 500 in a viewing position, and device 500 responds by displaying first alert content, as described above in connection with FIG. 18. While displaying the first alert content, device 500 receives a second alert and displays the second notification. The user dismisses the second notification, and device 500 then redisplays the first alert content. The user dismisses the first alert content, and device 500 displays home screen 706. In this example, the home screen is displayed with an indicator of one unread alert, which corresponds to the second alert.
[0253] Figure 20 is similar to Figure 15. However, instead of dismissing the second notification, the user taps application affordance 2002 to launch the application associated with the second alert. In response to detecting the selection of application affordance 2002, device 500 launches the application and displays the second alert content within the application. The user then exits the application and returns to home screen 706 by pressing a hardware button or pressable and rotatable input mechanism 506.
[0254] Device 500 may display other user interfaces for viewing multiple notifications or alerts. As shown in FIG. 21 , in some embodiments, in response to detecting a touch on a notification 606 representing a first alert, device 500 may display screen 2102 including a first pane containing a portion of alert content 2106 associated with notification 606 and portions of one or more additional panes 2108 showing other alert content for other received alerts. In some embodiments, screen 2102 may include page dots 2110 indicating to the user the number of other panes that may be displayed and the location of the currently displayed pane. In response to detecting a flick or swipe on touchscreen 504, device 500 may scroll the panes to display alert content for other received alerts.
[0255] In some embodiments, in response to detecting a contact on pane 2104, device 500 may display screen 2114 containing the entire alert content 2120 associated with notification 606. In some embodiments, screen 2114 further includes page dots 2118, which may provide the user with a display of other messages, such as other messages in a text message conversation. In some embodiments, the color of page dots 2118 on screen 2114 may indicate the type of message. For example, page dots associated with pane 2116 containing the current alert content 2120 may be a single color, while other messages, such as reply messages, may be indicated by page dots of different colors.
[0256] 3. Mute Notifications In some cases, after receiving an alert from a source, a user may desire to suppress subsequent sensory output related to alerts from the same source and / or suppress the display of notifications representing alerts from the same source. That is, the user may not want to be notified by a sensory output and / or have an associated notification displayed on touchscreen 504 if subsequent alerts are received from the same source. As shown in FIG. 22 , device 500 may receive an alert from a source and display notification 606. In this example, while displaying the notification, device 500 detects a contact with touchscreen 504 having a characteristic intensity above a threshold intensity. In response to detecting a contact having a characteristic intensity above the threshold intensity, device 500 may display mute affordance 2204 to mute subsequent alerts received from the same source or alerts associated with the same application. In response to detecting a selection of mute affordance 2204, device 500 may suppress sensory output and notifications related to alerts received from the same source or application indefinitely or for a predetermined period of time.
[0257] 4. Notification Grouping In some cases, the device 500 may receive multiple alerts simultaneously or within a short period of time. This may occur, for example, if the device 500 is powered off for a period of time. When the device 500 is subsequently powered on, the device 500 may receive all of the alerts that would have been received if the device 500 had not been powered off. In this case, the user may be required to view and dismiss multiple successive notifications, which may be irritating.
[0258] Thus, in some embodiments, in response to receiving multiple alerts, device 500 may display a single grouped notification representing the multiple alerts rather than displaying a single notification for each received alert. Device 500 may determine whether to display a grouped notification representing the multiple alerts based on grouping criteria. For example, device 500 may group alerts for display in a single notification based on whether the multiple alerts were received within a predetermined time interval, whether the multiple alerts were received from the same source, whether the multiple alerts are associated with the same application, or some combination of these criteria. In some embodiments, device 500 may exclude time-sensitive alerts from being included in the grouped notification and instead display a single notification for each time-sensitive alert. Such time-sensitive alerts may include, for example, system alerts (e.g., low battery alerts) or urgent calendar reminders.
[0259] 23A-23C show examples of grouped notifications 2302, 2304, and 2306 representing multiple alerts. As shown in FIGS. 23A-23C, in some embodiments, device 500 may respond to user input differently when displaying a grouped notification than when displaying a notification representing a single alert. For example, as described above in connection with FIG. 8, in response to detecting a contact (e.g., an upward swipe) on a notification representing a single alert, device 500 may display the alert content. In contrast, in response to detecting a contact on a grouped notification representing multiple alerts, device 500 may display an inbox for the application associated with the multiple alerts (if the alerts are all associated with a single application, the application has an inbox), or may display a list of notifications including an individual notification for each received alert represented by the grouped alert. FIGS. 23A-23C show example grouped notification screens and responses to user input.
[0260] 23A , device 500 receives three text messages from the same source, Jason Jones, and displays grouped notification 2302 representing the text messages. In response to detecting a touch on the grouped notification, device 500 may display text message inbox 2308 for Jason Jones along with a list of the received messages. The touch may be, for example, a tap or a swipe. In response to detecting a selection of one of the listed messages, device 500 may display associated alert content.
[0261] In the example screen sequence shown in FIG. 23B , device 500 receives two alerts from two different sources: Chris Black and Jason Jones. Both alerts are associated with the same application. In this example, the application is a text messaging application. In response to receiving the two alerts, device 500 may display grouped notification 2304 representing the two alerts. In response to detecting a contact on grouped notification 2304, device 500 may display text message inbox 2310 listing the two messages. In response to detecting a selection of one of the listed messages, device 500 may display the associated alert content.
[0262] 23C, device 500 may receive multiple alerts associated with multiple applications. Device 500 may display grouped notification 2306 representing the multiple alerts. In response to detecting a touch on grouped notification 2306, device 500 may display list of notifications 2312 including an individual notification for each received alert represented by the grouped notification. In response to detecting a selection of one of the notifications, device 500 may display the associated alert content.
[0263] In some embodiments, in response to receiving multiple alerts that meet the grouping criteria, device 500 may emit multiple sensory outputs. In some embodiments, in response to receiving multiple alerts that meet the grouping criteria, device 500 may emit a single sensory output rather than emitting a sensory output for each alert.
[0264] 5. Unread Alerts Indicator As discussed above in connection with FIGS. 6B, 7, and 15, in some examples, the displayed clock face or home screen may include a user interface object that provides an indication of an unread alert. An unread alert may correspond to an alert that has been received but not viewed by the user, or may correspond to an alert that has been marked as “unread” by the user. Device 500 determines whether an alert has been viewed based on, for example, whether some or all of the alert content was displayed on touchscreen 504, how long the alert content was displayed on touchscreen 504, whether any audio content associated with the alert was played, and / or whether the alert content was displayed automatically (e.g., in response to a user signaling that they have raised their wrist) or in response to contact with touchscreen 504. In some embodiments, if an alert does not include any alert content (e.g., a clock alarm), device 500 may consider the alert to have been read if a notification representing the alert has been displayed.
[0265] In some embodiments, device 500 may receive an alert that generates a temporary notification. Such a notification may be useful to the user only for a relatively short period of time. For example, if the user is exercising and achieves a fitness milestone (e.g., halfway through a workout), device 500 may receive such a temporary alert notifying the user of the milestone. In this case, if the user raises their wrist within a predetermined time interval after device 500 emits a sensory output regarding the temporary alert, device 500 may display a notification representing the alert. However, if the user raises their wrist a short time later, device 500 may display a clock face or home screen that may not include an indicator of an unread alert corresponding to the alert because the alert is no longer relevant to the user.
[0266] 7 , in the exemplary home screen 706, the user interface object 708 provides an indication of unread alerts by displaying the number of unread alerts. In other examples, the user interface object may provide an indication of unread alerts in a different manner, such as by displaying a colored banner where the color indicates the number of unread alerts (e.g., the darker the banner, the more unread alerts there are). In some embodiments, the user interface object may indicate the existence of unread alerts without displaying a number of unread alerts at all.
[0267] In some embodiments, as shown in FIGS. 6B, 6C, and 15, device 500 may provide an indication of unread alert(s) by displaying a dot, chevron, or other shape, such as display 614. In some embodiments, the color of the dot, chevron, or other shape may indicate the presence of unread alerts. For example, a red shape may indicate the presence of unread alerts, while a green shape may indicate the presence of no unread alerts. In some embodiments, the shape may blink, flash, or vary in size with a frequency that indicates the number of unread alerts. For example, a higher blinking frequency may indicate more unread alerts. In some embodiments, the size of the shape may be an indicator of the number of unread alerts. For example, a small shape (as in FIG. 6B) may indicate one unread alert, while a larger shape (as in FIG. 15) may indicate more unread alerts. Those skilled in the art will understand that these approaches for indicating the number of unread alerts may be combined in many different ways.
[0268] In some embodiments, the display of the shape includes an effect. For example, the shape may fade into position on the touch screen 504 or slide into position (e.g., sliding from the top of the screen). Optionally, the effect is animated. In some embodiments, the effect is performed in response to user input (e.g., the user raising their wrist).
[0269] In some embodiments, the display of the shape is removed according to removal criteria. For example, the shape may be removed after the shape has been displayed for a predetermined period of time or in response to user input (e.g., the user lowering their wrist). In some embodiments, the removal of the shape includes an effect. For example, the shape may fade out of the touchscreen 504 or may slide off the touchscreen 504 (e.g., sliding off the top edge of the screen). Optionally, the removal of the shape is animated.
[0270] A mechanism and / or effect associated with the unread alert indicator may indicate to the user that unread alerts exist. For example, an animation of the indicator's appearance or changing size may draw the user's attention to the fact that unread alerts exist.
[0271] Additionally, some shapes may provide additional technical effects. In some embodiments, an arrow, triangle, chevron (e.g., 614 in FIG. 6C ), or other graphic object providing a directional indicator may provide a visual cue to the user that an input will cause device 500 to perform an action associated with an unread alert. For example, a directional graphic object, such as chevron 614 shown in FIG. 6C , may indicate to the user that swiping, dragging, or flicking on touchscreen 504 in the direction indicated by the object (e.g., downward in the case of chevron 614 in FIG. 6C ) will cause device 500 to perform an action associated with the unread alert. In one embodiment, swiping in the direction indicated by the directional object causes device 500 to display the content of the unread alert (e.g., alert content 804 on screen 802 in FIG. 8 ). In another embodiment, swiping in the direction indicated by the object causes device 500 to display a notification of the alert (e.g., notification 606 in FIG. 6A ). In yet another embodiment, swiping in the direction indicated by the object causes device 500 to display a list of one or more notifications, which may include a notification of the unread alert, or to launch an application corresponding to the unread alert. For example, device 500 may display multiple notifications or launch an application corresponding to the unread alert, as described in co-pending U.S. Provisional Patent Application No. 62 / 044,953, filed September 2, 2014, and entitled "Reduced-Size Notification Interface," the contents of which are incorporated herein by reference.
[0272] Those skilled in the art will appreciate that various positions and orientations of shapes or objects indicating unread alerts are possible. For example, an indicator at the bottom of touchscreen 504 may include an upward pointing arrow, triangle, chevron, or other graphic object indicating the presence of unread alerts, and an upward swipe on touchscreen 504 causes device 500 to display the contents of the unread alerts, a notification of the alert, a list of notifications, or another display associated with the alerts and / or notifications.
[0273] 6. Interactive Event Reminders In some embodiments, the alert is associated with an event (e.g., a party, a meeting, a game, etc.). The alert content may include information associated with the event, such as the date, time, and location of the event. In some embodiments, a reminder for an event is displayed based on an estimate of the time it will take the user to get to the event. The estimated time is optionally determined by the user's location and a location associated with the event. This time may be, for example, an estimated walking, cycling, public transportation, or car travel time generated by a map application, a navigation application, etc. In some embodiments, the reminder is displayed prior to the time of the event by the estimated time it will take the user to get to the event. In some embodiments, the reminder is displayed prior to the time of the event by the estimated time it will take the user to get to the event, plus a predetermined amount of time to allow the user time to prepare to get to the event in order to arrive on time.
[0274] In some embodiments, the event notification or reminder includes an affordance. In response to detecting selection of the affordance, device 500 may activate a messaging application that composes a message addressed to a person associated with the event (e.g., the event organizer or a person who invited the user to the event). In this manner, the user may easily provide a person associated with the event with the user's current status (e.g., "I'm not on my way yet. I'll be there in 10 minutes."). In some embodiments, in response to detecting selection of an affordance associated with the event notification or reminder, device 500 may activate a map application, a navigation application, or the like that provides or displays directions to the event. The directions may include directions from the user's current location to a location associated with the event.
[0275] 7. Process for Managing Notifications and Alerts FIG. 25 is a flow diagram illustrating a process 2500 for managing notifications and alerts. Process 2500 may be performed in an electronic device with a touch-sensitive display screen, such as device 500 (FIG. 5A). At block 2502, the device receives an alert including information. At block 2504, the device emits a sensory output (e.g., using haptic mechanism 542) in response to receiving the alert. At block 2506, the device detects user input. At block 2508, in response to detecting the user input, the device determines whether the user input is detected within a predetermined time interval from the sensory output. In accordance with a determination that the user input is detected within the predetermined time interval, at block 2510, the device displays a notification including a first portion of the information (e.g., optionally, the device determines whether the user input continues to be detected a second predetermined time interval after displaying the notification). In accordance with a determination that the user input continues to be detected, the device displays a second portion of the information, the second portion being different from the first portion).
[0276] It should be noted that the details of the processes described above in connection with process 2500 (e.g., FIGS. 25 and 6A-8) are also applicable in an analogous manner to the other processes described herein. For example, process 2600 and process 2700 may include one or more of the characteristics of the various processes described above in connection with process 2500. For brevity, these details will not be repeated in the description of the other processes. The various methods and techniques described above in connection with method 2500 may optionally be implemented as one or more hardware units, such as those described in connection with FIG. 5B.
[0277] FIG. 26 is a flow diagram illustrating a process 2600 for managing notifications and alerts. Process 2600 may be performed on an electronic device with a touch-sensitive display screen, such as device 500 (FIG. 5A). At block 2602, the device receives multiple alerts. At block 2604, device 500, in response to receiving the alerts, determines whether the multiple alerts meet grouping criteria. At block 2606, the device detects user input. At block 2608, the device, in response to determining that the multiple alerts meet the grouping criteria and in response to detecting the user input, displays a grouped notification representing the multiple alerts. At block 2610, in response to determining that the multiple alerts do not meet the grouping criteria and in response to detecting the user input, the device displays multiple notifications representing the multiple alerts. Optionally, the grouping criteria are based on whether the multiple alerts are received from the same source, whether the multiple alerts exceed a numeric alert threshold, whether the multiple alerts are associated with the same application, and / or whether the multiple alerts are received within a predetermined time interval.
[0278] It should be noted that the details of the processes described above in connection with process 2600 (e.g., FIGS. 26 and 23) are also applicable in an analogous manner to the other processes described herein. For example, process 2500 and process 2700 may include one or more of the characteristics of the various processes described above in connection with process 2600. For brevity, these details will not be repeated in the description of the other processes. The various methods and techniques described above with reference to method 2600 may optionally be implemented as one or more hardware units, such as those described in connection with FIG. 5B.
[0279] FIG. 27 is a flow diagram illustrating a process 2700 for managing notifications and alerts. Process 2700 may be performed on an electronic device with a touch-sensitive display screen, such as device 500 (FIG. 5A). At block 2702, the device receives an alert including information while displaying content. At block 2704, device 500 displays a notification banner across the display in response to receiving the alert. The banner includes a portion of the information. At least a portion of the content continues to be displayed on the display. At block 2706, the device detects a touch on the banner. In response to detecting the touch, at block 2708, the device displays a second portion of the information. The second portion is different from the first portion.
[0280] It should be noted that the details of the processes described above in connection with process 2700 (e.g., FIGS. 27 and 24) are also applicable in an analogous manner to the other processes described herein. For example, process 2500 and process 2600 may include one or more of the characteristics of the various processes described above in connection with process 2700. For brevity, these details will not be repeated in the description of the other processes. The various methods and techniques described above with reference to method 2700 may optionally be implemented as one or more hardware units, such as those described in connection with FIG. 5B.
[0281] The units of FIG. 28 may be used to implement the various techniques and methods described above in connection with FIGS.
[0282] 28 , electronic device 2800 includes a display unit 2802 configured to display a user interface, and optionally a touch-sensitive surface unit 2804 configured to receive user contacts, one or more sensor units 2806 configured to detect the intensity of contacts with the touch-sensitive surface unit, and a processing unit 2808 coupled to display unit 2802, touch-sensitive surface unit 2804, and sensor unit 2806. In some embodiments, processing unit 2808 includes a display enabling unit 2810, a receiving unit 2812, and a determining unit 2814.
[0283] In some embodiments, the display enabling unit 2810 is configured to display a notification, alert information, or a user interface (or a portion of a user interface) in association with the display unit 2802. For example, the display enabling unit 2810 may be used to display a notification, to replace a first notification with a second notification on the display, or to display a user interface for selecting one of a plurality of message handling actions.
[0284] In some embodiments, the receiving unit 2812 is configured to receive alerts, data, or information. For example, the receiving unit 2812 may be used to receive alerts that include information.
[0285] In some embodiments, the determining unit 2814 is configured to make the determination. For example, the determining unit 2814 may be used to determine whether a signal is received within a predetermined time interval from the sensory output and to determine whether the characteristic intensity of the second contact exceeds a threshold intensity.
[0286] 29 shows a functional block diagram of an electronic device 2900 configured in accordance with the principles of the various described embodiments. The functional blocks of the device are optionally implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described embodiments. Those skilled in the art will understand that the functional blocks described in FIG. 29 are optionally combined or separated into sub-blocks to implement the principles of the various described embodiments. Thus, the description herein optionally supports any possible combination or division or further definition of the functional blocks described herein.
[0287] 29 , electronic device 2900 includes a display unit 2902 configured to display a graphical user interface, a haptic mechanism unit 2904 configured to emit haptic output, and a processing unit 2908 coupled to display unit 2902 and haptic mechanism unit 2904. In some embodiments, electronic device optionally includes a touch-sensitive surface unit 2926 configured to receive touch input and coupled to display unit 2902 and processing unit 2908. In some embodiments, electronic device 2900 optionally includes rotatable and depressible input mechanism 2906, a microphone unit 2926, and a button unit 2928. In some embodiments, processing unit 2908 optionally includes a receiving unit 2910, a sensory output enabling unit 2912, a detecting unit 2914, a determining unit 2916, a display enabling unit 2918, an activation unit 2920, a transmission enabling unit 2922, and an audio enabling unit 2924.
[0288] The processing unit 2908 is configured to receive (e.g., via the receiving unit 2910) an alert including the information, and, in response to receiving the alert, enable the sensory output (e.g., via the sensory output enabling unit 2912). The processing unit 2908 is further configured to detect a user input (e.g., via the detecting unit 2914), determine (e.g., via the determining unit 2916) whether the user input is detected from the sensory output within a predetermined time interval, and, in accordance with a determination that the user input is detected within the predetermined time interval, enable display of a notification on the display unit 2902 (e.g., via the display enabling unit 2918), wherein the notification includes the first portion of the information.
[0289] In some embodiments, enabling the sensory output includes causing the haptic mechanism unit 2904 to emit a haptic output.
[0290] In some embodiments, the processing unit 2908 is further configured to, in accordance with a determination that user input is detected after the predetermined time interval from the sensory output, enable (e.g., by the display enable unit 2918) the display of a clock face, wherein the clock face includes an indication that the alert is unread.
[0291] In some embodiments, the processing unit 2908 is further configured to, in accordance with determining that user input is detected after the predetermined time interval from the sensory output, enable (e.g., by the display enablement unit 2918) the display of a home screen on the display unit 2902, the home screen including a plurality of user interface objects representing a plurality of applications, the user interface objects, when activated, launching the corresponding applications, and the home screen including an indication that an alert is unread.
[0292] In some embodiments, enabling the display of the notification includes activating the display unit 2902 from an inactive state. In some embodiments, displaying the notification includes replacing the display of the home screen with the display of the notification. In some embodiments, enabling the display of the notification includes enabling the display of an animation that moves the notification in a first direction on the display.
[0293] In some embodiments, the notification includes an application affordance for launching an application associated with the alert, and the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a selection of the application affordance and, in response to detecting the selection, launch (e.g., via the launch unit 2920) the application associated with the alert.
[0294] In some embodiments, the processing unit 2908 is further configured, in response to receiving the alert, to determine (e.g., by the determining unit 2916) whether the user activity level meets an activity criterion, and to delay generating the sensory output until the user activity level meets the activity criterion.
[0295] In some embodiments, the electronic device is configured to detect (e.g., via detection unit 2914) the intensity of a contact on the touch-sensitive display (e.g., on touch-sensitive surface unit 2926), and processing unit 2908 is further configured to detect the contact on the touch-sensitive display (e.g., via detection unit 2914) while the notification is displayed on display unit 2902 and determine (e.g., via determining unit 2916) whether a characteristic intensity of the contact exceeds a threshold intensity. In some embodiments, processing unit 2908 is further configured to enable (e.g., via display enabling unit 2918) the display of an option to suppress one or more subsequent alerts that meet the mute criterion in accordance with a determination that the characteristic intensity of the contact exceeds the threshold intensity. In some embodiments, processing unit 2908 is further configured to launch (e.g., via launching unit 2920) an application associated with the alert in accordance with a determination that the characteristic intensity of the contact is below the threshold intensity and in accordance with a determination that the contact is in a location on the touch-sensitive display that corresponds to an application affordance. In some embodiments, the mute criterion is based on a source of the alert.
[0296] In some embodiments, the processing unit 2908 is further configured to detect a second contact on the touch-sensitive display (e.g., via the detection unit 2914) while the notification is displayed, determine whether the second contact meets a removal criterion (e.g., via the determination unit 2916), and enable removal of the notification from the display (e.g., via the display enablement unit 2918) according to a determination that the second contact meets the removal criterion. In some embodiments, the second contact meets the removal criterion if the second contact includes a swipe. In some embodiments, the second contact meets the removal criterion if the second contact includes movement of the second contact beyond a threshold distance.
[0297] In some embodiments, enabling display of the notification includes enabling display of an animation that moves the notification in a first direction on the display unit, and the second contact meets the dismissal criteria if the second contact includes movement of the contact in a second direction opposite the first direction.
[0298] In some embodiments, the second contact includes a movement of the second contact and a release of the second contact, and the processing unit 2908 is further configured, in response to detecting the movement of the second contact, to enable (e.g., via the display enable unit 2918) sliding the notification on the display in accordance with the movement of the second contact and to enable (e.g., via the display enable unit 2918) display of a erase indicator adjacent to the notification. Optionally, the processing unit 2908 is further configured, in response to determining that the second contact meets the erase criterion and in response to detecting the release of the second contact, to enable (e.g., via the display enable unit 2918) removal of the erase indicator and removal of the notification from the display. Optionally, the processing unit 2908 is further configured, in response to determining that the second contact does not meet the erase criterion and in response to detecting the release of the second contact, to enable (e.g., via the display enable unit 2918) display of an animation moving the notification back to its initial position on the display and to enable removal of the erase indicator from the display.
[0299] In some embodiments, removing the notification includes displaying an animation moving the notification off the display in a second direction. In some embodiments, removing the notification from the display includes deactivating the display. In some embodiments, removing the notification from the display includes replacing the display of the notification with a display of a home screen, the home screen including an indication that the alert is unread. In some embodiments, removing the notification from the display includes replacing the display of the notification with a display of a clock face, the clock face including an indication that the alert is unread.
[0300] In some embodiments, the processing unit 2908 is further configured to: determine (e.g., by the determining unit 2916) whether a second user input has been detected within a second predetermined time interval from the display of the notification; enable (e.g., by the display enabling unit 2918) removal of the notification from the display in accordance with a determination that the second user input has been detected within the second predetermined time interval; and enable (e.g., by the display enabling unit 2918) display of a second portion of the information in accordance with a determination that the second user input has not been detected within the second predetermined time interval, wherein the second portion is different from the first portion.
[0301] In some embodiments, the processing unit 2908 is further configured to: determine (e.g., by the determining unit 2916) whether user input continues to be detected after a second predetermined time interval from the display of the notification; enable (e.g., by the display enabling unit 2918) display of a second portion of the information on the display unit in accordance with a determination that user input continues to be detected after the second predetermined time interval, wherein the second portion is different from the first portion; and enable (e.g., by the display enabling unit 2918) removal of the notification from the display unit in accordance with a determination that user input does not continue to be detected after the second predetermined time interval.
[0302] In some embodiments, processing unit 2908 is further configured to detect (e.g., via detection unit 2914) a third contact on the touch-sensitive display (e.g., on touch-sensitive surface unit 2926) while displaying the notification, and in response to detecting the third contact, enable display of a second portion of the information on display unit 2902 (e.g., via display enable unit 2918), the second portion being different from the first portion. In some embodiments, the second portion is displayed adjacent to the notification. In some embodiments, the third contact is a swipe in a first direction, and enabling display of the second portion of the information comprises sliding the second portion of the information on the screen in the first direction.
[0303] In some embodiments, enabling the display of the second portion of the information further includes obtaining (e.g., by the receiving unit 2910) configuration data indicating whether to display the second portion of the information, and enabling the display of the second portion of the information in response to determining that the configuration data indicates that the second portion of the information should be displayed.
[0304] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a selection of an application affordance while displaying the notification, and, in response to detecting the fourth contact, launch (e.g., via the launch unit 2920) an application associated with the alert.
[0305] In some embodiments, the alert is an electronic message, and the processing unit is further configured to detect a fourth contact on the touch-sensitive display (e.g., by the detection unit 2914) while the second portion of the information is being displayed, and in response to the fourth detection, enable display on the display unit (e.g., by the display enablement unit 2918) of at least a portion of the message conversation including the electronic message sent to and received from the source of the electronic message.
[0306] In some embodiments, the alert includes audio content, and displaying the second portion of the information includes displaying an option to play the audio content, and the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a selection of the option to play the audio content and, in response to detecting the selection, enable playback of the audio content (e.g., via the audio enablement unit 2924). In some embodiments, the audio content is first audio content, and the processing unit 2908, after detecting the selection of the option to play the first audio content, is further configured to receive (e.g., via the receiving unit 2910) a second alert including second audio content and, in response to receiving the second alert, enable playback of the second audio content (e.g., via the audio enablement unit 2924).
[0307] In some embodiments, processing unit 2908 is further configured to detect a third user input (e.g., via detection unit 2914) while displaying the second portion of the information, and in response to detecting the third user input, enable (e.g., via display enablement unit 2918) scrolling of the second portion of the information in accordance with the third user input. In some embodiments, the third user input is a swipe on the touch-sensitive display (e.g., on touch-sensitive surface unit 2926). In some embodiments, the third user input is a rotation of rotatable and depressible input mechanism 2906.
[0308] In some embodiments, the third user input is associated with a downward direction, and the processing unit 2908 is further configured to determine (e.g., by the determining unit 2916) whether a first portion of the information is displayed on the display unit 2902, and, in accordance with a determination that the first portion of the information is displayed and in response to detecting the third user input, enable (e.g., by the display enabling unit 2918) removal of a second portion of the information from the display unit.
[0309] In some embodiments, the third user input is associated with an upward direction, and the processing unit 2908 is further configured to determine (e.g., by the determining unit 2916) whether a last portion of the information is being displayed, and in accordance with determining that the last portion of the information is being displayed on the display unit 2902 and in response to detecting the third user input, enable (e.g., by the display enabling unit 2918) display of the first plurality of user interface objects on the display unit. Optionally, the user interface objects are associated with an action corresponding to an application associated with the alert. In some embodiments, when the information is scrolled upward on the display unit, the first plurality of user interface objects are scrolled upward on the display to below the last portion of the information.
[0310] In some embodiments, enabling removal of the second portion of the information from the display unit includes enabling replacing a display of the second portion of the notification on the display unit with a display of a home screen including a display of the time on the display unit, the home screen being displayed without an indication that the alert is unread. In some embodiments, enabling removal of the second portion of the information includes enabling sliding the second portion of the information off the display unit in a second direction.
[0311] In some embodiments, the electronic device is configured to detect an intensity of a contact on the touch-sensitive display (e.g., on touch-sensitive surface unit 2926), and processing unit 2908 is further configured to detect a fifth contact on the touch-sensitive display (e.g., via receiving unit 2914) and determine (e.g., via determining unit 2916) whether a characteristic intensity of the fifth contact exceeds a threshold intensity. In some embodiments, processing unit 2908 is further configured to: enable display of a first plurality of user interface objects on display unit 2902 (e.g., via display enabling unit 2918), where the user interface objects are associated with an action corresponding to an application associated with the alert, in accordance with determining that the characteristic intensity of the fifth contact is below the threshold intensity; and launch (e.g., via launching unit 2920) the application associated with the alert.
[0312] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a selection of a first user interface object of the first plurality of user interface objects, and, in response to detecting the selection of the first user interface object, transmit (e.g., via the transmission enabling unit 2922) data to the external electronic device to enable the external electronic device to launch (e.g., via the activation unit 2920) an application associated with the alert.
[0313] In some embodiments, the processing unit 2908 is further configured to determine (e.g., by the determining unit 2916) whether user input has been received within a third predetermined time interval while the second portion of the information is being displayed, and to deactivate (e.g., by the display enabling unit 2918) the display unit 2902 in accordance with a determination that user input has not been received within the third predetermined time interval.
[0314] In some embodiments, the notification is displayed on the display unit 2902 adjacent to the second portion of the information, the notification including an application affordance, and the processing unit 2908 is further configured to detect (e.g., by the receiving unit 2914) a selection of the application affordance while the second portion of the information is displayed, and in response to detecting the selection of the application affordance, enable display of a second plurality of user interface objects on the display unit (e.g., by the display enabling unit 2918).
[0315] In some embodiments, the processing unit 2908 is further configured to detect (e.g., by the receiving unit 2914) a selection of a first user interface object of the second plurality of user interface objects, and, in response to detecting the selection of the first user interface object, enable display of a third plurality of user interface objects on the display unit (e.g., by the display enabling unit 2918).
[0316] In some embodiments, the processing unit 2908 is further configured to detect an input on the button unit 2928 and, in response to detecting the input on the button unit 2928, enable display of a third plurality of user interface objects on the display unit (e.g., by the display enable unit 2918).
[0317] In some embodiments, the processing unit 2908 is further configured to detect (e.g., by the receiving unit 2914) a selection of a first user interface object of the third plurality of user interface objects, and in response to detecting the selection of the first user interface object of the third plurality of user interface objects, enable (e.g., by the display enabling unit 2918) on the display unit a display of a user interface for selecting a predetermined response message.
[0318] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the receiving unit 2914) a selection of the first predefined response message, and, in response to detecting the selection of the first predefined response message, enable (e.g., via the transmission enabling unit 2922) a transmission of the first predefined response message to the source of the alert.
[0319] In some embodiments, sending the first predefined response message to the source of the alert includes displaying a confirmation affordance; detecting a selection of the confirmation affordance; and, in response to detecting selection of the confirmation affordance, enabling sending of the first predefined response message to the source of the alert.
[0320] In some embodiments, the processing unit 2908 is further configured, after enabling the sending of the first predefined response message to the source, to enable (e.g., by the display enabling unit 2918) the display of a message sent confirmation screen on the display unit, and to enable replacing the display of the message sent confirmation screen with the display of a home screen, wherein the home screen is displayed on the display unit without an indication that the alert is unread.
[0321] In some embodiments, the processing unit 2908 is further configured to detect (e.g., by the receiving unit 2914) a selection of a second user interface object of the third plurality of user interface objects, and in response to detecting the selection of the second user interface object of the third plurality of user interface objects, enable (e.g., by the display enabling unit 2918) on the display unit a display of a user interface for selecting an emoji icon.
[0322] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the receiving unit 2914) a selection of the first emoji icon, and, in response to detecting the selection of the first emoji icon, enable (e.g., via the transmission enabling unit 2922) a transmission of the first emoji icon to a source of the alert. In some embodiments, enabling a transmission of the emoji icon to a source of the alert includes enabling a display of a confirmation affordance on the display unit 2902, detecting a selection of the confirmation affordance, and, in response to detecting the selection of the confirmation affordance, enabling a transmission of the emoji icon to the source of the alert.
[0323] In some embodiments, the processing unit 2908 is further configured to: detect (e.g., by the receiving unit 2914) a selection of a second user interface object of the second plurality of user interface objects; in response to detecting the selection of the second user interface object of the second plurality of user interface objects, determine (e.g., by the determining unit 2916) on the display unit 2902 whether a second portion of the information has been displayed; in accordance with a determination that the second portion of the information has been displayed, enable display of a home screen (e.g., by the display enabling unit 2918) on the display unit, wherein the home screen is displayed without an indication that the alert is unread; and in accordance with a determination that the second portion of the information has not been displayed, enable display of the home screen (e.g., by the display enabling unit 2918), wherein the home screen includes an indication that the alert is unread.
[0324] In some embodiments, the processing unit 2908 is further configured to: detect (e.g., by the receiving unit 2914) a selection of a second user interface object of the second plurality of user interface objects; in response to detecting the selection of the second user interface object of the second plurality of user interface objects, determine (e.g., by the determining unit 2916) whether a second portion of the information has been displayed on the display unit 2902; in accordance with a determination that the second portion of the information has been displayed, enable (e.g., by the display enabling unit 2918) a display of a clock face, wherein the clock face is displayed without an indication that the alert is unread; and in accordance with a determination that the second portion of the information has not been displayed, enable (e.g., by the display enabling unit 2918) a display of the clock face, wherein the clock face includes an indication that the alert is unread.
[0325] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the receiving unit 2914) a selection of a third user interface object of the second plurality of user interface objects, and, in response to detecting the selection of the third user interface object of the second plurality of user interface objects, enable display of a virtual keyboard on the display (e.g., via the display enabling unit 2918).
[0326] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a selection of a fourth user interface object of the second plurality of user interface objects, and in response to detecting the selection of the fourth user interface object of the second plurality of user interface objects, enable (e.g., via the audio enablement unit 2924) recording of audio input from the microphone unit, and enable (e.g., via the transmission enablement unit 2922) transmission of data corresponding to the recorded audio input to the source of the alert.
[0327] In some embodiments, enabling transmission of data corresponding to the recorded audio input includes enabling display of the recorded audio input and display of a send affordance on the display unit (e.g., by display enablement unit 2918), detecting selection of the send affordance, and in response to detecting selection of the send affordance, enabling transmission of the data corresponding to the recorded audio input to a source of the alert.
[0328] In some embodiments, the processing unit 2908 is further configured to detect a press on the rotatable and pressable input unit 2906 after launching the application (e.g., via the detection unit 2914), and in response to detecting the press, enable display of the home screen on the display unit (e.g., via the display enable unit 2918).
[0329] In some embodiments, the rotatable and depressible input unit 2906 is a rotatable mechanical button and a depression represents a press on the mechanical button, hi some embodiments, the rotatable and depressible input unit 2906 is a rotatable capacitive button and a depression represents a touch on the capacitive button.
[0330] In some embodiments, the notification is a first notification, and the processing unit 2908 is further configured to: receive (e.g., by the receiving unit 2910) a second alert including second information while the first notification is displayed on the display unit 2902; and, in response to receiving the second alert, enable (e.g., by the display enabling unit 2918) replacing the display of the first notification with the display of the second notification on the display unit, wherein the second notification includes a first portion of the second information.
[0331] In some embodiments, the processing unit 2908 is further configured to enable a second sensory output (eg, via the sensory output enablement unit 2912) in response to receiving the second alert.
[0332] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a request to dismiss the second notification, and, in response to detecting the request, enable (e.g., via the display enabling unit 2918) the dismissal of the second notification and enable re-display of the first notification on the display unit 2902.
[0333] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a request to dismiss the second notification; and, in response to detecting the request, enable dismissal of the second notification; and enable display of a home screen on the display unit (e.g., via the display enabling unit 2918), the home screen including an indication that the first alert and the second alert are unread.
[0334] In some embodiments, the processing unit 2908 is further configured to detect (e.g., via the detection unit 2914) a request to dismiss the second notification, and in response to detecting the request, enable dismissal of the second notification, and enable display of a clock face on the display unit 2902 (e.g., via the display enabling unit 2918), the clock face including an indication that the first alert and the second alert are unread.
[0335] In some embodiments, the processing unit 2908 is further configured to: receive (e.g., by the receiving unit 2910) a second alert including the second information while displaying the second portion of the information; and, in response to receiving the second alert, enable (e.g., by the display enabling unit 2918) on the display unit 2902 to replace the display of the second portion of the information with a display of a second notification, wherein the second notification includes the first portion of the second information.
[0336] In some embodiments, the alert is a first alert received from the source, and the processing unit 2908 is further configured to receive (e.g., via the receiving unit 2910) a second alert from the source while displaying the second portion of the information, and in response to receiving the second alert, enable (e.g., via the display enabling unit 2918) display of a grouped notification representing the first alert and the second alert. In some embodiments, the first alert and the second alert are associated with the same application.
[0337] In some embodiments, the processing unit 2908 is further configured to detect (e.g., by the detection unit 2914) a sixth contact on the grouped notifications, and in response to detecting the sixth contact, enable display on the display unit (e.g., by the display enablement unit 2918) of a list of alerts received from the source, where the list of alerts is associated with the same application.
[0338] In some embodiments, the alert is a fitness alert, and the processing unit 2908 is further configured to: enable (e.g., by the display enabling unit 2918) after a second predetermined time interval, replacing the display on the display unit 2902 of the notification with a display of a user interface object representing the fitness progress; and enable (e.g., by the display enabling unit 2918) after a third predetermined time interval, replacing the display on the display unit of the user interface object with a display of a second portion of the information, the second portion being different from the first portion.
[0339] 25 are optionally performed by the components shown in FIGS. 1A and 1B or 29. For example, receive operation 2502, generate operation 2504, detect operation 2506, determine operation 2508, and display operation 2510 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Event recognizer 180 of each application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first position on the touch-sensitive surface (or a rotation or other movement of the device) corresponds to a predefined event or sub-event, such as selecting an object on a user interface or rotating the device from one orientation to another. Upon detection of each predefined event or sub-event, event recognizer 180 activates event handler 190 associated with the detection of the event or sub-event. Event handler 190 optionally uses or invokes data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a respective GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes may be implemented based on the components shown in FIGS. 1A and 1B.
[0340] According to some embodiments, FIG. 30 illustrates a functional block diagram of an electronic device 3000 configured in accordance with the principles of the various described embodiments. The functional blocks of the device are optionally implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described embodiments. Those skilled in the art will understand that the functional blocks described in FIG. 30 may optionally be combined or separated into sub-blocks to implement the principles of the various described embodiments. Thus, the description herein optionally supports any possible combination or division or further definition of the functional blocks described herein.
[0341] 30 , electronic device 3000 includes a display unit 3002 configured to display a graphical user interface and a processing unit 3004 coupled to display unit 3002. In some embodiments, the electronic device optionally includes a touch-sensitive surface unit 3016 configured to receive touch input and coupled to display unit 3002 and processing unit 3004. In some embodiments, processing unit 3004 optionally includes a receiving unit 3006, a determining unit 3008, a display enabling unit 3010, a detecting unit 3012, and a sensory output enabling unit 3014.
[0342] The processing unit 3004 is configured to receive the plurality of alerts (e.g., via the receiving unit 3006) and, in response to receiving the plurality of alerts, determine (e.g., via the determining unit 3008) whether the plurality of alerts meet a grouping criterion. The processing unit 3004 is further configured to enable, in accordance with a determination that the plurality of alerts meets the grouping criterion, display on the display unit 3002 (e.g., via the display enabling unit 3010) a grouped notification representing the plurality of alerts, and to enable, in accordance with a determination that the plurality of alerts does not meet the grouping criterion, display on the display unit (e.g., via the display enabling unit 3010) a plurality of notifications representing the plurality of alerts.
[0343] In some embodiments, the grouping criteria is based on one or more criteria selected from the group consisting of whether multiple alerts are received from the same source, whether multiple alerts exceed a numeric alert threshold, whether multiple alerts are associated with the same application, and whether multiple alerts are received within a predetermined time period.
[0344] In some embodiments, the plurality of alerts include a first alert and a second alert received from the same source and associated with the same application, the first alert and the second alert meeting grouping criteria, the first alert including first information, and the second alert including second information, and the display unit is a touch-sensitive display unit. In some embodiments, processing unit 3004 is further configured to detect (e.g., by detection unit 3012) a seventh contact on the touch-sensitive display unit (e.g., on touch-sensitive surface unit 3016) at a location corresponding to the grouped notifications, and in response to detecting the seventh contact, enable display of the first information and the second information on display unit 3002 (e.g., by display enablement unit 3010).
[0345] In some embodiments, the first alert and the second alert are received from different sources and are associated with the same application, and processing unit 3004 is further configured to detect (e.g., by detection unit 3012) an eighth contact on the touch-sensitive display unit (e.g., on touch-sensitive surface unit 3016) at a location corresponding to the grouped notifications, and in response to detecting the eighth contact, enable display on display unit 3002 (e.g., by display enablement unit 3010) a list of alerts associated with the application, wherein the list of alerts includes the first alert and the second alert.
[0346] In some embodiments, the multiple alerts are associated with multiple applications, the multiple alerts match grouping criteria, and the display unit is a touch-sensitive display unit, and the processing unit 3004 is further configured to: enable (e.g., by the display enablement unit 3010) display of grouped notifications representing the multiple alerts; detect (e.g., by the detection unit 3012) a ninth contact on the touch-sensitive display at a location corresponding to the grouped notifications; and in response to detecting the ninth contact, enable (e.g., by the display enablement unit 3010) display of a list of notifications representing the multiple alerts, wherein the received alerts include the first alert and the second alert.
[0347] In some embodiments, the processing unit 3004 is further configured to enable a sensory output (e.g., via the sensory output enablement unit 3014) further in response to receiving the multiple alerts. In some embodiments, the processing unit 3004 is further configured to enable a single sensory output (e.g., via the sensory output enablement unit 3014) further in response to determining that the multiple alerts meet the grouping criteria, and to enable multiple sensory outputs corresponding to the multiple alerts (e.g., via the sensory output enablement unit 3014) further in response to determining that the multiple alerts do not meet the grouping criteria.
[0348] 26 are optionally performed by the components shown in FIGS. 1A and 1B or 30. For example, receive operation 2602, determine operation 2604, detect operation 2606, and display operations 2608 and 2610 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Event recognizer 180 of each application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface (or rotation or other movement of the device) corresponds to a predefined event or sub-event, such as selecting an object on a user interface or rotating the device from one orientation to another. Upon detection of each predefined event or sub-event, event recognizer 180 activates event handler 190 associated with the detection of the event or sub-event. Event handler 190 optionally uses or invokes data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a respective GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes may be implemented based on the components shown in FIGS. 1A and 1B.
[0349] According to some embodiments, Figure 31 shows a functional block diagram of an electronic device 3100 configured in accordance with the principles of the various described embodiments. The functional blocks of the device are optionally implemented by hardware, software, or a combination of hardware and software to carry out the principles of the various described embodiments. Those skilled in the art will understand that the functional blocks described in Figure 31 are optionally combined or separated into sub-blocks to implement the principles of the various described embodiments. Thus, the description herein optionally supports any possible combination or division or further definition of the functional blocks described herein.
[0350] 31 , the electronic device 3100 includes a touch-sensitive display unit 3102 configured to receive contacts and display a graphical user interface, and a processing unit 3104 coupled to the display unit 3102. In some embodiments, the processing unit 3104 optionally includes a receiving unit 3106, a display enabling unit 3108, and a detecting unit 3110.
[0351] The processing unit 3104 is configured to receive (e.g., via the receiving unit 3106) an alert including the information while the display unit is actively displaying the content, and in response to receiving the alert, enable (e.g., via the display enabling unit 3108) the display of a notification banner over a portion of the touch-sensitive display unit 3102, where the notification banner includes a first portion of the information and where at least a portion of the content continues to be displayed. The processing unit 3104 is further configured to detect a contact on the touch-sensitive display unit (e.g., via the detection unit 3110) at a location corresponding to the notification banner, and in response to detecting the contact, enable (e.g., via the display enabling unit 3108) the display of a second portion of the information on the display unit, where the second portion is different from the first portion.
[0352] 27 are optionally performed by components shown in FIGS. 1A and 1B or 31. For example, receive operation 2702, display operations 2704 and 2708, and detect operation 2706 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 in event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Event recognizer 180 of each application 136-1 compares the event information to a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface (or rotation or other movement of the device) corresponds to a predefined event or sub-event, such as selecting an object on a user interface or rotating the device from one orientation to another. Upon detection of each predefined event or sub-event, event recognizer 180 activates event handler 190 associated with the detection of the event or sub-event. Event handler 190 optionally uses or invokes data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a respective GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes may be implemented based on the components shown in FIGS. 1A and 1B.
[0353] The foregoing description has been set forth with reference to specific embodiments for purposes of explanation. However, the exemplary discussion above is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. These embodiments were chosen and described in order to best explain the principles of the invention and its practical application, and thereby enable others skilled in the art to best utilize the invention and its various embodiments with various modifications suitable for the particular uses contemplated.
[0354] [appendix] Raise gesture detection on device
[0355] [Background technology] The present disclosure relates generally to electronic devices, and more particularly to detecting certain categories of gestures made by a user wearing or otherwise operating an electronic device.
[0356] Users are increasingly relying on mobile technology. For example, many users now carry "smartphones," which combine cellular telephone technology with high-powered computing devices in a form factor small enough to fit in the user's hand while operating. These devices offer a variety of features, including cellular communication, messaging (e.g., SMS / MMS messaging or similar services), taking photos using built-in digital cameras, email, access to the World Wide Web, and a seemingly limitless array of specialized application programs ranging in functionality from personal information management (e.g., calendars, address books, to-do lists) to location-aware navigation and maps to games. These types of devices put a world of information and entertainment at the user's fingertips.
[0357] However, even smartphones are clearly inadequate to meet users' demands for easy access to information. Wearable technology is gaining considerable interest. It is hoped that by having a wearable device, users will be able to enjoy the benefits of more convenient mobile technology.
[0358] [Summary of the Invention] One obstacle preventing widespread adoption of wearable technology is that most existing wearable devices are not as convenient to use as smartphones. For example, wearable devices often have smaller form factors, which limit the size of the batteries that can be housed in the device, thereby limiting the amount of operating power available. To avoid wasting power, existing wearable devices typically shut down or power down various power-hungry components (e.g., displays) when the user is not actively interacting with the device.
[0359] Because the display and / or user input components are not always on, existing wearable devices typically require some preliminary user input, such as touching a button on the wearable device, to indicate that the user wants to use the device. This preliminary input can trigger the wearable device to activate its display and / or other power-consuming components. This preliminary interaction can make using the device feel unnatural or inconvenient, especially as opposed to the more natural and intuitive interactions users are accustomed to with older technologies. For example, anyone who has worn a watch is accustomed to lifting and / or rotating their wrist to check the time. For watch wearers, quickly lifting their wrist has become a natural, automatic motion. However, this natural motion only works with existing watches because the watch face is "always on"—all the user has to do to see the displayed information (usually the time) is to position the watch face within their line of sight. However, in more advanced electronic devices, such as wearable computing devices, an always-on display can constrain battery life to the point that it prevents the routine of wearing the device all day.
[0360] It may therefore be desirable for a wrist-wearable computing device to detect when a user raises the wrist on which the device is worn and automatically activate the device's display (and / or other components) in response to the movement, allowing users to obtain visual information from their wrist-wearable computing device as easily and intuitively as with existing wristwatches.
[0361] Some embodiments according to the present invention provide a computing device capable of detecting a raising gesture, such as a wrist-raising motion. For example, the device may include motion sensors, such as an accelerometer and / or a gyroscope, that can detect movement of the device in real time and infer information about the device's spatial orientation (e.g., by detecting gravitational acceleration acting on the device). Based on signals from the motion sensors, an algorithm running on the device can detect a "raising gesture," which can be defined as a pattern of movement indicating that a user is moving or has moved the device's display into their line of sight. In response to detecting such a gesture, the device can activate the device's display and / or other components (e.g., a touchscreen overlay, an audio processing subsystem, etc.). In some embodiments, the detection of a raising gesture may occur in multiple stages, and different components may be activated in different stages.
[0362] Various techniques can be used to detect a raise gesture. In some embodiments, a detection algorithm can be developed heuristically to take into account expected characteristics of both the “focus pose” (which may be the orientation of a wrist-worn computing device in which a user wearing the device would be able to see the device's display) and a particular starting pose (which may be the orientation of a wrist-worn computing device before the focus pose is assumed). Thus, for example, a raise gesture can be detected regardless of whether the user starts with their arms down (e.g., while standing or walking) or at their sides (e.g., while typing). Furthermore, a raise gesture detection algorithm can be optimized for a user's particular activity. For example, if a user is running, the natural movement of the user's arms may introduce noise into the data collected from a low-power motion sensor (e.g., an accelerometer), which may interfere with the detection of a raise gesture. An algorithm optimized for running could incorporate data from other sensors (e.g., gyro sensors) to help reliably detect the raise gesture without requiring the user to do anything different.
[0363] In some embodiments, a raise gesture detection algorithm can be executed on a low-power coprocessor (e.g., a motion coprocessor) of the device. This allows the device's main processor or central processing unit (also referred to herein as the application processor) to go into a low-power state or sleep state when the device is not being actively used, further reducing the device's power consumption. Detection of a raise gesture by an algorithm running on this coprocessor can be used to wake the application processor. In some embodiments, a separate "preheat" algorithm can be provided to determine whether to wake the application processor, which algorithm can operate independently of the raise gesture detection algorithm used to determine whether to activate the display and / or other user interface components.
[0364] Additionally, after the device has entered the focus position, the coprocessor can execute algorithms to determine when the device leaves the focus position, indicating that the user has stopped looking at the device. (It should be understood that the state of the device may not always coincide with the actual state of the user looking at the device, but the algorithms described herein can reliably, though not perfectly, achieve this.) Detecting that the device has left the focus position (also referred to herein as a focus loss event) can trigger various power saving measures, such as deactivating the display and / or other user interface components or allowing the application processor to go back to sleep.
[0365] In some embodiments, the coprocessor may execute wake control logic to determine when to begin or end execution of various algorithms for detecting a raise gesture event, a loss of focus event, and / or a preheat event. The wake control logic may also receive notifications of events detected by the various algorithms and coordinate corresponding notifications to other components of the device, such as an application processor and / or user interface components. For example, the wake control logic may notify the application processor when a raise gesture is detected, and the application processor may respond by activating a display and / or other user interface components.
[0366] A better understanding of the nature and advantages of the present invention may be had by reference to the following detailed description and accompanying drawings.
[0367] [Brief description of the drawing] FIG. 1A illustrates a typical use case of one embodiment of the present invention. FIG. 1B illustrates a typical use case of one embodiment of the present invention. FIG. 1C illustrates a typical use case of one embodiment of the present invention. FIG. 1D illustrates a typical use case of one embodiment of the present invention.
[0368] FIG. 2A is a block diagram illustrating components of a device according to one embodiment of the present invention.
[0369] FIG. 2B is a block diagram illustrating components of a device according to one embodiment of the present invention.
[0370] [Figure 3] An example of a device-relative coordinate system for a wrist-worn device.
[0371] FIG. 4 is a flowchart of a raise gesture detection process according to one embodiment of the present invention.
[0372] FIG. 5 is a flowchart of a process for validating a raise gesture using a gesture classifier according to one embodiment of the present invention.
[0373] FIG. 6 is a state diagram illustrating states of a raise gesture detection algorithm according to one embodiment of the present invention.
[0374] FIG. 7 is a functional block diagram of a natural raising gesture detection module according to an embodiment of the present invention.
[0375] FIG. 8 is a flowchart of another raise gesture detection process according to one embodiment of the present invention.
[0376] FIG. 9 is a functional block diagram of a natural raising gesture detection module according to an embodiment of the present invention.
[0377] FIG. 10A shows a use example of one embodiment of the present invention. FIG. 10B shows a use example of one embodiment of the present invention.
[0378] FIG. 11 is a flowchart of a process for detecting an intentional raising gesture according to one embodiment of the present invention.
[0379] FIG. 12 is a functional block diagram of an intentional raising gesture detection module according to one embodiment of the present invention.
[0380] FIG. 13 is a flowchart of a process for detecting a focus loss event according to one embodiment of the present invention.
[0381] FIG. 14 is a functional block diagram of a focus deactivation detection module according to one embodiment of the present invention.
[0382] FIG. 15 is a flowchart of a process for determining whether to wake an application processor according to one embodiment of the present invention.
[0383] FIG. 16 is a functional block diagram of a preheat detection module according to one embodiment of the present invention.
[0384] FIG. 17 is a state diagram illustrating states of wake control logic according to one embodiment of the present invention.
[0385] FIG. 18 is a flowchart of a process that can be implemented in wake control logic according to one embodiment of the present invention.
[0386] [Mode for Carrying Out the Invention] Embodiments according to the present invention can provide a natural interaction for users of devices, such as wrist-worn devices, whose displays are not always on. For example, a device can include motion sensors, such as an accelerometer and / or a gyroscope, that can detect movement of the device in real time and infer information about the device's spatial orientation (e.g., by detecting gravitational acceleration acting on the device). Based on signals from the motion sensors, algorithms running on the wearable computing device can detect a "raise gesture," which can be defined as a pattern of movement indicating that a user is moving or has moved the device's display into their line of sight. (It will be appreciated that the state of the device and whether the user is looking at the device may not always coincide, but the algorithms described herein can reliably, though not perfectly.) When such a gesture is detected, the wearable computing device can activate its display. Based on the detection of the raise gesture, other components, such as user input components (e.g., a touchscreen overlay, an audio processing subsystem, etc.), can also be activated. In some embodiments, the detection of the raise gesture can occur in multiple stages, and different components can be activated at different stages.
[0387] As used herein, a "wrist-wearable device" (or "wrist-wearable computing device") broadly refers to an electronic device whose form factor is suitable for wearing on a user's wrist and that can present information to and receive information from a user while worn on the user's wrist. In some embodiments, a wrist-wearable device can have a touchscreen display that visually presents information and receives user input as touch gestures made by the user's finger (or other user-operated implement) on the screen or specific areas on the screen. Other user interface components can be provided in addition to or instead of the touchscreen display. In some embodiments, a wrist-wearable device can operate as a standalone device (e.g., a device that is not in communication with other devices) or as a companion device to another electronic device with which it communicates. For example, a wrist-wearable device can be paired with a user's mobile phone or another of the user's personal electronic devices. A wrist-wearable device can also leverage or enhance the functionality of the other device, such as by notifying the user of incoming calls, messages, or other communications.
[0388] Wrist-wearable devices can be convenient for users. The device can be easily accessible by positioning the device on the wrist, minimizing or eliminating potential interference with the user's normal activities. The user can simply raise and / or rotate their wrist to bring the device's display into their line of sight. FIGS. 1A and 1B illustrate a typical use case in which a user 100 is wearing a wrist-wearable device 102, which has a display 104. In FIG. 1A, the user's arm 106 is in a natural position at the user's side, and the display 104 is not within the user's line of sight. In this position, the display 104 can be inactive (e.g., in a low-power or powered-off state so that information is not visible) without affecting the user experience. In FIG. 1B, the user 100 raises and rotates their arm 106 until the display 104 is within the user's line of sight. In this position, the display 104 is desirably active (e.g., powered on and illuminated so that the user can see the displayed information).
[0389] 1C and 1D illustrate another common use case in which a user 100 is engaged in an activity such as typing while wearing a wrist-wearable device 102. In FIG. 1C, the user's arm 106 is positioned to type on the keyboard 120, with the forearm nearly parallel to the ground and the wrist slightly pronated so that the fingers can reach the keys. In this position, similar to FIG. 1A, the display 104 can be deactivated without affecting the user experience. In FIG. 1D, the user 100 has slightly raised the arm 106 (enough so that the fingers are away from the keyboard 120) and further pronated the wrist to bring the display 104 into line of sight. In this position, similar to FIG. 1B, the display 104 is desirably active.
[0390] One option is to keep the display 104 active at all times. However, given that the display 104 consumes more power when active than when inactive, leaving the display 104 active when not in use may result in unnecessary drain on the battery powering the device 102. Another option is to activate the display 104 only in response to a user input. For example, a user may press a button on the device 102 to wake the display 104. However, this may reduce the usability of the device 102. For example, as shown in FIGS. 1A and 1B, pressing a button on the wrist-wearable device 102 may be inconvenient if the user is holding a bag 108 in their other hand.
[0391] According to several embodiments of the present invention, a device, such as a wrist-wearable device 102, can automatically detect when a user intends to look at the device. Based on such detection, the device can activate its display and / or other power-consuming components. In some embodiments, detecting when a user intends to look at the device can use a motion analysis algorithm running on a low-power coprocessor (e.g., a motion coprocessor) within the device. This can cause the device's main processor (e.g., an application processor) to sleep for at least some time, further conserving power. In some embodiments, the motion analysis algorithm can detect a category of movement (referred to herein as a "raise gesture") associated with a user intending to look at the device, such as raising and / or rotating the arm and / or wrist (e.g., the difference between the arm positions in FIGS. 1A and 1B, or 1C and 1D), and detection of a raise gesture or related movement can trigger various actions, such as activating a display. The raise gesture detection algorithm can be sensitive to a user's "start" posture, and a particular start posture may affect or alter the expected raise gesture. For example, the expected raise gesture may differ depending on whether the user's arm is initially in a down position (as shown in FIG. 1A) or in a bent elbow position (e.g., as shown in FIG. 1B). The algorithm can also be modified to work in high-motion environments, such as when the user is running, which may affect the type of useful data, starting posture, and / or the nature of the movements that make up the raise gesture.
[0392] In an example where a raise gesture can be detected based on natural movements associated with looking at a device, a user can naturally raise and / or rotate their wrist (e.g., as shown in FIG. 1B or 1D ) to bring the device's display into line of sight and immediately (or after a negligible delay) view the displayed information without having to quickly input anything into the device. However, in some situations, detecting a “natural” raise gesture in this manner may be impractical. Therefore, an “intentional” raise gesture can be defined, and detection of this intentional raise gesture can lead to activating the display and / or other components. An intentional raise gesture can be defined as a specific action that a user can perform with the intention of activating the device's display. The action can be defined based on assumptions about arm or wrist movements that a user would be relatively unlikely to make when not attempting to activate the display. For example, as described below, an intentional raise gesture can be defined as corresponding to two wrist oscillations within a short time span followed by the device stabilizing in a final position. Other definitions can also be used.
[0393] When it is determined that a user is attempting to look at a device, whether through detection of a natural raising gesture, an intentional raising gesture, or some other interaction between the device and the user, the device's user interface can be activated to allow the user to interact with the device. For example, the user can view information displayed on the device and manipulate input controls to provide information and / or commands to the device. When the user is looking at and interacting with the device, the user will likely hold the device in a relatively constant orientation. When the user finishes interacting, the user's arm will likely return to its starting position or another position where the device's display is not facing the user's line of sight. In some embodiments, a movement that would remove the device from the user's line of sight can be detected as a "defocus" gesture and can trigger various actions to conserve power, such as deactivating the display and / or other power-consuming components.
[0394] Additionally or alternatively, in some embodiments, a device's main processor (also referred to as an "application processor") can enter a low-power or "sleep" state to conserve power when the device is not being actively used. Completing the transition from the sleep state to a "wake" state (also referred to as "waking" the main processor) suitable for active use of the device may involve some latency. For this reason, it may be desirable to initiate waking of the main processor before the user actually looks at the device, without also waking the display or other user interface components. Some embodiments provide a "preheat" detection algorithm that can detect when a raise gesture is likely to be initiated and initiate waking of the main processor before the raise gesture is completed. This operation can result in faster response times when the user is actually looking at the device. The preheat detection algorithm can operate simultaneously with, and typically independently of, the raise gesture detection algorithm. For example, these algorithms can perform different analyses on the same received motion sensor data.
[0395] Raise gesture (including spontaneous and / or intentional raise gesture) and focus removal gesture detection can be implemented in a variety of electronic devices. FIG. 2A is a block diagram illustrating components of a device 200 according to an embodiment of the present invention. Device 200 may be, for example, an implementation of wrist-wearable device 102 shown in FIGS. 1A-1D . Device 200 may include a user interface 202, an application processor 204, a storage subsystem 206, a coprocessor 208, an accelerometer 210, and a gyroscope 212.
[0396] User interface 202 may incorporate hardware and software components that facilitate user interaction with device 200. Such components may be of generally known or other designs. For example, in some embodiments, user interface 202 may include a touchscreen interface that incorporates a display (e.g., LED-based, LCD-based, OLED-based, etc.) with a touch-sensitive overlay (e.g., capacitive or resistive) that can detect contact with a user's finger and / or other object. By touching specific areas of the screen, a user can indicate an intended action or respond to visual prompts from the device. Additionally or alternatively, user interface 202 may include audio components (e.g., speakers, microphones), buttons, knobs, dials, tactile input or output devices, etc.
[0397] The application processor 204 may be implemented using one or more integrated circuits (e.g., a programmable microcontroller or microprocessor with one or more cores) of generally conventional design or other design, and may be the primary processing subsystem of the device 200. The storage subsystem 206 may be implemented using memory circuits (e.g., DRAM, SRAM, ROM, flash memory, etc.) or other computer-readable storage media and may store program instructions for execution by the application processor 204, as well as data generated by or provided to the device 200 in the course of its operation. In operation, the application processor 204 may execute the program instructions stored in the storage subsystem 206 to control the operation of the device 200. For example, the processor 204 may run an operating system as well as various application programs dedicated to particular tasks (e.g., displaying the time, presenting information to or obtaining information from a user, communicating with paired devices, etc.). It will be appreciated that the application processor 204 may perform any necessary processing task, and that embodiments of the present invention may function independently of any particular application.
[0398] In the embodiments described herein, application processor 204 may have at least one "sleep" state in which activity (and power consumption) by application processor 204 may be reduced or minimized, and one "wake" state in which application processor 204 is fully operational. For example, while application processor 204 is in a sleep state, application processor 204 may suspend execution of applications and / or operating system programs and resume execution when it is again in a wake state.
[0399] Coprocessor 208, like application processor 204, can be implemented using one or more integrated circuits (e.g., microprocessors and / or microcontrollers) that may be of generally known design or of other designs. Coprocessor 208 can execute program code instructions stored therein as firmware or otherwise accessible to coprocessor 208, independent of whether application processor 204 is asleep or awake. In some embodiments, coprocessor 208 can consume significantly less power during active operation than application processor 204. In the examples described herein, coprocessor 208 can perform operations related to motion detection and analysis, including detecting raise and / or focus removal gestures. In some embodiments, coprocessor 208 can also perform other operations not described herein.
[0400] Coprocessor 208 can send a notification based on the analysis of the movement to application processor 204 via application processor interface 214, which can be a communications interface (e.g., a communications bus) of existing or other design. In some embodiments, this notification can include a signal to wake application processor 204 from a sleep state and / or activate user interface 202. In some embodiments, application processor interface 214 can also send raw or partially processed data from accelerometer 210 and / or gyroscope 212 to application processor 204.
[0401] To facilitate motion detection and analysis, coprocessor 208 may receive input from motion sensors built into device 200, such as accelerometer 210 and gyro sensor (also referred to as gyroscope) 212. Accelerometer 210 may be implemented using existing or other designs and may be capable of sensing acceleration of device 200 along one or more axes, including not only gravitational acceleration but also acceleration due to user movement. In some embodiments, accelerometer 210 may incorporate a three-axis low-power MEMS accelerometer and may provide acceleration data at a fixed sampling rate (e.g., 100 Hz). Gyroscope 212 may also be implemented using existing or other designs and may be capable of sensing changes in the orientation of device 200 along one or more axes. Gyroscope 212 may also provide orientation data at a fixed sampling rate (e.g., 100 Hz).
[0402] In the examples described herein, the accelerometer 210 and gyroscope 212 can be oriented within the device to define a device-relative coordinate system. FIG. 3 shows an example of a device-relative coordinate system for a wrist-wearable device 300 (which may be, for example, the wrist-wearable device 102 shown in FIGS. 1A and 1B ). The wrist-wearable device 300 can be secured to a user's wrist 302 by a strap or band 304 so that a display 306 is visible to the user. As shown, when the user is wearing the device 300, an x-axis can be defined substantially parallel to the user's forearm 308, a y-axis can be defined in the plane of the display 306 orthogonal to the x-axis, and a z-axis can be defined orthogonal to the plane of the display 306 (pointing towards the viewer). In some embodiments, the accelerometer can detect acceleration due to gravity as well as acceleration due to user movement. For example, if the forearm 308 is held horizontal, an accelerometer can detect the rotation of the user's wrist (or rotation of the wrist-wearable device 300 about the x-axis) as the change in the y-component of acceleration between a start time and an end time as the angle of the y-axis relative to the direction of gravity changes. A gyroscope can also be used to detect the rotation of the wrist as a rotation about the x-axis. The coordinate system shown in Figure 3 will be used throughout this disclosure, although it will be understood that other coordinate systems may be substituted.
[0403] 2A , in some embodiments, coprocessor 208 may include various modules (e.g., using software or firmware program code) that implement operations and algorithms for analyzing signals from accelerometer 210 and / or gyroscope 212. Some of these modules (variously referred to as “gesture modules” or “gesture detection modules”) may implement operations and algorithms related to detecting raise gestures and / or defocus gestures. For example, coprocessor 208 may include a “preheat” detection module 220 for detecting the possible start of a raise gesture, a first “main” detection module 222 for detecting natural raise gestures in a “low-motion” environment, a second main detection module 224 for detecting natural raise gestures in a “high-motion” environment, a “jiggle” detection module 226 for detecting intentional raise gestures, and a defocus module 228 for detecting when the user moves the device away from the expected line of sight. Examples of algorithms that may be implemented in modules 220, 222, 224, 226, and 228 are described below.
[0404] Wake control logic 230 can control the operation of analysis modules 220-228 and can receive gesture-state determinations reported by modules 220-228. For example, wake control logic 230 can determine which of modules 220-228 should be enabled at any given time based on the current gesture state and can selectively enable or disable various algorithms. Selectively disabling algorithms can reduce power consumption by coprocessor 208. Additionally, based on the gesture-state determinations, wake control logic 230 can send notifications to application processor 204 and / or user interface 202 via application processor interface 214.
[0405] In some embodiments, wake control logic 230 and / or motion analysis modules 220-228 may utilize additional support modules that can selectively or continuously execute algorithms or operations. For example, activity classifier 232 may receive data from accelerometer 210 and / or gyroscope 212 (as well as other sensors, such as physiological sensors, that may be present in device 200) and analyze this data to determine the type of activity the user is engaging in, such as walking, sitting or standing still, jogging, running, bicycling, or driving. Activity classifier 232 may be implemented with machine learning algorithms that identify characteristics associated with various types of activities, and these algorithms may be trained by collecting sensor data during the user's known activities prior to deployment of activity classifier 232.
[0406] In some embodiments, wake control logic 230 can use the output of activity classifier 232 to determine whether device 200 is in a "low-motion" environment (e.g., sitting, walking, or other relatively slow movement) in which low-dynamic main detection module 222 can be used, or a "high-motion" environment (e.g., running) in which high-dynamic main detection module 224 should instead be used. Wake control logic 230 can selectively enable or disable modules 222 or 224 depending on the type of environment indicated by activity classifier 232.
[0407] In some embodiments, the gesture classifier 234 can be used to confirm the detection of natural raise gestures detected by the main detection module 222 or 224. As described below, the main detection modules 222 and 224 can analyze the device's position as a function of time to detect raise gestures in a power-efficient manner. However, these algorithms can occasionally produce false positives as a result of user actions that resemble raising the device 200 until it is within line of sight, but do not actually involve such an action. For example, a user may be turning a door handle to open a door or lifting a glass to drink a drink. The gesture classifier 234 can be implemented with machine learning algorithms trained to reliably distinguish between raise gestures and other similar actions. In some embodiments, the gesture classifier 234 can be trained by collecting accelerometer and / or gyroscope data while a user performs specific actions (including not only raise gestures but also other similar actions) in situations where the specific actions performed can be recorded along with the accelerometer and / or gyroscope data. This information can be used to train an algorithm to generate an output that reliably distinguishes between a raise gesture and other similar actions. Thus, when main detection module 222 or 224 detects a gesture, the detection algorithm (or wake control logic 230) can provide associated feature data to gesture classifier 234 for subsequent confirmation or denial. Examples of uses for gesture classifier 234 are described below in connection with embodiments of main detection module 222. In some embodiments, gesture classifier 234 can run on application processor 204 when application processor 204 is in a awake state.
[0408] FIG. 2B is a block diagram illustrating components of a device 250 according to one embodiment of the present invention. Device 250 may be, for example, an implementation of wrist-wearable device 102 shown in FIGS. 1A-1D. Device 250 may include a user interface component 252, an application processing unit 254, a motion processing unit 258, and a motion sensor 260. User interface component 252 may be similar to or identical to user interface 202 (or components thereof, such as a touchscreen display) shown in FIG. 2A. Main processing unit 254 may be similar to or identical to application processor 204 shown in FIG. 2A. Motion sensor 260 may include one or more motion sensors that may be similar to or identical to accelerometer 210 and / or gyro sensor 212 shown in FIG. 2A. Other user interface components and / or motion sensors may also be used.
[0409] The motion processing unit 258 may be similar to or identical to the coprocessor 208 shown in FIG. 2A. The motion processing unit 258 may incorporate various gesture detection modules. For example, the preheat detection module 270 may be similar to or identical to the preheat detection module 220 shown in FIG. 2A. The natural detection module (low dynamic) 272 and the natural detection module (high dynamic) 274 may be similar to or identical to the main detection module (low dynamic) 222 and the main detection module (high dynamic) 224 shown in FIG. 2A. The intention detection module 276 may be similar to or identical to the jiggling detection module 226 shown in FIG. 2A. The focus deactivation detection module 278 may be similar to or identical to the focus deactivation detection module 228 shown in FIG. 2A. The activity classifier module 282 may be similar to or identical to the activity classifier 232 shown in FIG. 2A. The gesture classifier module 284 may be similar to or identical to the gesture classifier 234 shown in FIG. 2A. Additional or different modules may be included, and in some embodiments, more or fewer modules than shown.
[0410] It will be understood that devices 200 and 250 are illustrative and that variations and modifications are possible. Embodiments of device 200 or 250 may include other components in addition to or instead of those illustrated. For example, device 200 or 250 may include a power source (e.g., a battery) and power distribution and / or power management components. Device 200 or 250 may also include other sensors, such as a compass, a thermometer or other external temperature sensor, a Global Positioning System (GPS) receiver or the like for determining absolute position, a camera for capturing images, physiological sensors (e.g., pulse sensors, blood pressure sensors, skin conductance sensors, skin temperature sensors, etc.). Device 200 or 250 may include communications components to enable communication with other devices, including personal devices and / or network access devices. For example, device 200 or 250 may include an RF transceiver and associated protocol stacks implementing one or more wireless communication standards (e.g., the Bluetooth standard, the IEEE 802.11 family of standards, cellular data network data standards such as 3G, LTE, etc.). Additionally or alternatively, device 200 or 250 may include a wired communication interface, such as a receptacle connector (eg, supporting USB, UART, Ethernet, or a wired communication protocol).
[0411] Furthermore, while devices 200 and 250 are described with reference to particular blocks, it will be understood that these blocks are defined for convenience of explanation and are not intended to imply any particular physical configuration of components. Moreover, these blocks need not correspond to physically separate components; the same physical components may be used to implement aspects of multiple blocks. The blocks may be configured to perform various operations, for example, by programming a processor or by providing appropriate control circuitry, and the various blocks may or may not be reconfigurable depending on how the initial configuration was achieved. Embodiments of the present invention may be realized in a variety of devices, including electronic devices implemented using any combination of circuitry and software. Furthermore, it will be understood that devices 200 and 250 are completely interchangeable, and any discussion referring to device 200 (or its components) also applies to device 250.
[0412] In operation, coprocessor 208 may be “always on” (e.g., whenever device 200 is worn), and wake control logic 230 may selectively activate (or enable) any or all of modules 220, 222, 224, 226, and 228, depending, for example, on whether the user is looking at the device. These algorithms may detect and report various gesture-state events, including raise gestures, preheat events, focus removal events, and the like. Specific examples are described below. Once an algorithm reports an event, wake control logic 230 may notify application processor 204 of the event via application processor interface 214. In response to the event, application processor 204 may take various actions, such as transitioning from a sleep state to a wake state and / or transitioning components of user interface 202 between active and inactive states.
[0413] Specific examples of algorithms for detecting gesture-related events are described below. As used herein, a "gesture-related event" generally refers to any gesture-related transition detected by a module or algorithm, such as modules 220, 222, 224, 226, or 228. Examples of such events include a raise gesture (including identifying "potential," "detected," and / or "confirmed" raise gestures, as described below), a preheat gesture, and / or a focus removal gesture. Algorithms of the type described below can be implemented, for example, by providing a programmable processor (e.g., coprocessor 208) with suitable program code and / or by providing dedicated logic circuitry to perform the described operations.
[0414] In some embodiments, the raise gesture detection algorithm can proceed through a series of states that increase confidence that a raise gesture has occurred. For example, the raise gesture detection algorithm can select a set of motion sensor data samples (including accelerometer and / or gyro sensor data) that corresponds to a time span of interest (e.g., the time it would likely take a user to perform a raise gesture). By considering the oldest sample or samples in the set, the algorithm can determine a "start pose" that can reflect the spatial orientation of the device at the beginning of the time span. This orientation can be determined relative to an assumed vertical axis of gravity. Based on the start pose, the algorithm can determine an amount and / or one or more directions of movement that would likely occur to bring the device's display into the user's line of sight (also referred to as the device being in a "focus pose"). This amount and / or one or more directions of movement that would likely occur can be expressed as criteria for identifying a "potential" raise gesture, and these criteria can be used to identify whether a potential raise gesture has occurred based on some or all of the set of motion sensor data samples. Additionally, a potential raise gesture can be identified as a "detected" raise gesture by determining whether a device that has reached the focus pose remains in the focus pose for at least a minimum amount of time. If necessary, further confirmation can be performed using a gesture classifier. The raise gesture detection algorithm can notify other components of the device whenever it identifies a potential raise gesture, a detected raise gesture, and / or a confirmed raise gesture.
[0415] As an example of a step-by-step approach to raise gesture detection, Figure 4 is a flowchart of a raise gesture detection process 400 according to one embodiment of the present invention. Process 400 can be implemented, for example, in main detection (low dynamics) module 222 shown in Figure 2A. Raise gesture detection process 400 can progress through a series of gesture states (potential, detected, confirmed) and can report each state transition to, for example, wake control logic 230 shown in Figure 2A. As described below, wake control logic 230 can use the gesture state transitions to determine whether and when to wake application processor 204 and / or whether and when to command application processor 204 to activate user interface 202.
[0416] The process 400 may begin when the user interface 202 is in an inactive state (block 402). At this time, the application processor 204 may be asleep or awake as needed. The accelerometer 210 may provide updated data at a constant sampling rate (e.g., 100 Hz), which may be expressed as vector components of acceleration (a x , a y , a z ) The received data can be buffered using, for example, a circular buffer or a FIFO.
[0417] At block 404, process 400 may read data samples from the accelerometer data buffer. The amount of data may depend on the desired time span and sampling rate for analyzing the movement. For example, process 400 may read data corresponding to a fixed span or window of time (e.g., 0.5 seconds, 1 second, etc.).
[0418] In block 406, process 400 can estimate a starting orientation of the device, such as based on the oldest sample read from the buffer, which may correspond to the beginning of a time span. In some embodiments, the accelerometer measurements include gravitational acceleration (1 g in a direction depending on the device's orientation). Thus, if other accelerations are relatively small, the device's orientation relative to gravity can be determined based on the accelerometer data. For example, in the arms-down position shown in FIG. 1A, the accelerometer 210 may measure a gravitational acceleration of approximately 1 g. x Detects and detects a y and a z In the typing position shown in FIG. 1C, accelerometer 210 may detect an a x , a between 0 and 1g y , a between 0 and -1g z Thus, block 406 may include comparing the oldest sample (e.g., an average of 5-10 samples) to a sample pattern associated with a particular "reference" starting posture. The reference starting posture may be defined before device deployment, for example, based on accelerometer measurements collected under conditions where the person wearing the device is known to be in a particular posture (e.g., the posture shown in FIG. 1A or 1C). In some embodiments, the starting posture may be defined as a blend of reference starting postures. For example, the blend may be defined as a weighted average of reference starting postures, with the weight of each reference starting posture being based on how similar the measured device orientation is to the device orientation associated with the reference starting posture.
[0419] In block 408, based on the inferred starting posture, process 400 can select criteria for identifying "possible" raise gestures to be performed from that starting posture. Different criteria may be defined for different starting postures. For example, if the starting posture is with the arms down (e.g., as shown in FIG. 1A), a raise gesture is expected to involve lifting the forearm and rotating the wrist, both of which are primarily a x and ay It can be detected by referring to the change in a z Some effect on the tactile response may also be expected. If the starting position is a typing position (e.g., as shown in Figure 1C), the forearm lifts very little or not at all (resulting in a x There may be a small change in the slope (a) but perhaps a change in the slope. This can be detected most reliably by y As a change in . Other criteria that can be derived from the buffered accelerometer data may be used, such as a parameter that quantifies the smoothness of the movement (assuming that an intentional gesture is made smoothly, as opposed to accidental shaking or other random movements that a user may experience). In some embodiments, a set of criteria for identifying possible raise gestures given a starting pose may be heuristically established. For example, multiple users may be asked to make a raise gesture from a particular starting pose, and accelerometer data obtained during the movement from the starting pose to the completion of the raise gesture may be collected. Specific criteria (e.g., a y Statistical algorithms can be applied to analyze this data to identify thresholds (e.g., thresholds for change in motion, smoothness of movement, etc.). Criteria at this stage can be coarse enough to keep false negatives relatively low, but allow for false positives. To establish pose-dependent threshold criteria, heuristic exercises can be repeated any number of times for reference starting poses. In some embodiments, once a starting pose is inferred in block 406, results of the analysis can be used to generate a table of criteria such that a corresponding set of criteria for identifying potential raising gestures can be selected from the table in block 408. In some embodiments, a starting pose can be defined as a blend of multiple reference starting poses, in which case block 408 can include blending selection criteria defined for multiple reference starting poses.
[0420] In block 410, process 400 may determine whether a possible raise gesture has been identified, e.g., whether the criteria selected in block 408 are met. In some embodiments, this determination may include comparing particular accelerometer data samples and / or other parameters calculated from the accelerometer data samples to threshold criteria selected in block 408, and a possible raise gesture is detected if the threshold criteria are met. Furthermore, if a raise gesture is being performed, upon completion of the gesture, the device may be assumed to be resting in an orientation consistent with its display being within the user's line of sight. To this end, block 410 may include inferring an ending pose of the device based on, for example, the most recent sample read from the buffer, which may correspond to the end of a time span. This ending pose may be compared to a range of poses consistent with the display being within the user's line of sight (e.g., a range of tilt angles in the y and / or x directions relative to the horizontal), and if the ending pose falls within this range, a possible raise gesture is detected. The term "focus pose" is used herein to collectively refer to a range of poses that are considered consistent with the device being in the user's line of sight (e.g., based on tilt angle).
[0421] If a possible raise gesture is not detected, process 400 may return to block 404 to read additional accelerometer data. As described above, the data read in block 404 may be a fixed-length window corresponding to a fixed width in real time. Successive data windows read during successive iterations of block 404 may overlap. For example, if the window corresponds to one second in real time, successive iterations may occur every 0.1 seconds, etc. (Alternatively, a faster rate may be used; as long as the window shifts by at least one sample with each iteration, analysis in successive iterations of blocks 406 and 408 is not redundant.) This reduces the likelihood of false negatives due to window effects.
[0422] If a potential raise gesture is detected in block 410, then in block 412, the process 400 may notify the wake control logic 230 that a potential gesture was detected. As described below, the wake control logic 230 may take action in response to this notification, such as notifying the application processor 204 and / or the user interface 202. In block 414, the process 400 may monitor additional accelerometer data samples (e.g., including newly received samples outside the original window) to detect whether the device remains in the focus posture (e.g., remains in approximately the same position) or continues to move. For example, as described above, the focus posture may be determined based on a particular range of tilt angles expected while the user is looking at the device. The tilt angle may be estimated from the accelerometer data, and if the tilt angle reaches and remains within this range, that state may correspond to remaining in the focus posture.
[0423] In some embodiments, the range of accelerometer data values corresponding to the focus posture may depend, at least in part, on the starting posture. For example, the transition from the starting posture to the focus posture may involve accumulating a certain amount of tilt along the y-axis (also referred to herein as "y-tilt"). For example, the accumulated y-tilt may be greater than or equal to 0 for the first a (while the user's wrist is deflected) y component (when the wrist is rotated to point the display towards the user's eyes) y The y-tilt can be measured as a net change in the component y. Block 414 can include monitoring whether the y-tilt remains constant, continues to accumulate, or reverses direction, and if the y-tilt no longer accumulates, it may indicate movement out of focus pose.
[0424] Process 400 may monitor the duration at block 414 until the duration reaches or exceeds a threshold (e.g., 0.1 seconds, 0.5 seconds, etc.) or until the accelerometer data indicates that the focus posture is no longer in place. At block 416, if the focus posture is no longer in place before the duration reaches the threshold, process 400 may return to block 404 to determine a new starting posture and attempt to detect another possible raise gesture.
[0425] If the duration in the focus pose exceeds a threshold at block 416, the potentially previously detected raise gesture may be reclassified as a detected raise gesture. At block 418, process 400 may notify wake control logic 230 that a detected raise gesture has occurred. As described below, wake control logic 230 may take action in response to this notification, such as activating user interface 202 or notifying application processor 204.
[0426] In some embodiments, further confirmation of the raise gesture may be desirable to reduce false positives. Thus, after detecting a raise gesture at block 420, process 400 may invoke a further analysis process, such as gesture classifier 234 shown in FIG. 2A . As described above, gesture classifier 234 may be a machine learning algorithm pre-trained to distinguish raise gestures from other similar gestures. Gesture classifier 234 may analyze the data provided by process 400 at block 420 to either confirm or negate the detected raise gesture. If a raise gesture is confirmed at block 422, process 400 may notify wake control logic 230 accordingly at block 424, after which process 400 may terminate (block 426). If a raise gesture is not confirmed at block 422, process 400 may so notify wake control logic 230 at block 428, after which process 400 may return to block 404 to attempt to detect another possible raise gesture. In some embodiments, after terminating at block 426, process 400 may be restarted (at block 402) at any time, such as when a loss of focus is detected (as described below) or when user interface 202 becomes inactive for some reason.
[0427] 5 is a flowchart of a process 500 for verifying a gesture using a gesture classifier according to one embodiment of the present invention. Process 500 may be used in conjunction with process 400 shown in FIG. 4, described above. Process 500 may be performed, for example, by main gesture detection module 222, which may invoke gesture classifier 234.
[0428] Process 500 may begin at block 502 when the main gesture detection module 222 detects a raise gesture, for example, at block 416 of process 400. At block 504, the main gesture detection module 222 may assign a confidence score to the detected raise gesture. In some embodiments, the confidence score may be based on a combination of how well the device pose matches the expected characteristics of the focus pose (e.g., whether the device pose is near the end or center of the range of accelerometer data values and / or tilt values expected for the focus pose) and the length of time that the focus pose lasts.
[0429] In block 506, process 500 can select a salient starting point (in time) for the gesture classifier. This salient starting point can be selected based on the trend of accelerometer data samples leading to a focus pose. For example, process 500 can identify when accelerometer data samples begin to change in a manner indicative of a raise gesture. This allows process 500 to account for the fact that users can perform a raise gesture at different speeds. If the user moves quickly, the salient starting point will be closer to the present (i.e., the most recent sample) than if the user moves slowly. In this manner, the window of data relevant to gesture classification can be variable.
[0430] At block 508, process 500 may extract features of interest for the gesture classifier from a window of data extending from a prominent starting point to the present. The features of interest for a raise gesture may depend on how the gesture classifier was trained. In some embodiments where the gesture classifier operates based on accelerometer data, the features of interest may include actual accelerometer samples (a x , a y , a z), a smoothness parameter (e.g., based on the standard deviation of the change between successive accelerometer samples), the accumulated tilt as a function of time (e.g., y tilt), and the start and end device orientation or posture (e.g., start and end tilt values). In some embodiments where the gesture classifier operates based on gyroscope data, features of interest include the actual gyroscope samples (r x , r y , r z ), the length of the arc across the horizontal plane (i.e., perpendicular to the direction of gravity), and a smoothness parameter (e.g., based on the standard deviation of the change between successive gyroscope samples).
[0431] At block 510, process 500 may invoke gesture classifier 234 to process the extracted features. In some embodiments, gesture classifier 234 may be a Bayesian classifier that performs linear discriminant analysis. As described above, the linear discriminant analysis algorithm may be trained prior to deployment, allowing gesture classifier 234 to quickly calculate the probability that a feature corresponds to a raise gesture. At block 512, process 500 may receive output from gesture classifier 234. This output may include, for example, a probability (between 0 and 1) that a raise gesture was made.
[0432] At block 514, process 500 may determine whether a raise gesture has been confirmed. In some embodiments, this determination may be based on a threshold on the probability output of the gesture classifier 234, which may be set at, for example, 0.5, 0.75, 0.85, or some other threshold as desired. A larger threshold typically results in fewer false positives but more false negatives, and an optimal threshold may be selected based on the level of false positives and / or false negatives that is acceptable for a given implementation. In some embodiments, the threshold may be selected as a function of the confidence score assigned at block 504. For example, a larger confidence score at block 514 may result in a smaller threshold for the probability assigned by the gesture classifier, and a smaller confidence score may result in a larger threshold for the probability assigned by the gesture classifier.
[0433] At block 516, process 500 may determine whether to make a decision or wait for more data. For example, if the gesture is not confirmed but the probability output from the gesture classifier is close to a threshold, it may be preferable to wait for additional data. In this case, process 500 may end at block 518 without confirming or denying the raise gesture, and control may return to block 414 of process 400 described above. Alternatively, process 500 may end at block 520 with either a confirmation or a denial, and control may return to block 422 of process 400 described above.
[0434] It will be understood that process 500 is exemplary and that variations and modifications are possible. Steps described as sequential may be performed concurrently, the order of steps may be changed, and steps may be modified, combined, added, or omitted. For example, other verification algorithms may be used. In some embodiments, process 500 may always make a verification or denial determination without the option to wait.
[0435] In some embodiments, a confirmation or denial by the gesture classifier 234 may alter the behavior of the device. For example, activation of some or all user interface components may be postponed until a detected raise gesture is confirmed. As another example, if a user interface component is activated in response to a detected raise gesture, a subsequent denial by the gesture classifier 234 may cause the user interface component to be deactivated.
[0436] 6 is a state diagram illustrating gesture states of raise gesture detection module 222 executing process 400 according to one embodiment of the present invention. Transitions between these states can be reported to wake control logic 230 or otherwise used to affect the state of user interface 202 and / or other components of device 200.
[0437] State 602 may be a "null" state in which gesture detection module 222 has not yet detected a possible raising gesture. This may be the initial state of process 400 of FIG. 4, for example, and module 222 may remain in this state until a possible raising gesture is detected (e.g., at block 410 of FIG. 4). State 604 may be a "potential gesture" state in which module 222 has detected a possible raising gesture (e.g., at block 410 of FIG. 4). If the possible raising gesture is subsequently rejected, module 222 may return to null state 602. When the possible raising gesture becomes a detected raising gesture (e.g., at block 416 of FIG. 4), module 222 may transition to "detected gesture" state 606, reflecting an increased confidence that a raising gesture is occurring. While in state 606, further analysis may be performed (e.g., at blocks 420 and 422 of process 400) to confirm a detected raise gesture. If a detected raise gesture is not confirmed, module 222 may return to null state 602. If a detected raise gesture is confirmed, module 222 may transition to confirmed gesture state 608. At this point, detection of the raise gesture ends and further execution of module 222 may cease. As described above, module 222 may be restarted once detection of the raise gesture becomes useful again (e.g., focus loss is detected or user interface 202 otherwise becomes inactive). Additionally, as described below, once confirmed gesture state 608 is reached, other algorithms, such as focus loss detection module 228, may continue to monitor the gesture state to detect a transition from confirmed gesture state 608 to null state 602. It will be appreciated that process 400 provides an example of module 222 providing states and transitions in FIG. 6, but other algorithms may be substituted.
[0438] 7 is a functional block diagram of a natural raising gesture detection module 700 according to one embodiment of the present invention. As shown, the natural raising gesture detection module 700 may be implemented within the motion processing unit 258 of FIG. 2B , for example, as the natural raising gesture detection module 272. The natural raising gesture detection module 700 may also be implemented as the main (low dynamic) detection module 222 of FIG. 2A . The natural raising gesture detection module 700 may include a starting pose estimation unit 702, a reference determination unit 704, a potential raising gesture determination unit 706, a detected raising gesture determination unit 708, and a confirmation unit 710. Each unit may be implemented using program code executable on a processor and / or dedicated logic circuitry, for example.
[0439] The starting pose estimation unit 702 may receive the motion sensor data and estimate a starting pose based on the motion sensor data. For example, the starting pose estimation unit 702 may implement block 406 of process 400 described above. The starting pose estimation unit 702 may provide the estimated starting pose to the reference determination unit 704.
[0440] The criterion determination unit 704 may determine a criterion for detecting a possible raise gesture based at least in part on the starting pose inferred by the starting pose inferring unit 702. For example, the criterion determination unit 704 may implement block 408 of process 400 described above. The criterion determination unit 704 may provide the criterion for detecting a possible raise gesture to the possible raise gesture determination unit 706.
[0441] The potential raise gesture determination unit 706 may receive the motion sensor and determine whether the received data meets the criteria determined by the criteria determination unit 704. For example, the potential raise gesture determination unit 706 may implement block 410 of process 400 described above. If the criteria are met, the potential raise gesture determination unit 706 may notify other system components (e.g., wake control logic 230 of FIG. 2A or wake control logic module 280 of FIG. 2B). For example, the potential raise gesture determination unit 706 may implement block 412 of process 400 described above. The potential raise gesture determination unit 706 may also notify the detected raise gesture determination unit 708 if the criteria are met.
[0442] The detected raise gesture determination unit 708 may receive notification of a possible raise gesture from the possible raise gesture determination unit 706 and may additionally monitor accelerometer data to determine whether a minimum duration occurs and / or o...
Claims
1. 1. A method comprising: In an electronic device having a display, receiving an alert containing the information; responsive to receiving the alert, generating a sensory output; Detecting a user input; determining whether the user input is detected from the sensory output within a predetermined time interval; displaying a notification on the display in response to determining that the user input is detected within the predetermined time interval, the notification including a first portion of the information; and A method comprising:
2. The method of claim 1 , wherein the electronic device includes a haptic mechanism, and wherein emitting the sensory output includes causing the haptic mechanism to emit a haptic output.
3. 3. The method of claim 1 or 2, further comprising: displaying a clock face in accordance with a determination that the user input is detected from the sensory output after the predetermined time interval, the clock face including an indication that the alert is unread.
4. 3. The method of claim 1 or 2, further comprising: displaying a home screen in accordance with a determination that the user input is detected from the sensory output after the predetermined time interval, the home screen including a plurality of user interface objects representing a plurality of applications, the user interface objects launching a corresponding application when activated, and the home screen including an indication that the alert is unread.
5. The method of claim 1 , wherein displaying the notification comprises activating the display from an inactive state.
6. The method of claim 1 , wherein displaying the notification comprises replacing a display of a home screen with a display of the notification.
7. The method of claim 1 , wherein displaying the notification comprises displaying an animation that causes the notification to move in a first direction on the display.
8. The notification includes an application affordance for launching an application associated with the alert, and the method further comprises: Detecting a selection of the application affordance; and In response to detecting the selection, launching the application associated with the alert; and The method of claim 1 , further comprising:
9. responsive to receiving the alert, determining whether a user activity level meets an activity criterion; The method of claim 1 , further comprising delaying generation of the sensory output until the user activity level meets the activity criterion.
10. The display is a touch-sensitive display and the device is configured to detect an intensity of a contact on the touch-sensitive display, the method comprising: detecting a contact on the display while the notification is being displayed; determining whether a characteristic intensity of the contact exceeds a threshold intensity; displaying an option for suppressing one or more subsequent alerts that meet a mute criterion in accordance with a determination that the characteristic intensity of the contact exceeds the threshold intensity; launching the application associated with the alert in accordance with a determination that the characteristic intensity of the contact is below the threshold intensity and in accordance with a determination that the contact is in a location on the display that corresponds to the application affordance; The method of claim 1 or 2, further comprising:
11. The method of claim 10 , wherein the muting criteria is based on a source of the alert.
12. the display is a touch-sensitive display, and the method comprises: detecting a second contact on the touch-sensitive display while the notification is being displayed; determining whether the second contact meets an erasure criterion; and removing the notification from the display in accordance with a determination that the second contact meets the removal criteria; and The method of claim 1 , further comprising:
13. The method of claim 12 , wherein the second contact meets the erase criterion if the second contact comprises a swipe.
14. The method of claim 12 or 13, wherein the second contact meets the erasure criterion if the second contact includes a movement of the second contact that exceeds a threshold distance.
15. 15. The method of claim 12, wherein displaying the notification includes displaying an animation moving the notification in a first direction on the display, and the second contact meets the dismissal criterion if the second contact includes movement of the contact in a second direction opposite the first direction.
16. the second contact includes moving the second contact and releasing the second contact, the method further comprising: in response to detecting the movement of the second contact, sliding the notification on the display in accordance with the movement of the second contact; displaying a dismissal indicator adjacent to the notification; removing the dismissal indicator and the notification from the display in response to determining that the second contact meets the dismissal criteria and in response to detecting the release of the second contact; in response to determining that the second contact does not meet the erasure criterion and in response to detecting the release of the second contact, displaying an animation of the notification moving on the display back to its initial position; removing the erase indicator from the display; and 16. The method of any one of claims 12 to 15, further comprising:
17. The method of claim 15 or 16, wherein removing the notification comprises displaying an animation of the notification moving in the second direction off the display.
18. 18. The method of claim 12, wherein removing the notification from the display comprises deactivating the display.
19. 18. The method of claim 12, wherein removing the notification from the display includes replacing a display of the notification with a display of a home screen, the home screen including an indication that the alert is unread.
20. 18. The method of any one of claims 12 to 17, wherein removing the notification from the display includes replacing the display of the notification with a display of a clock face, the clock face including an indication that the alert is unread.
21. determining whether a second user input is detected within a second predetermined time interval after displaying the notification; removing the notification from the display in accordance with determining that the second user input was detected within the second predetermined time interval; displaying a second portion of the information in response to a determination that the second user input has not been detected within the second predetermined time interval, the second portion being different from the first portion; and The method of claim 1 , further comprising:
22. determining whether the user input continues to be detected a second predetermined time interval after displaying the notification; displaying a second portion of the information in response to a determination that the user input continues to be detected after the second predetermined time interval, the second portion being different from the first portion; and removing the notification from the display in response to a determination that the user input has not continued to be detected after the second predetermined time interval; The method of claim 1 , further comprising:
23. detecting a third contact on the display while displaying the notification; in response to detecting the third contact, displaying a second portion of the information, the second portion being different from the first portion; and The method of claim 1 , further comprising:
24. 24. The method of claim 22 or 23, wherein the second portion is displayed adjacent to the notification.
25. 24. The method of claim 23, wherein the third contact is a swipe in the first direction and displaying the second portion of the information comprises sliding the second portion of the information across the screen in the first direction.
26. Displaying the second portion of the information obtaining configuration data indicating whether to display the second portion of the information; displaying the second portion of the information in response to determining that the configuration data indicates that the second portion of the information should be displayed; and 24. The method of claims 21 to 23, further comprising:
27. Detecting a selection of the application affordance while displaying the notification; and In response to detecting a fourth contact, launching an application associated with the alert; and The method of claim 1 , further comprising:
28. the alert being an electronic message, and the method further comprising: detecting a fourth contact on the display while the second portion of the information is being displayed; In response to detecting the fourth contact, displaying at least a portion of a message conversation including electronic messages sent to and from a source of the electronic messages; 26. The method of any one of claims 21 to 25, further comprising:
29. the alert includes audio content, and displaying the second portion of the information includes displaying an option to play the audio content, the method further comprising: detecting a selection of the option to play the audio content; In response to detecting the selection, playing the audio content; and 25. The method of any one of claims 20 to 24, further comprising:
30. the audio content is a first audio content, and the method further comprises: receiving a second alert including second audio content after detecting a selection of the option to play the first audio content; in response to receiving the second alert, playing the second audio content; 30. The method of claim 29, further comprising:
31. detecting a third user input while displaying the second portion of the information; and in response to detecting the third user input, scrolling the second portion of the information in accordance with the third user input; 26. The method of any one of claims 21 to 25, further comprising:
32. The method of claim 31 , wherein the third user input is a swipe on the display.
33. 32. The method of claim 31, wherein the device includes a rotatable input mechanism and the third user input is a rotation of the rotatable input mechanism.
34. the third user input is associated with a downward direction, and the method further comprises: determining whether a first portion of the information is being displayed; removing the second portion of the information from the display in response to determining that the first portion of the information is being displayed and in response to detecting the third user input; 34. The method of any one of claims 31 to 33, further comprising:
35. the third user input is associated with an upward direction, and the method further comprises: determining whether a final portion of the information is being displayed; displaying a first plurality of user interface objects on the display in response to determining that the final portion of the information is being displayed and in response to detecting the third user input, the user interface objects being associated with actions corresponding to an application associated with the alert; 34. The method of any one of claims 31 to 33, further comprising:
36. 36. The method of claim 35, wherein as the information is scrolled upwards on the display, the first plurality of user interface objects are scrolled upwards on the display to below the last portion of the information.
37. 35. The method of claim 34, wherein removing the second portion of the information from the display includes replacing a display of the second portion of the notification with a display of a home screen including a time indication, the home screen being displayed without an indication that the alert is unread.
38. 35. The method of claim 34, wherein removing the second portion of the information comprises sliding the second portion of the information in the second direction off of the display.
39. The device is configured to detect an intensity of a contact on the touch-sensitive display, the method comprising: detecting a fifth contact on the display; determining whether a characteristic intensity of the fifth contact exceeds a threshold intensity; displaying a first plurality of user interface objects in accordance with a determination that the characteristic intensity of the fifth contact exceeds the threshold intensity, the user interface objects being associated with an action corresponding to the application associated with the alert; and in response to a determination that the characteristic intensity of the fifth contact is below the threshold intensity, launching an application associated with the alert; 24. The method of any one of claims 21 to 23, further comprising:
40. Detecting a selection of a first user interface object in the first plurality of user interface objects; In response to detecting the selection of the first user interface object, transmitting data to an external electronic device to cause the external electronic device to launch the application associated with the alert; 40. The method of claim 35 or 39, further comprising:
41. determining whether a user input was received within a third predetermined time interval while the second portion of the information was being displayed; deactivating the display in accordance with a determination that user input has not been received within the third predetermined time interval; 26. The method of any one of claims 21 to 25, further comprising:
42. The notification is displayed adjacent to the second portion of the information, the notification including an application affordance, and the method further comprises: Detecting a selection of the application affordance while the second portion of the information is displayed; and In response to detecting the selection of the application affordance, displaying a second plurality of user interface objects; 26. The method of any one of claims 21 to 25, further comprising:
43. Detecting a selection of a first user interface object of the second plurality of user interface objects; in response to detecting the selection of the first user interface object, displaying a third plurality of user interface objects; and 43. The method of claim 42, further comprising:
44. the electronic device comprises a hardware button, Detecting an input on the hardware button; displaying a third plurality of user interface objects in response to detecting the input on the hardware button; 24. The method of any one of claims 1 to 11 or 21 to 23, further comprising:
45. Detecting a selection of a first user interface object of the third plurality of user interface objects; displaying a user interface for selecting a predetermined response message in response to detecting the selection of the first user interface object of the third plurality of user interface objects; 45. The method of claim 43 or 44, further comprising:
46. Detecting a selection of a first predetermined response message; in response to detecting said selection of said first predetermined response message; sending the first predefined response message to a source of the alert; 46. The method of claim 45, further comprising:
47. sending the first predefined response message to the source of the alert; Displaying a confirmation affordance; and Detecting a selection of the confirmation affordance; and in response to detecting the selection of the confirmation affordance, sending the first predefined response message to the source of the alert; 47. The method of claim 46, comprising:
48. after transmitting the first predetermined response message to the source; displaying a message transmission completion confirmation screen on the display; replacing the display of the message transmission completion confirmation screen with a display of the home screen, the home screen being displayed without an indication that the alert is unread; and 48. The method of claim 46 or 47, further comprising:
49. Detecting a selection of a second user interface object of the third plurality of user interface objects; in response to detecting the selection of the second user interface object of the third plurality of user interface objects, Displaying a user interface for selecting an emoji icon; 45. The method of claim 43 or 44, further comprising:
50. Detecting a selection of a first emoji icon; in response to detecting the selection of the first emoji icon, transmitting the first emoji icon to the source of the alert; 50. The method of claim 49, further comprising:
51. sending the emoji icon to the source of the alert; Displaying a confirmation affordance; and Detecting a selection of the confirmation affordance; and in response to detecting a selection of the confirmation affordance, transmitting the emoji icon to the source of the alert; 51. The method of claim 50, comprising:
52. Detecting a selection of a second user interface object of the second plurality of user interface objects; in response to detecting the selection of the second user interface object of the second plurality of user interface objects, determining whether the second portion of the information has been displayed; and displaying the home screen in accordance with a determination that the second portion of the information has been displayed, wherein the home screen is displayed without an indication that the alert is unread; and displaying the home screen in response to a determination that the second portion of the information was not displayed, the home screen including an indication that the alert is unread; and 43. The method of claim 42, further comprising:
53. Detecting a selection of a second user interface object of the second plurality of user interface objects; in response to detecting the selection of the second user interface object of the second plurality of user interface objects, determining whether the second portion of the information has been displayed; and displaying the clock face in accordance with a determination that the second portion of the information has been displayed, wherein the clock face is displayed without an indication that the alert is unread; and displaying the clock face in accordance with a determination that the second portion of the information was not displayed, the clock face including an indication that the alert is unread; and 43. The method of claim 42, further comprising:
54. detecting a selection of a third user interface object of the second plurality of user interface objects; in response to detecting the selection of the third user interface object of the second plurality of user interface objects, displaying a virtual keyboard on the display; 43. The method of claim 42, further comprising:
55. the device comprises a microphone, and the method further comprises: detecting a selection of a fourth user interface object of the second plurality of user interface objects; in response to detecting the selection of the fourth user interface object of the second plurality of user interface objects, recording an audio input from the microphone; transmitting data corresponding to the recorded audio input to the source of the alert; 43. The method of claim 42, further comprising:
56. transmitting data corresponding to the recorded audio input; displaying an indication of the recorded audio input and a transmit affordance on the display; and Detecting a selection of the transmit affordance; and In response to detecting the selection of the transmit affordance, transmitting the data corresponding to the recorded audio input to the source of the alert; 56. The method of claim 55, comprising:
57. the electronic device includes a rotatable and depressible input mechanism, and the method further comprises: detecting a press of the rotatable, pressable input mechanism after launching the application; In response to detecting the pressing, displaying the home screen on the display; 40. The method of claim 8, 27, or 39, further comprising:
58. 58. The method of claim 57, wherein the rotatable, depressible input mechanism is a rotatable mechanical button, and the depression represents a press on the mechanical button.
59. 60. The method of claim 58, wherein the rotatable, depressible input mechanism is a rotatable capacitive button and the depression represents a touch on the capacitive button.
60. the notification is a first notification, and the method further comprises: receiving a second alert including second information while the first notification is displayed; responsive to receiving the second alert, replacing the display of the first notification with a display of a second notification, the second notification including a first portion of the second information; The method of claim 1 or 2, further comprising:
61. 61. The method of claim 60, further comprising emitting a second sensory output in response to receiving the second alert.
62. Detecting a request to clear the second notification; In response to detecting the request, Clearing the second notification; and re-displaying the first notification; and 62. The method of claim 60 or 61, further comprising:
63. Detecting a request to clear the second notification; In response to detecting the request, Clearing the second notification; and displaying the home screen, the home screen including an indication that the first alert and the second alert are unread; and 62. The method of claim 60 or 61, further comprising:
64. Detecting a request to clear the second notification; In response to detecting the request, Clearing the second notification; and displaying the clock face, the clock face including an indication that the first alert and the second alert are unread; and 62. The method of claim 60 or 61, further comprising:
65. receiving a second alert including second information while displaying the second portion of the information; responsive to receiving the second alert, replacing a display of the second portion of the information with a display of a second notification, the second notification including a first portion of the second information; and 26. The method of any one of claims 21 to 25, further comprising:
66. the alert is a first alert received from a source, and the method further comprises: receiving a second alert from the source while displaying the second portion of the information; responsive to receiving the second alert, displaying a grouped notification representative of the first alert and the second alert; 26. The method of claims 21 to 25, further comprising:
67. 67. The method of claim 66, wherein the first alert and the second alert are associated with the same application.
68. detecting a sixth touch on the grouped notification; in response to detecting the sixth contact, displaying a list of alerts received from the source, the list of alerts being associated with a same application; and 68. The method of claim 67, further comprising:
69. the alert is a fitness alert, and the method further comprises: replacing the display of the notification with a display of a user interface object representative of fitness progress after a second predetermined time interval; replacing the display of the user interface object with a display of a second portion of the information after a third predetermined time interval, the second portion being different from the first portion; and The method of claim 1 or 2, further comprising:
70. 70. The method of any one of claims 3, 4, 19, 20, 52, 53, 63, and 64, wherein the indication that the alert is unread comprises a display of a chevron.
71. 71. The method of claim 70, wherein the display of the chevrons is animated.
72. the chevrons point in a first direction, the display is a touch-sensitive display, and the method comprises:
71. The method of claim 70, further comprising, in response to detecting a swipe in the first direction on the display, displaying the notification on the display.
73. 1. A method comprising: In an electronic device having a display, Receiving multiple alerts; and In response to receiving the plurality of alerts, determining whether the plurality of alerts meets grouping criteria; displaying a grouped notification representative of the plurality of alerts in accordance with a determination that the plurality of alerts meets the grouping criteria; in response to determining that the plurality of alerts does not meet the grouping criteria, displaying a plurality of notifications representative of the plurality of alerts; A method comprising:
74. 74. The method of claim 73, wherein the grouping criteria is based on one or more criteria selected from the group consisting of whether the multiple alerts are received from the same source, whether the multiple alerts exceed an alert numeric threshold, whether the multiple alerts are associated with the same application, and whether the multiple alerts are received within a predetermined time period.
75. The plurality of alerts includes a first alert and a second alert received from a same source and associated with a same application, the first alert and the second alert meet the grouping criteria, the first alert includes first information, and the second alert includes second information, and the method further comprises: detecting a seventh contact on the display at a location corresponding to the grouped notifications; in response to detecting the seventh contact, displaying the first information and the second information on the display; 74. The method of claim 73, further comprising:
76. The first alert and the second alert are received from different sources and associated with a same application, and the method further comprises: detecting an eighth contact on the display at a location corresponding to the grouped notifications; and in response to detecting the eighth contact, displaying a list of alerts associated with the application, the list of alerts including the first alert and the second alert; and 74. The method of claim 73, further comprising:
77. The plurality of alerts are associated with a plurality of applications, the plurality of alerts meet the grouping criteria, and the method further comprises: displaying a grouped notification representative of the plurality of alerts; detecting a ninth contact on the display at a location corresponding to the grouped notifications; in response to detecting the ninth contact, displaying a list of notifications representative of the plurality of alerts, the received alerts including the first alert and the second alert; and 74. The method of claim 73, further comprising:
78. 74. The method of claim 73, further comprising emitting a sensory output further in response to receiving the plurality of alerts.
79. generating a single sensory output further in accordance with determining that the plurality of alerts meet the grouping criteria; and generating a plurality of sensory outputs corresponding to the plurality of alerts further in response to determining that the plurality of alerts do not meet the grouping criteria; 74. The method of claim 73, further comprising:
80. 1. A method comprising: In an electronic device having a touch-sensitive display, receiving an alert containing information while the display is actively displaying content; responsive to receiving the alert, displaying a notification banner across a portion of the display, the notification banner including a first portion of the information, and wherein at least a portion of the content continues to be displayed; detecting a contact on the display at a location corresponding to the notification banner; displaying a second portion of the information in response to detecting the contact, the second portion being different from the first portion; and A method comprising:
81. A display and one or more processors; Memory, and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing any of the processes described in claims 1 to 72.
82. 73. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by an electronic device with a touch-sensitive display, cause the device to perform any of the processes recited in claims 1 to 72.
83. A display and and means for performing any of the methods of claims 1 to 72.
84. A display and one or more processors; Memory, and one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing any of the processes described in claims 73 to 79.
85. 80. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by an electronic device with a touch-sensitive display, cause the device to perform any of the processes recited in claims 73 to 79.
86. A display and and means for performing any of the methods according to claims 73 to 79.
87. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to: receiving an alert containing the information; responsive to receiving the alert, generating a sensory output; Detecting a user input; determining whether the user input is detected from the sensory output within a predetermined time interval; displaying a notification on the display in response to determining that the user input is detected within the predetermined time interval, the notification including a first portion of the information; and A non-transitory computer-readable storage medium that causes
88. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to: Receiving multiple alerts; and In response to receiving the plurality of alerts, determining whether the plurality of alerts meets grouping criteria; displaying a grouped notification representative of the plurality of alerts in accordance with a determination that the plurality of alerts meets the grouping criteria; in response to determining that the plurality of alerts does not meet the grouping criteria, displaying a plurality of notifications representative of the plurality of alerts; A non-transitory computer-readable storage medium that causes
89. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by one or more processors of an electronic device having a display, cause the device to: receiving an alert containing information while the display is actively displaying content; responsive to receiving the alert, displaying a notification banner across a portion of the display, the notification banner including a first portion of the information, and wherein at least a portion of the content continues to be displayed; detecting a contact on the display at a location corresponding to the notification banner; displaying a second portion of the information in response to detecting the contact, the second portion being different from the first portion; and A non-transitory computer-readable storage medium that causes
90. A display and one or more processors; Memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: receiving an alert containing the information; responsive to receiving the alert, generating a sensory output; Detecting a user input; determining whether the user input is detected from the sensory output within a predetermined time interval; and displaying a notification on the display in accordance with a determination that the user input is detected within the predetermined time interval, the notification including a first portion of the information.
91. A display and one or more processors; Memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: Receiving multiple alerts; and In response to receiving the plurality of alerts, determining whether the plurality of alerts meets grouping criteria; displaying a grouped notification representative of the plurality of alerts in accordance with a determination that the plurality of alerts meets the grouping criteria; in response to a determination that the plurality of alerts does not meet the grouping criteria, and displaying a plurality of notifications representative of the plurality of alerts.
92. A touch-sensitive display; one or more processors; Memory, and one or more programs, the one or more programs being stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising: receiving an alert containing information while the display is actively displaying content; responsive to receiving the alert, displaying a notification banner across a portion of the display, the notification banner including a first portion of the information, and wherein at least a portion of the content continues to be displayed; detecting a contact on the display at a location corresponding to the notification banner; displaying a second portion of the information in response to detecting the contact, the second portion being different from the first portion; and An electronic device comprising instructions for:
93. 1. An electronic device comprising: A display and means for receiving an alert including the information; means for emitting a sensory output in response to receiving the alert; means for detecting user input; means for determining whether the user input is detected from the sensory output within a predetermined time interval; means for displaying a notification on the display pursuant to a determination that the user input is detected within the predetermined time interval, the notification including a first portion of the information; and 2. An electronic device comprising:
94. 1. An electronic device comprising: A display and A means for receiving a plurality of alerts; means for determining, in response to receiving the plurality of alerts, whether the plurality of alerts meets grouping criteria; means for displaying a grouped notification representative of the plurality of alerts in accordance with a determination that the plurality of alerts meets the grouping criteria; means for displaying a plurality of notifications representative of the plurality of alerts in accordance with a determination that the plurality of alerts does not meet the grouping criteria.
95. 1. An electronic device comprising: A touch-sensitive display; means for receiving an alert containing information while the display is actively displaying content; means for displaying a notification banner over a portion of the display in response to receiving the alert, the notification banner including a first portion of the information, and wherein at least a portion of the content continues to be displayed; and means for detecting a contact on the display at a location corresponding to the notification banner; and means for displaying a second portion of the information in response to detecting the contact, the second portion being different from the first portion.
96. A display unit; a processing unit coupled to the display unit, the processing unit comprising: receiving an alert containing the information; enabling a sensory output in response to receiving the alert; Detecting a user input; determining whether the user input is detected from the sensory output within a predetermined time interval; enabling display of a notification on the display unit in accordance with a determination that the user input is detected within the predetermined time interval, the notification including a first portion of the information; and 16. An electronic device configured to:
97. 97. The electronic device of claim 96, wherein the electronic device comprises a haptic mechanical unit, and wherein enabling the sensory output comprises causing the haptic mechanical unit to emit a haptic output.
98. The processing unit comprises:
98. The electronic device of claim 96 or 97, further configured to: enable display of a clock face on the display unit in accordance with a determination that the user input is detected from the sensory output after the predetermined time interval, the clock face including an indication that the alert is unread.
99. The processing unit comprises:
98. The electronic device of claim 96 or 97, further configured to: enable display of a home screen on the display unit in accordance with a determination that the user input is detected from the sensory output after the predetermined time interval, the home screen including a plurality of user interface objects representing a plurality of applications, the user interface objects launching corresponding applications when activated, and the home screen including an indication that the alert is unread.
100. 100. The electronic device of any one of claims 96 to 99, wherein enabling the display of the notification comprises activating the display unit from an inactive state.
101. 100. The electronic device of any one of claims 96 to 99, wherein displaying the notification comprises replacing, on the display unit, a display of a home screen with the display of the notification.
102. 102. The electronic device of claim 96, wherein enabling display of the notification comprises enabling display of an animation that moves the notification in a first direction on the display unit.
103. The notification includes an application affordance for launching an application associated with the alert, the processing unit: Detecting a selection of the application affordance; 103. The electronic device of any one of claims 96 to 102, further configured to, in response to detecting the selection, launch the application associated with the alert.
104. The processing unit comprises: responsive to receiving the alert, further configured to determine whether a user activity level meets an activity criterion; 104. The electronic device of any one of claims 96 to 103, wherein generation of the sensory output is delayed until the user activity level meets the activity criterion.
105. The display unit is a touch-sensitive display unit, the electronic device is configured to detect an intensity of a contact on the touch-sensitive display unit, and the processing unit is configured to: detecting a contact on the touch-sensitive display unit while the notification is being displayed on the touch-sensitive display unit; determining whether a characteristic intensity of the contact exceeds a threshold intensity; responsive to a determination that the characteristic intensity of the contact exceeds the threshold intensity, enabling display on the touch-sensitive display unit of an option for suppressing one or more subsequent alerts that meet a mute criterion; 98. The electronic device of claim 96 or 97, further configured to launch an application associated with the alert in accordance with a determination that the characteristic intensity of the contact is below the threshold intensity and in accordance with a determination that the contact is in a location on the touch-sensitive display unit that corresponds to the application affordance.
106. 106. The electronic device of claim 105, wherein the muting criteria is based on a source of the alert.
107. the display unit is a touch-sensitive display unit, and the processing unit is detecting a second contact on the touch-sensitive display unit while the notification is being displayed on the touch-sensitive display unit; determining whether the second contact meets an erasure criterion; 105. The electronic device of claim 96, further configured to enable removal of the notification from the touch-sensitive display unit in accordance with a determination that the second contact meets the removal criterion.
108. 108. The electronic device of claim 107, wherein the second contact meets the erase criterion if the second contact comprises a swipe.
109. 109. The electronic device of claim 107 or 108, wherein the second contact meets the erasure criterion if the second contact includes movement of the second contact beyond a threshold distance.
110. 110. The electronic device of claim 107, wherein enabling display of the notification comprises enabling display of an animation moving the notification in a first direction on the display unit, and the second contact meets the dismissal criterion if the second contact comprises movement of the contact in a second direction opposite to the first direction.
111. the second contact includes moving the second contact and releasing the second contact, and the processing unit: in response to detecting the movement of the second contact, enabling the notification to slide on the display unit according to the movement of the second contact; enabling display of a dismissal indicator adjacent to the notification on the display unit; enable removal of the erase indicator and the notification from the display unit in response to determining that the second contact meets the erase criterion and in response to detecting the release of the second contact; in response to determining that the second contact does not meet the erasure criterion and in response to detecting the release of the second contact, enabling, on the display unit, the display of an animation that moves the notification on the display unit back to its initial position; 111. The electronic device of any one of claims 107 to 110, further configured to effect removal of the erase indicator from the display unit.
112. 112. The electronic device of claim 110 or 111, wherein enabling the removal of the notification comprises enabling the display of an animation of the notification moving out of the display unit in the second direction.
113. 113. The electronic device of any one of claims 107 to 112, wherein effecting the removal of the notification from the display unit comprises deactivating the display unit.
114. 113. The electronic device of any one of claims 107 to 112, wherein enabling removal of the notification from the display unit comprises enabling replacing the display of the notification with a display of a home screen, the home screen including an indication that the alert is unread.
115. 113. The electronic device of any one of claims 107 to 112, wherein enabling removal of the notification from the display unit comprises enabling replacing the display of the notification with a display of a clock face, the clock face including an indication that the alert is unread.
116. The processing unit comprises: determining whether a second user input is detected within a second predetermined time interval after displaying the notification; effecting removal of the notification from the display unit in response to a determination that the second user input has been detected within the second predetermined time interval; enabling display of a second portion of the information on the display unit in response to a determination that the second user input has not been detected within the second predetermined time interval, the second portion being different from the first portion; and 107. The electronic device of any one of claims 96 to 106, further configured to:
117. The processing unit comprises: determining whether the user input continues to be detected a second predetermined time interval after displaying the notification; enabling display of a second portion of the information on the display unit in response to a determination that the user input continues to be detected after the second predetermined time interval, the second portion being different from the first portion; and enabling removal of the notification from the display unit in response to a determination that the user input has not continued to be detected after the second predetermined time interval; 107. The electronic device of any one of claims 96 to 106, further configured to:
118. The processing unit comprises: detecting a third contact on the display unit while displaying the notification; and in response to detecting the third contact, enabling display of a second portion of the information on the display unit, the second portion being different from the first portion; and 107. The electronic device of any one of claims 96 to 106, further configured to:
119. 119. The electronic device of claim 117 or 118, wherein the second portion is displayed adjacent to the notification.
120. 119. The electronic device of claim 118, wherein the third contact is a swipe in the first direction and enabling display of the second portion of the information includes enabling sliding the second portion of the information in the first direction on the display unit.
121. Enabling display of the second portion of the information obtaining configuration data indicating whether to display the second portion of the information; enabling display of the second portion of the information in response to determining that the configuration data indicates that the second portion of the information should be displayed; and 119. The electronic device of claims 116 to 118, further comprising:
122. The processing unit comprises: Detecting a selection of the application affordance while displaying the notification; 106. The electronic device of any one of claims 96 to 105, further configured to, in response to detecting the selection of the application affordance, launch an application associated with the alert.
123. the alert being an electronic message, the processing unit comprising: detecting a fourth touch on the display unit while the second portion of the information is being displayed on the display unit; 121. The electronic device of any one of claims 116 to 120, further configured to, in response to the fourth detection, enable display on the display unit of at least a portion of a message conversation including electronic messages sent to and received from a source of the electronic messages.
124. the alert includes audio content, and enabling display of the second portion of the information includes enabling display of an option to play the audio content, and the processing unit: detecting a selection of the option to play the audio content; 120. The electronic device of any one of claims 115 to 119, further configured to, in response to detecting the selection, enable playback of the audio content.
125. The audio content is a first audio content, and the processing unit: receiving a second alert including second audio content after detecting the selection of the option to play the first audio content; 125. The electronic device of claim 124, further configured to enable playback of the second audio content in response to receiving the second alert.
126. The processing unit comprises: detecting a third user input while displaying the second portion of the information; 121. The electronic device of any one of claims 116 to 120, further configured, in response to detecting the third user input, to enable scrolling, on the display unit, of the second portion of the information in accordance with the third user input.
127. 127. The electronic device of claim 126, wherein the third user input is a swipe on the display unit.
128. 127. The electronic device of claim 126, further comprising a rotatable input unit, and the third user input is a rotation of the rotatable input unit.
129. The third user input is associated with a downward direction, and the processing unit: determining whether a first portion of the information is displayed on the display unit; 129. The electronic device of any one of claims 126 to 128, further configured to: enable removal of the second portion of the information from the display unit in response to determining that the first portion of the information is being displayed and in response to detecting the third user input.
130. the third user input is associated with an upward direction, and the processing unit: determining whether a final portion of the information is being displayed on the display unit; in response to determining that the final portion of the information is being displayed and in response to detecting the third user input, enabling display of a first plurality of user interface objects on the display unit, the user interface objects being associated with an action corresponding to an application associated with the alert; 129. The electronic device of any one of claims 126 to 128, further configured to:
131. 131. The electronic device of claim 130, wherein as the information is scrolled upwardly on the display unit, the first plurality of user interface objects are scrolled upwardly on the display unit to below the last portion of the information.
132. 130. The electronic device of claim 129, wherein enabling removal of the second portion of the information from the display unit comprises enabling replacing on the display unit the display of the second portion of the notification with a display of a home screen including a time indication, wherein the home screen is displayed without an indication that the alert is unread.
133. 130. The electronic device of claim 129, wherein effecting removal of the second portion of the information comprises sliding the second portion of the information off of the display in the second direction.
134. The display unit is a touch-sensitive display unit, the electronic device is configured to detect an intensity of a contact on the touch-sensitive display, and the treatment unit is Detecting a fifth contact on the touch-sensitive display unit; and determining whether a characteristic intensity of the fifth contact exceeds a threshold intensity; enabling display of a first plurality of user interface objects on the touch-sensitive display unit in accordance with a determination that the characteristic intensity of the fifth contact exceeds the threshold intensity, the user interface objects being associated with actions corresponding to the application associated with the alert; in response to a determination that the characteristic intensity of the fifth contact is below the threshold intensity, launching an application associated with the alert; 119. The electronic device of any one of claims 116 to 118, further configured to:
135. The processing unit comprises: Detecting a selection of a first user interface object in the first plurality of user interface objects; 135. The electronic device of claim 130 or 134, further configured, in response to detecting the selection of the first user interface object, to transmit data to an external electronic device to cause the external electronic device to launch the application associated with the alert.
136. The processing unit comprises: determining whether a user input was received within a third predetermined time interval while the second portion of the information was being displayed on the display unit; 121. The electronic device of any one of claims 116 to 120, further configured to deactivate the display unit in accordance with a determination that no user input has been received within the third predetermined time interval.
137. The notification is displayed adjacent to the second portion of the information, the notification including an application affordance, and the processing unit: Detecting a selection of the application affordance while the second portion of the information is displayed on the display unit; 121. The electronic device of any one of claims 116 to 120, further configured to enable display, on the display unit, of a second plurality of user interface objects in response to detecting the selection of the application affordance.
138. The processing unit comprises: Detecting a selection of a first user interface object of the second plurality of user interface objects; 138. The electronic device of claim 137, further configured to enable display of a third plurality of user interface objects on the display unit in response to detecting the selection of the first user interface object.
139. The electronic device comprises a button unit, and the processing unit comprises: Detecting an input on the button unit; 19. The electronic device of any one of claims 96 to 106 or 116 to 118, further configured to enable display of a third plurality of user interface objects on the display unit in response to detecting the input on the button unit.
140. The processing unit comprises: Detecting a selection of a first user interface object of the third plurality of user interface objects; 140. The electronic device of claim 138 or 139, further configured to, in response to detecting the selection of the first user interface object of the third plurality of user interface objects, enable display on the display unit of a user interface for selecting a predetermined response message.
141. The processing unit comprises: Detecting a selection of a first predetermined response message; 141. The electronic device of claim 140, further configured to, in response to detecting the selection of the first predefined response message, enable transmission of the first predefined response message to a source of the alert.
142. Enabling transmission of the first predefined response message to the source of the alert; Enabling display of a confirmation affordance on the display unit; and Detecting a selection of the confirmation affordance; and in response to detecting the selection of the confirmation affordance, enabling transmission of the first predefined response message to the source of the alert; 142. The electronic device of claim 141, comprising:
143. The processing unit comprises: after transmitting the first predetermined response message to the source; enabling display of a message transmission completion confirmation screen on said display unit; enabling, on the display unit, replacing the display of the message transmission completion confirmation screen with a display of the home screen, the home screen being displayed without an indication that the alert is unread; 143. The electronic device of claim 141 or 142, further configured to:
144. The processing unit comprises: Detecting a selection of a second user interface object of the third plurality of user interface objects; 140. The electronic device of claim 138 or 139, further configured to enable, in response to detecting the selection of the second user interface object of the third plurality of user interface objects, display on the display unit of a user interface for selecting an emoji icon.
145. The processing unit comprises: Detecting a selection of the first emoji icon; 145. The electronic device of claim 144, further configured to, in response to detecting the selection of the first emoji icon, enable transmission of the first emoji icon to the source of the alert.
146. enabling transmission of the emoji icon to the source of the alert; Enabling display of a confirmation affordance on the display unit; and Detecting a selection of the confirmation affordance; and responsive to detecting a selection of the confirmation affordance, enabling the emoji icon to transmit the alert to the source; The electronic device of claim 145, comprising:
147. The processing unit comprises: Detecting a selection of a second user interface object of the second plurality of user interface objects; in response to detecting the selection of the second user interface object of the second plurality of user interface objects, determining whether the second portion of the information is displayed on the display unit; and enabling display of the home screen on the display unit in accordance with a determination that the second portion of the information has been displayed on the display unit, the home screen being displayed without an indication that the alert is unread; and enabling display of the home screen on the display unit in accordance with a determination that the second portion of the information was not displayed on the display unit, the home screen including an indication that the alert is unread; and 138. The electronic device of claim 137, further configured to:
148. The processing unit comprises: Detecting a selection of a second user interface object of the second plurality of user interface objects; in response to detecting the selection of the second user interface object of the second plurality of user interface objects, determining whether the second portion of the information is displayed on the display unit; and enabling display of the clock face on the display unit in accordance with determining that the second portion of the information has been displayed on the display unit, the clock face being displayed without an indication that the alert is unread; and enabling display of the clock face on the display unit in response to a determination that the second portion of the information was not displayed on the display unit, the clock face including an indication that the alert is unread; and 138. The electronic device of claim 137, further configured to:
149. The processing unit comprises: Detecting a selection of a third user interface object of the second plurality of user interface objects; 138. The electronic device of claim 137, further configured to enable display of a virtual keyboard on the display unit in response to detecting the selection of the third user interface object of the second plurality of user interface objects.
150. The electronic device further comprises a microphone unit, and the processing unit detecting a selection of a fourth user interface object of the second plurality of user interface objects; in response to detecting the selection of the fourth user interface object of the second plurality of user interface objects, enabling recording of audio input from said microphone unit; 138. The electronic device of claim 137, further configured to enable transmission of data corresponding to the recorded audio input to the source of the alert.
151. Enabling transmission of the data corresponding to the recorded audio input; enabling display of an indication of the recorded audio input and a transmit affordance on the display unit; Detecting a selection of the transmit affordance; and In response to detecting the selection of the transmit affordance, enabling transmission of the data corresponding to the recorded audio input to the source of the alert; 151. The electronic device of claim 150, comprising:
152. The electronic device further comprises a rotatable and depressible input unit, the processing unit being: detecting a press of the rotatable pressable input unit after launching the application; 135. The electronic device of claim 103, 122, or 134, further configured to, in response to detecting the press, enable display of the home screen on the display unit.
153. 153. The electronic device of claim 152, wherein the rotatable, depressible input unit includes a rotatable mechanical button, the depression representing a press on the mechanical button.
154. 154. The electronic device of claim 153, wherein the rotatable, depressible input unit includes a rotatable capacitive button, the depression representing a touch on the capacitive button.
155. The notification is a first notification, and the processing unit: receiving a second alert including second information while the first notification is being displayed on the display unit; in response to receiving the second alert, enabling replacing a display of the first notification on the display unit with a display of a second notification, the second notification including a first portion of the second information; 98. The electronic device of claim 96 or 97, further configured to:
156. The processing unit comprises:
156. The electronic device of claim 155, further configured to enable a second sensory output in response to receiving the second alert.
157. The processing unit comprises: Detecting a request to clear the second notification; In response to detecting the request, enabling the second notification to be removed from the display unit; 157. The electronic device of claim 155 or 156, further configured to enable a redisplay of the first notification on the display unit.
158. The processing unit comprises: Detecting a request to clear the second notification; In response to detecting the request, Enabling the removal of the second notification from the display unit; and enabling display of the home screen on the display unit, the home screen including an indication that the first alert and the second alert are unread; and 157. The electronic device of claim 155 or 156, further configured to:
159. The processing unit comprises: Detecting a request to clear the second notification; In response to detecting the request, Enabling the removal of the second notification from the display unit; and enabling display of the clock face on the display unit, the clock face including an indication that the first alert and the second alert are unread; and 157. The electronic device of claim 155 or 156, further configured to:
160. The processing unit comprises: receiving a second alert including second information while displaying the second portion of the information on the display unit; in response to receiving the second alert, enabling on the display unit to replace a display of the second portion of the information with a display of a second notification, the second notification including a first portion of the second information; and 121. The electronic device of any one of claims 116 to 120, further configured to:
161. the alert is a first alert received from a source, the processing unit: receiving a second alert from the source while displaying the second portion of the information on the display unit; 121. The electronic device of claims 116 to 120, further configured to, in response to receiving the second alert, enable display on the display unit of a grouped notification representative of the first alert and the second alert.
162. 162. The electronic device of claim 161, wherein the first alert and the second alert are associated with a same application.
163. The processing unit comprises: detecting a sixth touch on the grouped notification; in response to detecting the sixth contact, enabling display on the display unit of a list of alerts received from the source, the list of alerts being associated with a same application; and 163. The electronic device of claim 162, further configured to:
164. the alert is a fitness alert, and the processing unit: enabling, after a second predetermined time interval, replacing on the display unit the display of the notification with a display of a user interface object representative of fitness progress; effecting replacing, on the display unit after a third predetermined time interval, the display of the user interface object with a display of the second portion of the information, the second portion being different from the first portion; and 98. The electronic device of claim 96 or 97, further configured to:
165. 160. The electronic device of any one of claims 98, 99, 114, 115, 147, 148, 158, and 159, wherein the indication that the alert is unread comprises a display of a chevron.
166. 166. The electronic device of claim 165, wherein the representation of the chevrons is animated.
167. the chevrons point in a first direction, the display is a touch-sensitive display, and the method comprises:
166. The electronic device of claim 165, further comprising: in response to detecting a swipe in the first direction on the display, displaying the notification on the display.
168. A display unit; a processing unit coupled to the display unit, the processing unit comprising: Receive multiple alerts, In response to receiving the plurality of alerts, determining whether the plurality of alerts meets grouping criteria; responsive to a determination that the plurality of alerts meets the grouping criteria, enabling display on the display unit of a grouped notification representative of the plurality of alerts; In response to determining that the plurality of alerts does not meet the grouping criteria, the electronic device is configured to enable display, on the display unit, of a plurality of notifications representative of the plurality of alerts.
169. The grouping criteria are: whether the multiple alerts are received from the same source; whether the plurality of alerts exceeds a numeric alert threshold; whether the multiple alerts are associated with the same application; and whether the plurality of alerts are received within a predetermined time period; 169. The electronic device of claim 168, wherein the electronic device is based on one or more criteria selected from the group consisting of:
170. the plurality of alerts includes a first alert and a second alert received from a same source and associated with a same application, the first alert and the second alert meet the grouping criteria, the first alert includes first information and the second alert includes second information, the display unit is a touch-sensitive display unit, and the processing unit: detecting a seventh contact on the touch-sensitive display unit at a location corresponding to the grouped notifications; 169. The electronic device of claim 168, further configured to enable display of the first information and the second information on the touch-sensitive display unit in response to detecting the seventh contact.
171. the first alert and the second alert are received from different sources and associated with a same application, the display unit is a touch-sensitive display unit, and the processing unit: detecting an eighth contact on the touch-sensitive display unit at a location corresponding to the grouped notifications; and in response to detecting the eighth contact, enabling display on the touch-sensitive display unit of a list of alerts associated with the application, the list of alerts including the first alert and the second alert; and 169. The electronic device of claim 168, further configured to:
172. the plurality of alerts are associated with a plurality of applications, the plurality of alerts meet the grouping criteria, the display unit is a touch-sensitive display unit, and the processing unit: enabling display of a grouped notification representative of the plurality of alerts on the touch-sensitive display unit; detecting a ninth contact on the touch-sensitive display unit at a location corresponding to the grouped notifications; and in response to detecting the ninth contact, enabling display on the touch-sensitive display unit of a list of notifications representative of the plurality of alerts, the received alerts including the first alert and the second alert; and 169. The electronic device of claim 168, further configured to:
173. The processing unit comprises:
169. The electronic device of claim 168, further configured to enable a sensory output further in response to receiving the plurality of alerts.
174. The processing unit comprises: enabling a single sensory output further in accordance with determining that the plurality of alerts meet the grouping criteria; 169. The electronic device of claim 168, further configured to enable a plurality of sensory outputs corresponding to the plurality of alerts further in accordance with determining that the plurality of alerts do not meet the grouping criteria.
175. a touch-sensitive display unit; a processing unit coupled to the touch-sensitive display unit, the processing unit comprising: receiving an alert containing information while the touch-sensitive display unit is actively displaying content; in response to receiving the alert, enabling display of a notification banner over a portion of the touch-sensitive display unit, the notification banner including a first portion of the information, and at least a portion of the content continuing to be displayed on the touch-sensitive display unit; detecting a contact on the touch-sensitive display unit at a location corresponding to the notification banner; in response to detecting the contact, enabling display of a second portion of the information on the touch-sensitive display unit, the second portion being different from the first portion; and 16. An electronic device configured to:
Citation Information
Patent Citations
Portable terminal device, editing apparatus of its scenario data, scenario data editing method, and program
JP2009193455A
Device and method for displaying confirmation message
JP2010061491A
Mobile terminal device
JP2013012802A
Communication management function
JP2013511900A
A system and method for displaying notifications received from multiple applications.
JP2014519126A