DEVICE, METHOD, AND GRAPHICAL USER INTERFACE FOR PROACTIVELY MANAGING NOTIFICATIONS - Patent application
Patent Information
- Application Number
- JP2024008169
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-09-29
- Filing Date
- 2024-01-23
- Publication Date
- 2025-03-06
- Estimated Expiration
- 2039-04-08
Smart Images

Figure 0007641414000001 
Figure 0007641414000002 
Figure 0007641414000003
Abstract
Description
[Technical field]
[0001] The present invention relates generally to electronic devices that display event notifications, and, without limitation, to electronic devices that provide an interface for efficiently viewing and managing notifications. [Background technology]
[0002] In recent years, the use of portable electronic devices has increased significantly, and many applications typically reside in the memory of such devices. Exemplary applications include communication applications (e.g., messaging and calling), calendar applications, news applications, media playback applications (e.g., podcasts, music, and video), payment applications, reminder applications, social media applications, and service delivery applications. These applications generate events that contain information of varying importance to a user. Notifications corresponding to the generated events may be displayed. Exemplary notifications may include digital images, videos, text, icons, controller elements (such as buttons), and / or other graphics to notify a user of an event. Exemplary applications that generate notifications include messaging applications (e.g., iMessage or Messages by Apple Inc. of Cupertino, California), calendar applications (e.g., iCal or Calendar by Apple Inc. of Cupertino, California), news applications (e.g., Apple News by Apple Inc. of Cupertino, California), media playback applications (e.g., Podcasts, Apple Music, and iTunes by Apple Inc. of Cupertino, California), and other applications. (Registered Trademark)), payment applications (e.g., Apple Pay by Apple Inc. of Cupertino, Calif.), reminder applications (e.g., Reminders by Apple Inc. of Cupertino, Calif.), social media applications, and service delivery applications.
[0003] However, user interfaces for controlling the delivery of notifications, and methods of navigating to and from such interfaces, are cumbersome and inefficient. For example, notifications may be displayed in confusing or overly cluttered ways, and navigation to and from interfaces containing notifications may also be confusing. These methods waste energy by taking more time than necessary. The latter problem is particularly acute in battery-operated devices. Summary of the Invention
[0004] Thus, there is a need for a computer system with improved methods and interfaces for controlling the frequency, prominence, and type of notifications displayed. For example, some described embodiments of methods and interfaces provide prompts that enhance a user's awareness of options for controlling delivery of notifications. In some cases, the amount of notifications received of a certain type may exceed the desired amount of notifications of that type. As a result, a lot of time or multiple inputs may be required to bypass less important notifications in order to view notifications that the user finds more important and useful.
[0005] The above deficiencies and other problems associated with interfaces that display notifications are reduced or eliminated by the disclosed computer system. In some embodiments, the computer system comprises a desktop computer. In some embodiments, the computer system is portable (e.g., a notebook computer, a tablet computer, or a handheld device). In some embodiments, the computer system comprises a personal electronic device (e.g., a wearable electronic device such as a watch). In some embodiments, the computer system has (and / or is in communication with) a display generating component and one or more input devices. In some embodiments, the computer system has (and / or is in communication with) a touchpad. In some embodiments, the computer system has (and / or is in communication with) a touch-sensitive display (also referred to as a "touch screen" or "touch screen display"). In some embodiments, the computer system has a graphical user interface (GUI), one or more processors, memory, and one or more modules, programs, or sets of instructions stored in the memory for performing a number of functions. In some embodiments, a user interacts with the GUI, in part, through contacts and gestures with a stylus and / or fingers on a touch-sensitive surface. In some embodiments, the functionality optionally includes game playing, image editing, drawing, presenting, word processing, spreadsheet creation, telephony, videoconferencing, email, instant messaging, training support, digital photography, digital videography, web browsing, digital music playback, note taking, and / or digital video playback, and executable instructions to perform those functionality are optionally contained on a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.
[0006] In some embodiments, a method is executed in a computer system having a display generating component and one or more input devices. The method includes detecting an occurrence of a first event of a first event type. The method also includes displaying, via the display generating component, a first notification corresponding to the first event type in a respective user interface of the device. The method also includes detecting, via the input device, a first input directed to the first notification while the first notification is displayed in the respective user interface. The method also includes displaying, via the display generating component, one or more notification delivery preference controllers in response to detecting the first input. The method also includes detecting, via the input device, a second input directed to a set of one or more notification delivery preference controllers while displaying the one or more notification delivery preference controllers. The method also includes changing a delivery preference for future notifications of events of the first event type from a first delivery mode to a second delivery mode different from the first delivery mode in response to detecting the second input. The method also includes detecting an occurrence of a second event of the first event type after modifying a delivery preference for future notifications of events of the first event type according to the second input. The method also includes, in response to detecting the occurrence of the second event of the first event type, adding a second notification corresponding to the second event to a notification history without first displaying the second notification in the respective user interfaces in accordance with a determination that the second delivery mode corresponds to a mode of unobtrusive delivery, and refraining from displaying the second notification in the respective user interfaces and refraining from adding the second notification to the notification history in accordance with a determination that the second delivery mode corresponds to turning off notifications for the first event type.
[0007] In some embodiments, a method is executed in a computer system having a display generation component and one or more input devices. The method includes detecting an occurrence of one or more additional events of the first event type while the device has a plurality of notifications in a notification history, the plurality of notifications including a first notification of a first event of the first event type and a second notification of a second event of the first event type, the first notification and the second notification being aggregated in the notification history. The method also includes creating a third notification of the first additional event of the first event type in response to detecting the occurrence of the first additional event of the first event type. The method also includes receiving, via the input device, a request to display a wake screen user interface of the device after creating the third notification of the first additional event of the first event type. The method also includes displaying, via the display generation component, the third notification in the wake screen user interface in response to the request to display the wake screen user interface of the device, the third notification being without information about the first notification and the second notification. The method also includes receiving, via the input device, a request to display the notification history after the third notification is displayed on the wake screen user interface. The method also includes displaying the notification history with an aggregated representation of the first notification and the second notification in response to receiving the request to display the notification history.
[0008] In some embodiments, a method is performed in a computer system having a display generation component and one or more input devices. The method includes displaying, via the display generation component, a plurality of notifications of a plurality of different applications in a notification display user interface, including a notification of a first application and a notification of a second application. The method also includes detecting, via the input device, a user interaction with the plurality of notifications, including a request to perform a requested operation with respect to the notifications. The method also includes responding to the user interaction with the plurality of notifications by performing the requested operation with respect to one or more of the notifications. The method also includes displaying, via the display generating component, prompts for a user to adjust notification settings for one or more of the plurality of applications, displaying a suggestion to reduce the prominence of future notifications of the first application without reducing the prominence of future notifications of the second application in accordance with a determination, based on user interaction with the plurality of notifications, that user engagement with the notifications of the first application is below an engagement threshold level and that user engagement with the notifications of the second application is above an engagement threshold level, and displaying a suggestion to reduce the prominence of future notifications of the second application without reducing the prominence of the first application in accordance with a determination, based on user interaction with the plurality of notifications, that user engagement with the notifications of the second application is below an engagement threshold level and that user engagement with the notifications of the first application is above an engagement threshold level.
[0009] According to some embodiments, an electronic device includes a display generating component, one or more input devices, optionally one or more sensors that detect an intensity of contact with the touch-sensitive surface, optionally one or more tactile output generators, and optionally one or more device orientation sensors, one or more processors, and a memory storing one or more programs, the one or more programs configured to be executed by the one or more processors, the one or more programs including instructions to perform or cause to be performed any of the operations of the methods described herein. According to some embodiments, a computer-readable storage medium has instructions stored therein that, when executed by an electronic device having a display generating component, one or more input devices, optionally one or more sensors that detect an intensity of contact with the touch-sensitive surface, optionally one or more tactile output generators, and optionally one or more device orientation sensors, cause the device to perform or cause to be performed any of the operations of the methods described herein. According to some embodiments, a graphical user interface of an electronic device having a display generating component, one or more input devices, optionally one or more sensors that detect an intensity of contact with the touch-sensitive surface, optionally one or more tactile output generators, optionally one or more device orientation sensors, a memory, and one or more processors executing one or more programs stored in the memory includes one or more of the elements displayed in any of the methods described herein, and the elements are updated in response to input as described in any of the methods described herein. According to some embodiments, an electronic device includes a display generating component, one or more input devices, optionally one or more sensors that detect an intensity of contact with the touch-sensitive surface, optionally one or more tactile output generators, optionally one or more device orientation sensors, and means for performing or causing to be performed the operations of any of the methods described herein.According to some embodiments, an information processing apparatus for use in an electronic device having a display generation component, one or more input devices, optionally one or more sensors for detecting intensity of contact with a touch-sensitive surface, optionally one or more tactile output generators, and optionally one or more device orientation sensors, includes means for performing or causing to be performed any of the operations of the methods described herein.
[0010] In this manner, electronic devices having a display generation component, one or more input devices, optionally one or more sensors that detect the intensity of contact with the touch-sensitive surface, optionally one or more tactile output generators, and optionally one or more device orientation sensors, are provided with improved methods and interfaces for managing how notifications are displayed, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces may complement or replace conventional methods for managing how notifications are displayed. [Brief description of the drawings]
[0011] For a better understanding of the various described embodiments, reference should be made to the following Detailed Description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout:
[0012] [Figure 1A] 1 is a block diagram illustrating a portable multifunction device having a touch-sensitive display in accordance with some embodiments.
[0013] [Figure 1B] FIG. 2 is a block diagram illustrating example components for event processing according to some embodiments.
[0014] [Figure 1C] 1 is a block diagram illustrating a tactile output module according to some embodiments.
[0015] [Diagram 2]1 illustrates a portable multifunction device with a touch screen in accordance with some embodiments.
[0016] [Diagram 3] 1 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface in accordance with some embodiments.
[0017] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device in accordance with some embodiments.
[0018] [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device having a touch-sensitive surface separate from a display in accordance with some embodiments.
[0019] [Figure 4C] 1 illustrates an example of a dynamic intensity threshold according to some embodiments. [Figure 4D] 1 illustrates an example of a dynamic intensity threshold according to some embodiments. [Figure 4E] 1 illustrates an example of a dynamic intensity threshold according to some embodiments.
[0020] [Figure 4F] 13 illustrates a set of sample tactile output patterns according to some embodiments. [Figure 4G] 13 illustrates a set of sample tactile output patterns according to some embodiments. [Figure 4H] 13 illustrates a set of sample tactile output patterns according to some embodiments. [Figure 4I] 13 illustrates a set of sample tactile output patterns according to some embodiments. [Figure 4J] 13 illustrates a set of sample tactile output patterns according to some embodiments. [Figure 4K] 13 illustrates a set of sample tactile output patterns according to some embodiments.
[0021] [Figure 5A1] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5A2] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5A3] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5A4] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5B] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5C] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5D] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5E] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5F] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5G] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5H]1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5I] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5J] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5K] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5L] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5M] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5N] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5O] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5P] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5Q] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5R] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5S]1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5T] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5U] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5V] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5W] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5X] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5Y] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5Z] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AA] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AB] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AC] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AD]1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AE] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AF] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5A-G] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AH] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AI] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AJ] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AK] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AL] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AM] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AN] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AO]1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AP] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AQ] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AR] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AS] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AT] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AU] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AV] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AW] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AX] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 5AY] 1 illustrates an example of a user interface for changing delivery preferences for future notifications of events of an event type according to some embodiments.
[0022] [Figure 5AZ] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BA] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BB] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BC] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BD] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BE] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BF] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BG] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BH] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BI] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BJ] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BK] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BL] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BM] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BN] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BO] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BP] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BQ] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BR] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BS] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BT] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments. [Figure 5BU] 1 illustrates an example of a user interface for displaying aggregated notifications according to some embodiments.
[0023] [Figure 6A] 1 illustrates an example of a user interface with prompts for adjusting notification settings according to some embodiments. [Figure 6B] 1 illustrates an example of a user interface with prompts for adjusting notification settings according to some embodiments. [Figure 6C] 1 illustrates an example of a user interface with prompts for adjusting notification settings according to some embodiments. [Figure 6D] 1 illustrates an example of a user interface with prompts for adjusting notification settings according to some embodiments.
[0024] [Figure 7A]FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 7B] FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 7C] FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 7D] FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 7E] FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 7F] FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments. [Figure 7G] FIG. 1 is a flow diagram of a process for changing delivery preferences for future notifications of events of an event type according to some embodiments.
[0025] [Figure 8A] FIG. 4 is a flow diagram of a process for displaying aggregated notifications according to some embodiments. [Figure 8B] FIG. 4 is a flow diagram of a process for displaying aggregated notifications according to some embodiments. [Figure 8C] FIG. 4 is a flow diagram of a process for displaying aggregated notifications according to some embodiments. [Figure 8D] FIG. 4 is a flow diagram of a process for displaying aggregated notifications according to some embodiments. [Figure 8E] FIG. 4 is a flow diagram of a process for displaying aggregated notifications according to some embodiments.
[0026] [Figure 9A]FIG. 1 is a flow diagram of a process for displaying a prompt to adjust notification settings according to some embodiments. [Figure 9B] FIG. 1 is a flow diagram of a process for displaying a prompt to adjust notification settings according to some embodiments. [Figure 9C] FIG. 1 is a flow diagram of a process for displaying a prompt to adjust notification settings according to some embodiments. [Figure 9D] FIG. 1 is a flow diagram of a process for displaying a prompt to adjust notification settings according to some embodiments. [Figure 9E] FIG. 1 is a flow diagram of a process for displaying a prompt to adjust notification settings according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0027] Notifications provide a user with information about events generated by an application without the user having to interact with the application. Conventional methods of interacting with notifications often require multiple separate inputs (e.g., a series of gestures and button presses, etc.) to achieve an intended result (e.g., adjusting the delivery mode of various types of notifications via a system settings user interface). Embodiments herein provide an intuitive way for users to manage and interact with notifications (e.g., allow a user to input accessing a controller to manage notifications (e.g., manage the delivery mode of future notifications that are of a type corresponding to the currently displayed notification) while a notification is displayed, notifications corresponding to events of an event type are aggregated, and automatically display prompts guiding the user to adjust notification settings based on monitored interactions with notifications).
[0028] The systems, methods, and GUIs described herein improve management of notifications in several ways, such as making it easier to adjust notification delivery preferences and navigate among multiple notifications that correspond to events of the same event type.
[0029] 1A-1C, 2, and 3 provide an exemplary device description below. FIGS. 4A-4B, 5A-5BU, and 6A-6D show examples of user interfaces for managing notifications. FIGS. 7A-7G show a flow diagram of a method for changing delivery preferences for future notifications for an event of an event type, according to some embodiments. FIGS. 8A-8E show a flow diagram of a method for displaying aggregated notifications, according to some embodiments. FIGS. 9A-9E show a flow diagram of a method for displaying prompts for adjusting notification settings, according to some embodiments. The processes of FIGS. 7A-7G, 8A-8E, and 9A-9E are illustrated using the user interfaces of FIGS. 5A-5BU and 6A-6D. Exemplary Devices
[0030] Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments being described. However, it will be apparent to those skilled in the art that the various embodiments described may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
[0031] In this specification, terms such as first, second, etc. are used in some examples to describe various elements, but it will be understood that these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first contact can be referred to as a second contact, and similarly, a second contact can be referred to as a first contact, without departing from the scope of the various embodiments described. Although a first contact and a second contact are both contacts, they are not the same contact unless the context clearly indicates otherwise.
[0032] The terminology used in the description of the various embodiments described herein is for the purpose of describing particular embodiments only and is not intended to be limiting. In the description of the various embodiments described 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. It should also be understood that as used herein, the term "and / or" refers to and includes 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.
[0033] As used herein, the term "if" is optionally interpreted to mean "when," "upon," "in response to determining," or "in response to detecting," depending on the context. Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" are optionally interpreted to mean "upon determining" or "in response to determining," or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]," depending on the context.
[0034] 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 phone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, Calif. Optionally, other portable electronic devices, such as laptops or tablet computers having a touch-sensitive surface (e.g., a touchscreen display and / or a touchpad), are also used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer having a touch-sensitive surface (e.g., a touchscreen display and / or a touchpad).
[0035] In the following discussion, electronic devices are described that include 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.
[0036] The device typically supports a variety of applications, such as one or more of note-taking applications, drawing applications, presentation applications, word processing applications, website creation applications, disc authoring applications, spreadsheet applications, gaming applications, telephony applications, video conferencing applications, email applications, instant messaging applications, training support applications, photo management applications, digital camera applications, digital video camera applications, web browsing applications, digital music player applications, and / or digital video player applications.
[0037] The various applications executing 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 manner, a common physical architecture of the device (such as a touch-sensitive surface) optionally supports the various applications with user interfaces that are intuitive and transparent to the user.
[0038] Attention is now directed to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating a portable multifunction device 100 having a touch-sensitive display system 112, according to some embodiments. Touch-sensitive display system 112 may be conveniently referred to as a "touch screen" or simply a touch-sensitive display. 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 or control devices 116, and external port 124. Device 100 optionally includes one or more light sensors 164. Device 100 optionally includes one or more intensity sensors 165 that detect 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 that generate tactile output on device 100 (e.g., generate 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 over one or more communication buses or signal lines 103.
[0039] It is 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 its components. The various components shown in FIG. 1A are implemented in hardware, software, firmware, or a combination thereof, including one or more signal processing circuits and / or application specific integrated circuits.
[0040] Memory 102 optionally includes high-speed random access memory, and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to memory 102 by other components of device 100, such as by CPU(s) 120 and peripherals interface 118, is optionally controlled by memory controller 122.
[0041] A peripheral interface 118 can be used to couple input and output peripherals of the device to the CPU(s) 120 and memory 102. The one or more processors 120 operate or execute various software programs and / or instruction sets stored in the memory 102 to perform various functions and process data for the device 100.
[0042] In some embodiments, peripherals interface 118, CPU(s) 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.
[0043] The radio frequency (RF) circuitry 108 transmits and receives RF signals, also referred to as 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 circuits 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 referred to as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and with other devices, by wireless communication.Radio communication options include Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPADA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), and Bluetooth. (Registered Trademark), Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11ac, IEEE 802.11ax, IEEE 802.11b, IEEE 802.11g, and / or IEEE 802.11n), voice over Internet Protocol (VoIP), Wi-MAX, protocols for email (e.g., Internet message access protocol (IMAP) and / or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS)), and / or Short Message Service (SMSP) (e.g. ... The present invention may use any of a number of communications standards, protocols, and technologies, including, but not limited to, SMS, SMS+, SMS+, or any other suitable communications protocols, including communications protocols not yet developed as of the filing date of this document.
[0044] The audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and the device 100. The audio circuit 110 receives audio data from the peripherals interface 118, converts the audio data into an electrical signal, and transmits the electrical signal to the speaker 111. The speaker 111 converts the electrical signal into human audible sound waves. The audio circuit 110 also receives an electrical signal converted from the sound wave by the microphone 113. The audio circuit 110 converts the electrical signal into audio data, and transmits the audio data to the peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to the memory 102 and / or the RF circuit 108 by the peripherals interface 118. In some embodiments, the audio circuit 110 also includes a headset jack (e.g., 212, FIG. 2). The headset jack provides an interface between audio circuitry 110 and a detachable audio input / output peripheral such as an output-only headphone or a headset with both an output (e.g., one-ear or binaural headphones) and an input (e.g., a microphone).
[0045] I / O subsystem 106 couples input / output peripherals on device 100, such as touch-sensitive display system 112 and other input or control devices 116, with peripheral interface 118. I / O subsystem 106 optionally includes one or more input controllers 160 for display controller 156, light sensor controller 158, intensity sensor controller 159, haptic feedback controller 161, and other input or control devices. One or more input controllers 160 receive electrical signals from or send electrical signals to other input or control devices 116. Other input or control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller(s) 160 are optionally coupled to any (or none) of a keyboard, an infrared port, a USB port, a stylus, and / or a pointer device such as a mouse. The one or more buttons (e.g., 208, FIG. 2) optionally include up / down buttons for volume control of the speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206, FIG. 2).
[0046] Touch-sensitive display system 112 provides an input and output interface between the device and a user. Display controller 156 receives electrical signals from and / or transmits electrical signals to touch-sensitive display system 112. Touch-sensitive display system 112 displays visual output to the user. This visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively "graphics"). In some embodiments, some or all of the visual output corresponds to a user interface object. As used herein, the term "affordance" refers to a user-interactive graphical user interface object (e.g., a graphical user interface object that is configured to respond to input directed at the graphical user interface object). Examples of user-interactive graphical user interface objects include, but are not limited to, a button, a slider, an icon, a selectable menu item, a switch, a hyperlink, or other user interface control.
[0047] Touch-sensitive display system 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on haptic and / or tactile contact. Touch-sensitive display system 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detect contacts (and any movement or breaking of contact) on touch-sensitive display system 112 and translate the detected contacts into interactions with user interface objects (e.g., one or more soft keys, icons, web pages, or images) that are displayed on touch-sensitive display system 112. In some embodiments, the point of contact between touch-sensitive display system 112 and the user corresponds to the user's finger or stylus.
[0048] Touch-sensitive display system 112 optionally uses liquid crystal display (LCD), light emitting polymer display (LPD), or light emitting diode (LED) technology, although other display technologies are used in other embodiments. Touch-sensitive display system 112 and display controller 156 detect contact and any movement or disruption thereof, optionally using any of a number of known or later developed touch sensing technologies, including, but not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch-sensitive display system 112. In some embodiments, projected mutual capacitance sensing technology is used, such as that found in the iPhone®, iPod Touch®, and iPad® from Apple Inc. of Cupertino, Calif.
[0049] Touch-sensitive display system 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the video resolution of the touch screen is greater than 400 dpi (e.g., 500 dpi, 800 dpi, or higher). A user optionally uses any suitable object or accessory, such as a stylus, finger, or the like, to contact touch-sensitive display system 112. In some embodiments, the user interface is designed to work with finger-based contacts and gestures, which may be less precise than stylus-based inputs due to the larger contact area of a finger on a touch screen than that of a stylus. In some embodiments, the device translates the rough finger input into precise pointer / cursor positions or commands to perform the action desired by the user.
[0050] In some embodiments, in addition to a touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, a touchpad is a touch-sensitive area of a device that, unlike a touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface separate from touch-sensitive display system 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0051] Device 100 also includes a power system 162 that provides power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., batteries, 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.
[0052] Device 100 also optionally includes 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(s) 164 optionally include a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor(s) 164 receive light from the environment, projected through one or more lenses, and convert the light into data representing an image. In conjunction with imaging module 143 (also referred to as a camera module), light sensor(s) 164 optionally captures still images and / or video. In some embodiments, the light sensor is located on the back of device 100, opposite touch-sensitive display system 112 on the front of the device, so that the touch screen can be used as a viewfinder for still and / or video image acquisition. In some embodiments, another light sensor is placed on the front of the device so that an image of the user is captured (e.g., for a selfie, for a user conducting a video conference while viewing other video conference participants on a touch screen, etc.).
[0053] 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(s) 165 optionally include one or more piezoresistive strain gauges, capacitive force sensors, electrical 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(s) 165 receive 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 juxtaposed with or proximate to a 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 system 112 located on the front of device 100.
[0054] Device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows proximity sensor 166 coupled to peripherals interface 118. Alternatively, proximity sensor 166 is coupled to input controller 160 in I / O subsystem 106. In some embodiments, the proximity sensor turns off and disables touch-sensitive display system 112 when the multifunction device is placed near a user's ear (e.g., when the user is conducting a phone call).
[0055] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows a tactile output generator coupled to haptic feedback controller 161 in I / O subsystem 106. In some embodiments, tactile output generator(s) 167 include one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Tactile output generator(s) 167 receive tactile feedback generation instructions from haptic feedback module 133 and generate tactile outputs on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is juxtaposed with or proximate to a touch-sensitive surface (e.g., touch-sensitive display system 112) and generates a tactile output, optionally by moving the touch-sensitive surface vertically (e.g., toward / away from the surface of device 100) or horizontally (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 touch-sensitive display system 112, which is located on the front of device 100.
[0056] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 in I / O subsystem 106. In some embodiments, information is displayed on a touchscreen display, either vertically or horizontally, based on analysis of data received from the one or more accelerometers. In addition to accelerometer 168, device 100 optionally includes a magnetometer and a GPS (or GLONASS or other global navigation system) receiver for obtaining information regarding the location and orientation (e.g., vertically or horizontally) of device 100.
[0057] In some embodiments, the software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a contact / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a haptic feedback module (or instruction set) 133, a text input module (or instruction set) 134, a Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction set) 136. Additionally, in some embodiments, as shown in Figures 1A and 3, memory 102 stores device / global internal state 157. Device / global internal state 157 includes one or more of: active application state indicating which application, if any, is currently active; display state indicating what applications, views, or other information are occupying various areas of touch-sensitive display system 112; sensor state including information obtained from the device's various sensors and other input or control devices 116; and location and / or position information relating to the device's position and / or orientation.
[0058] Operating system 126 (e.g., iOS, Darwin™, RTXC, LINUX (trademark) , UNIX (Registered Trademark) , OS X (Registered Trademark) , WINDOWS (Registered Trademark) , or VxWorks (trademark) An embedded operating system (such as an embedded operating system for a processor, a memory controller, a processor unit, etc.) includes various software components and / or drivers for controlling and managing overall system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between the various hardware and software components.
[0059] The communications module 128 also includes various software components for facilitating communication with other devices via one or more external ports 124 and for processing data received by the RF circuitry 108 and / or the external ports 124. The external ports 124 (e.g., Universal Serial Bus (USB), FIREWIRE (Registered Trademark) The external port (e.g., a 30-pin connector) is adapted to couple directly or indirectly via a network (e.g., the Internet, wireless LAN, etc.) to another device. 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 in some iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, Calif. In some embodiments, the external port is a Lightning connector identical to, similar to, and / or compatible with the Lightning connector used in some iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, Calif.
[0060] Contact / motion module 130 optionally detects contact with touch-sensitive display system 112 (in cooperation with display controller 156), as well as contact with other touch-sensitive devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes software components for performing various operations related to detecting contact (e.g., by a finger or stylus), such as determining if contact has occurred (e.g., detecting a finger down event), determining the strength of the contact (e.g., the force or pressure of the contact, or a proxy for the force or pressure of the contact), determining if there is movement of the contact and tracking the movement across the touch-sensitive surface (e.g., detecting a drag event of one or more fingers), and determining if the contact has stopped (e.g., detecting a finger up event or an interruption of contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point, as 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 operations optionally apply to a single contact (e.g., one finger contact or stylus 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 a touchpad.
[0061] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on a touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or strength of detected contacts). Thus, gestures are optionally detected by detecting a particular contact pattern. For example, detecting a finger tap gesture includes detecting a finger down event, followed by a finger up (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 a touch-sensitive surface includes detecting a finger down event, followed by one or more finger drag events, followed by a finger up (lift off) event. Similarly, taps, swipes, drags, and other gestures are optionally detected by detecting a particular contact pattern with respect to the stylus with respect to the stylus.
[0062] In some embodiments, detecting a finger tap gesture depends on the length of time between detecting a finger down event and a finger up event, but is not related to the strength of the finger contact between detecting the finger down event and the finger up event. In some embodiments, a tap gesture is detected according to determining that the length of time between a finger down event and a finger up event is less than a predetermined value (e.g., less than 0.1, 0.2, 0.3, 0.4, or 0.5 seconds), regardless of whether the strength of the finger contact during the tap meets a given intensity threshold (greater than a nominal contact detection intensity threshold), such as a light or deep pressure intensity threshold. Thus, a finger tap gesture may satisfy certain input criteria that do not require that the characteristic intensity of the contact meet a given intensity threshold for the particular input criteria to be met. For clarity, finger contacts in a tap gesture generally must meet a nominal contact detection intensity threshold, below which the contact is not detected to detect a finger down event. A similar analysis applies to detecting tap gestures with a stylus or other contacts. In cases where the device is capable of detecting contact of a finger or stylus hovering over the touch-sensitive surface, the nominal contact-detection intensity threshold optionally does not correspond to physical contact between the finger or stylus and the touch-sensitive surface.
[0063] In a similar manner, the same concepts are applied to other types of gestures. For example, swipe gestures, pinch gestures, de-pinch gestures, and / or press and hold gestures are optionally detected based on meeting criteria that are not related to the intensity of the contacts included in the gesture or that do not require the gesturing contacts to reach an intensity threshold in order to be recognized. For example, swipe gestures are detected based on the amount of movement of one or more contacts, pinch gestures are detected based on the movement of two or more contacts towards each other, de-pinch gestures are detected based on the movement of two or more contacts away from each other, and long press gestures are detected based on a duration of contact on the touch-sensitive surface where the amount of movement is less than a threshold amount. Thus, a statement that a particular gesture recognition criterion does not require that the intensity of the contact(s) meet a respective intensity threshold in order for the particular gesture recognition criterion to be met means that the particular gesture recognition criterion can be met without the contact(s) in the gesture reaching their respective intensity threshold as well as in situations where one or more of the contacts in the gesture reach or exceed their respective intensity threshold. In some embodiments, a tap gesture is detected based on a determination that a finger down event and a finger up event are detected within a predefined time period, regardless of whether the contacts are above or below their respective intensity thresholds during the predefined time period, and a swipe gesture is detected based on a determination that a movement of the contact is greater than a predefined magnitude, even if the contacts exceed their respective intensity thresholds at the end of the movement of the contact. Even in implementations in which detection of gestures is affected by the strength of the contact performing the gesture (e.g., if the device detects a long press more quickly when the strength of the contact exceeds an intensity threshold or delays detection of a tap input when the strength of the contact is higher), detection of those gestures does not require that the contact reach a particular intensity threshold, as long as the criteria for recognizing a gesture can be met even in situations in which the contact does not reach a particular intensity threshold (e.g., even if the amount of time required to recognize a gesture varies).
[0064] In some situations, the contact intensity threshold, duration threshold, and movement threshold are combined in various different combinations to create heuristics for distinguishing between two or more different gestures directed at the same input element or region, thereby enabling multiple different interactions with the same input element and providing a richer set of user interactions and responses. A statement that a particular set of gesture recognition criteria does not require the intensity of the contact(s) to meet the respective intensity threshold for that particular gesture recognition criterion to be satisfied does not preclude simultaneously evaluating other intensity-dependent gesture recognition criteria to identify other gestures having criteria that are satisfied when the gesture includes a contact having an intensity that exceeds the respective intensity threshold. For example, in some situations, a first gesture recognition criterion for a first gesture that does not require the intensity of the contact(s) to meet the respective intensity threshold for the first gesture recognition criterion to be satisfied is in conflict with a second gesture recognition criterion for a second gesture that is dependent on the contact(s) reaching the respective intensity threshold. In such a conflict, if the second gesture recognition criteria for the second gesture are satisfied first, the gesture is optionally not recognized as satisfying the first gesture recognition criteria for the first gesture. For example, if the contacts reach the respective intensity thresholds before they move a predefined amount of movement, a deep press gesture is detected instead of a swipe gesture. Conversely, if the contacts move a predefined amount of movement before they reach the respective intensity thresholds, a swipe gesture is detected instead of a deep press gesture. Even in such a situation, the first gesture recognition criteria for the first gesture still do not require that the intensity of the contact(s) meet the respective intensity thresholds in order for the first gesture recognition criteria to be satisfied. This is because if the contacts remained below the respective intensity thresholds until the end of the gesture (e.g., a swipe gesture with contacts that do not increase in intensity above the respective intensity thresholds), the gesture would have been recognized as a swipe gesture by the first gesture recognition criteria.In that way, certain gesture recognition criteria that do not require the intensity of the contact(s) to meet a respective intensity threshold in order for the particular gesture recognition criterion to be satisfied may still be dependent on the intensity of the contact with respect to an intensity threshold in the sense that (A) in some circumstances, they may ignore the intensity of the contact with respect to an intensity threshold (e.g., for a tap gesture) and / or (B) in some circumstances, the particular gesture recognition criterion (e.g., for a long press gesture) will not function if a competing set of intensity-dependent gesture recognition criteria (e.g., for a deep press gesture) recognizes an input as corresponding to an intensity-dependent gesture before the particular gesture recognition criterion recognizes a gesture corresponding to the input (e.g., for a long press gesture that competes with a deep press gesture for recognition).
[0065] Graphics module 132 includes various known software components for rendering and displaying graphics on touch-sensitive display system 112 or other display, including components for modifying the visual impact (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, videos, and animations.
[0066] In some embodiments, graphics module 132 stores data representing the 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, including, as appropriate, coordinate data and other graphic characteristic data, from an application or the like, and then generates screen image data for output to display controller 156.
[0067] The haptic feedback module 133 includes various software components that generate instructions (e.g., instructions used by the haptic feedback controller 161) to create tactile outputs at one or more locations on the device 100 using the tactile output generator(s) 167 in response to user interaction with the device 100.
[0068] Text input module 134 is optionally a component of 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).
[0069] 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 calling, to the camera 143 as photo / video metadata, and to applications that provide location-based services, such as a weather widget, a local yellow pages widget, and a maps / navigation widget).
[0070] Application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: ● a contacts module 137 (sometimes called an address book or contact list); ●Telephone module 138, ● Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141; ● Training support module 142, A camera module 143 for still and / or video images, ● Image management module 144, ● Browser module 147, ● Calendar module 148, ● A widget module 149, optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5, and other widgets obtained by the user, as well as user-created widgets 149-6; ● a widget creation module 150 for creating user-created widgets 149-6; ● Search module 151, ● Optionally, a video and music player module 152, comprising a video player module and a music player module; ● Memo module 153, Map module 154, and / or ●Online video module 155.
[0071] Examples of other applications 136 that are optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA (Registered Trademark) Supported applications include encryption, digital rights management, voice recognition, and voice duplication.
[0072] Contacts module 137, along with touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, includes executable instructions (e.g., stored in memory 102 or in the application internal state 192 of contacts module 137 in memory 370) for managing an address book or contact list, 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 phone numbers and / or email addresses to initiate and / or facilitate communication by telephone 138, video conference 139, email 140, or IM 141, and the like.
[0073] In cooperation with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, telephone module 138 includes executable instructions for entering a sequence of characters corresponding to a telephone number, accessing one or more telephone numbers in address book 137, modifying an entered telephone number, dialing each telephone number, conducting a conversation, and disconnecting or hanging up when the conversation is completed. As discussed above, the wireless communication optionally uses any of a number of communication standards, protocols, and technologies.
[0074] In cooperation with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch-sensitive display system 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact module 130, graphics module 132, text input module 134, contact list 137, and telephone module 138, videoconferencing module 139 contains executable instructions to initiate, conduct, and terminate a videoconference between a user and one or more other participants according to the user's commands.
[0075] In conjunction with RF circuitry 108, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for creating, sending, receiving, and managing emails in response to user instructions. In conjunction with image management module 144, email client module 140 greatly facilitates the creation and sending of emails with still or video images captured by camera module 143.
[0076] In cooperation with RF circuitry 108, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, instant message 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, Apple Push Notification Service (APNs), or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephone-based messaging (e.g., messages sent using SMS or MMS) and Internet-based messaging (e.g., messages sent using XMPP, SIMPLE, APNs, or IMPS).
[0077] In cooperation with the RF circuitry 108, the touch-sensitive display system 112, the display controller 156, the contact module 130, the graphics module 132, the text input module 134, the GPS module 135, the map module 154, and the video and music player module 152, the training support module 142 includes executable instructions to create workouts (e.g., having time, distance, and / or calorie consumption goals), communicate with training sensors (in the sports device and the smart watch), receive training sensor data, calibrate sensors used to monitor the workouts, select and play music for the workouts, and display, store, and transmit training data.
[0078] Camera module 143, along with touch-sensitive display system 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact module 130, graphics module 132, and image management module 144, contain executable instructions to capture still images or videos (including video streams) and store them in memory 102, change characteristics of the still images or videos, and / or delete still images or videos from memory 102.
[0079] Image management module 144, along with touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, text input module 134, and camera module 143, contain 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.
[0080] Browser module 147, together with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, contains executable instructions for browsing the Internet according to a user's commands, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0081] Calendar module 148, along with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, contain executable instructions to create, display, modify, and store calendars and data associated with the calendars (e.g., calendar items, to-do lists, etc.) according to a user's instructions.
[0082] Widget modules 149, along with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, are optionally mini-applications 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 mini-applications created by a user (e.g., user-created widget 149-6). In some embodiments, widgets are written in HTML (Hypertext Markup Language) files, CSS (Cascading Style Sheets) files, and JavaScript (trademark)In some embodiments, a widget includes an XML (Extensible Markup Language) file and a JavaScript file (e.g., Yahoo! Widgets).
[0083] In cooperation with RF circuitry 108, touch-sensing display system 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, widget creation module 150 contains executable instructions for creating widgets (e.g., turning user-specified portions of a web page into widgets).
[0084] In cooperation with touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, search module 151 contains executable instructions to search for text, music, sound, images, video, and / or other files in memory 102 that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with a user's commands.
[0085] In conjunction with touch-sensitive display system 112, display system controller 156, contact module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 contains executable instructions that enable a user to download and play recorded music or other sound files stored in one or more file formats, such as MP3 or AAC files, as well as executable instructions to display, present, or otherwise play videos (e.g., on touch-sensitive display system 112 or on an external display connected wirelessly or via external port 124). In some embodiments, device 100 optionally includes an iPod touch ( Registered trademark ) and other MP3 player functions.
[0086] In cooperation with the touch-sensitive display system 112, display controller 156, contact 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 according to a user's commands.
[0087] In conjunction with RF circuitry 108, touch-sensitive display system 112, display system controller 156, contact 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 stores and other points of interest at or near a particular location, and other location-based data) in accordance with a user's instructions.
[0088] In conjunction with touch-sensitive display system 112, display system controller 156, contact 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 executable instructions that enable a user to access, view, receive (e.g., by streaming and / or downloading), and play (e.g., on touch screen 112 or on an external display connected wirelessly or via external port 124) online videos in one or more file formats, such as H.264, and send and otherwise manage emails with links to particular online videos. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140.
[0089] Each of the above-identified modules and applications corresponds to an executable instruction set that performs one or more of the functions described above, as well as the methods described in this application (e.g., computer-implemented methods and other information processing methods described herein). The modules (i.e., instruction sets) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of the modules are optionally combined or otherwise rearranged in various embodiments. In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not described above.
[0090] 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. Using the touchscreen and / or touchpad as the primary input control device for operation of device 100 optionally reduces the number of physical input control devices (push buttons, dials, etc.) on device 100.
[0091] The set of predefined functions performed only through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, a home menu, or a 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 rather than a touchpad.
[0092] 1B is a block diagram illustrating example components for event processing, according to some embodiments. In some embodiments, memory 102 (in FIG. 1A) or 370 (in FIG. 3) includes an event sorter 170 (e.g., in operating system 126) and a respective application 136-1 (e.g., any of applications 136, 137-155, 380-390 described above).
[0093] Event sorter 170 receives the event information and determines application 136-1 and application view 191 of application 136-1 to which the event information is to be delivered. Event sorter 170 includes an event monitor 171 and an event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) that are displayed on touch-sensitive display system 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) is currently active, and application internal state 192 is used by event sorter 170 to determine application view 191 to which the event information is to be delivered.
[0094] In some embodiments, application internal state 192 includes additional information such as one or more of resume information to be used when application 136-1 resumes execution, user interface state information indicating or ready to display information being displayed by application 136-1, state cues that allow a user to return to a previous state or view of application 136-1, and redo / undo cues of previous actions taken by the user.
[0095] 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 system 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 system 112 or a touch-sensitive surface.
[0096] In some embodiments, event monitor 171 sends a request to peripherals interface 118 at a predetermined interval. In response, peripherals interface 118 transmits the event information. In other embodiments, peripherals interface 118 transmits the event information only when there is a significant event (e.g., receiving an input above a predetermined noise threshold and / or for longer than a predetermined period of time).
[0097] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173.
[0098] Hit view determination module 172 provides software procedures for determining where in one or more views a sub-event occurred when touch-sensitive display system 112 displays more than one view. A view consists of controls and other elements that a user can see on the display.
[0099] 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 occur. The application view (of the respective application) in which the touch is detected optionally corresponds to a programmatic level within the programmatic or view hierarchy of the application. For example, the lowest level view in which the touch is detected is optionally referred to as a hit view, and the set of events that are recognized as suitable inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch gesture.
[0100] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest level view in which the initiating sub-event occurs (i.e., the first sub-event in a series of sub-events that form an event or potential event). Once a hit view is identified by the hit view determination module, the hit view typically receives all sub-events related to the same touch or input source for which it was identified as the hit view.
[0101] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive the particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive the particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-event are actively participating views, and therefore all actively participating views should receive the particular sequence of sub-events. In other embodiments, even if the touch sub-event is completely confined to the area associated with one particular view, views higher in the hierarchy still remain actively participating views.
[0102] Event dispatcher module 174 dispatches the 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 the event information to the event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information obtained by each event receiver module 182 in an event queue.
[0103] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In yet other embodiments, event sorter 170 is a stand-alone module or is part of another module stored in memory 102, such as contact / motion module 130.
[0104] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each including 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 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 updaters 176, object updaters 177, GUI updaters 178, and / or event data 179 received from event sorter 170. Event handlers 190 optionally utilize or call data updaters 176, object updaters 177, or GUI updaters 178 to update application internal state 192. Instead, 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, the object updater 177, and the GUI updater 178 are included in each application view 191.
[0105] 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 (optionally including sub-event delivery instructions).
[0106] Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, e.g., a touch or a movement of a touch. Depending on the sub-event, the event information also includes additional information, such as the location of the sub-event. When the sub-event involves a movement of a touch, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the current orientation of the device (also referred to as the device's attitude).
[0107] The event comparator 184 compares the event information to 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 definitions of events (e.g., a sequence of predefined sub-events), such as event 1 (187-1) and event 2 (187-2). In some embodiments, the sub-events in event 187 include, for example, touch start, touch end, touch movement, touch stop, and multiple touches. In one example, the definition for event 1 (187-1) is a double tap on a displayed object. The double tap includes, for example, a first touch (touch start) for a given stage on the displayed object, a first lift off (touch end) for a given stage, a second touch (touch start) for a given stage on the displayed object, and a second lift off (touch end) for a given stage. In another example, a definition of event 2 (187-2) is a drag on a displayed object. A drag includes, for example, a touch (or contact) of a given stage on a displayed object, a movement of the touch across the touch-sensitive display system 112, and a lift-off of the touch (end of the touch). In some embodiments, the event also includes information regarding one or more associated event handlers 190.
[0108] 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 system 112, when a touch is detected on touch-sensitive display system 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a 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 associated with the sub-event and object that triggers the hit test.
[0109] In some embodiments, each event 187 definition also includes a delay action that delays delivery of the event information until it is determined whether a set of sub-events corresponds to the event type of the event recognizer.
[0110] 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, event failed, or event finished state and thereafter ignores the next sub-event of the touch-based gesture. In this situation, any other event recognizers that remain active for the hit view continue to track and process sub-events of the ongoing touch gesture.
[0111] In some embodiments, each event recognizer 180 includes metadata 183 with configurable properties, flags, and / or lists that indicate to actively participating event recognizers how the event delivery system should perform sub-event delivery. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact with each other or are enabled to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in a view or programmatic hierarchy.
[0112] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more particular sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and postponing sending) the sub-events to the respective hit view. In some embodiments, the event recognizer 180 pops a flag associated with the recognized event, and the event handler 190 associated with the flag catches the flag and performs a predefined process.
[0113] In some embodiments, the 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.
[0114] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used by contacts module 137 or stores video files used by video and music player module 152. 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.
[0115] In some embodiments, event handler(s) 190 includes or has access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of a respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0116] It should be understood that the foregoing description of event processing of a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 with input devices, not all of which are initiated on a touch screen. For example, mouse movements and mouse button presses, contact movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple presses or holds of a keyboard, 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.
[0117] 1C is a block diagram illustrating a tactile output module, according to some embodiments. In some embodiments, I / O subsystem 106 (e.g., haptic feedback controller 161 (FIG. 1A) and / or other input controller(s) 160 (FIG. 1A) includes at least some of the example components shown in FIG. 1C. In some embodiments, peripherals interface 118 includes at least some of the example components shown in FIG. 1C.
[0118] In some embodiments, the tactile output module includes a haptic feedback module 133. In some embodiments, the haptic feedback module 133 aggregates and combines tactile output to user interface feedback from software applications on the electronic device (e.g., user input corresponding to a display user interface, and feedback responsive to alerts and other notifications indicating the performance of an action or the occurrence of an event in a user interface of the electronic device). The haptic feedback module 133 includes one or more of a waveform module 123 (providing a waveform used to generate the tactile output), a mixer 125 (mixing waveforms, such as waveforms of different channels), a compressor 127 (reducing or compressing the dynamic range of the waveform), a low pass filter 129 (filtering high frequency signal components in the waveform), and a thermal controller 131 (adjusting the waveform according to thermal conditions). In some embodiments, the haptic feedback controller 161 (FIG. 1A) includes the haptic feedback module 133. In some embodiments, a separate unit of haptic feedback module 133 (or a separate implementation of haptic feedback module 133) is also included in the audio controller (e.g., audio circuit 110 of FIG. 1A) and used to generate audio signals. In some embodiments, a single haptic feedback module 133 is used to generate waveforms for audio signals and tactile output.
[0119] In some embodiments, haptic feedback module 133 also includes trigger module 121 (e.g., a software application, operating system, or other software module that determines a tactile output to be generated and initiates the process of generating a corresponding tactile output). In some embodiments, trigger module 121 generates a trigger signal that initiates the generation of a waveform (e.g., by waveform module 123). For example, trigger module 121 generates the trigger signal based on pre-set timing criteria. In some embodiments, trigger module 121 receives trigger signals from outside haptic feedback module 133 (e.g., in some embodiments, haptic feedback module 133 receives trigger signals from hardware input processing module 146 located outside haptic feedback module 133) based on activation of a user interface element (e.g., an application icon or affordance within an application) or a hardware input device (e.g., an intensity-sensing input surface such as a home button or an intensity-sensing touchscreen) and relays those trigger signals to other components within haptic feedback module 133 (e.g., waveform module 123) or software applications that trigger actions (e.g., by trigger module 121). In some embodiments, trigger module 121 also receives a tactile feedback generation instruction (e.g., from haptic feedback module 133, FIGS. 1A and 3). In some embodiments, trigger module 121 generates a trigger signal in response to haptic feedback module 133 (or trigger module 121 within haptic feedback module 133) receiving a tactile feedback instruction (e.g., from haptic feedback module 133, FIGS. 1A and 3).
[0120] Waveform module 123 receives a trigger signal (e.g., from trigger module 121) as an input and, in response to receiving the trigger signal, provides a waveform for generation of one or more tactile outputs (e.g., a waveform selected from a predefined set of waveforms designed for use by waveform module 123, such as the waveforms described in more detail below with reference to Figures 4F-4G).
[0121] Mixer 125 receives waveforms (e.g., from waveform module 123) as inputs and mixes these waveforms together. For example, when mixer 125 receives two or more waveforms (e.g., a first waveform in a first channel and a second waveform in a second channel that at least partially overlaps with the first waveform), mixer 125 outputs a combined waveform that corresponds to the sum of the two or more waveforms. In some embodiments, mixer 125 also modifies one or more of the two or more waveforms to emphasize a particular waveform relative to the rest of the two or more waveforms (e.g., by increasing the scale of the particular waveform and / or decreasing the scale of the rest of the waveforms). In some circumstances, mixer 125 selects one or more waveforms to be removed from the combined waveform (e.g., when there are waveforms from four or more sources requested to be output simultaneously by tactile output generator 167, the waveform from the oldest source is dropped).
[0122] The compressor 127 receives as input a waveform (e.g., a composite waveform from mixer 125) and modifies the waveform. In some embodiments, the compressor 127 reduces the waveform (e.g., according to the physical specifications of tactile output generator 167 (FIG. 1A) or 357 (FIG. 3)) such that the tactile output corresponding to the waveform is reduced. In some embodiments, the compressor 127 limits the waveform, such as by enforcing a predefined maximum amplitude for the waveform. For example, the compressor 127 reduces the amplitude of portions of the waveform that exceed a predefined amplitude threshold while maintaining the amplitude of portions of the waveform that do not exceed the predefined amplitude threshold. In some embodiments, the compressor 127 reduces the dynamic range of the waveform. In some embodiments, the compressor 127 dynamically reduces the dynamic range of the waveform so that the combined waveform remains within the performance specifications (e.g., force and / or displacement limits of a moving mass) of the tactile output generator 167.
[0123] Low pass filter 129 receives waveforms (e.g., compressed waveforms from compressor 127) as inputs and filters (e.g., smoothes) these waveforms (e.g., removes or reduces high frequency signal components within the waveforms). For example, in some cases, when a tactile output is generated according to a compressed waveform, compressor 127 includes extraneous signals (e.g., high frequency signal components) within the compressed waveform that interfere with the generation of the tactile output and / or exceed the performance specifications of tactile output generator 167. Low pass filter 129 reduces or removes such extraneous signals within the waveform.
[0124] Thermal controller 131 receives waveforms (e.g., filtered waveforms from low pass filter 129) as inputs and adjusts these waveforms according to the thermal state of device 100 (e.g., based on an internal temperature detected within device 100, such as the temperature of haptic feedback controller 161, and / or an external temperature detected by device 100). For example, in some cases, the output of haptic feedback controller 161 varies with temperature (e.g., haptic feedback controller 161 generates a first tactile output when haptic feedback controller 161 is at a first temperature and generates a second tactile output when haptic feedback controller 161 is at a second temperature different from the first temperature, in response to receiving the same waveform). For example, the magnitude (or amplitude) of the tactile output may vary with temperature. The waveforms are modified (e.g., the amplitude of the waveform is increased or decreased based on temperature) to reduce the effects of temperature variations.
[0125] In some embodiments, haptic feedback module 133 (e.g., trigger module 121) is coupled to hardware input processing module 146. In some embodiments, other input controller(s) 160 of FIG. 1A includes hardware input processing module 146. In some embodiments, hardware input processing module 146 receives input from hardware input device 145 (e.g., other input or control device 116 of FIG. 1A, such as a home button or an intensity-sensitive input surface such as an intensity-sensitive touchscreen). In some embodiments, hardware input device 145 is either touch-sensitive display system 112 (FIG. 1A), keyboard / mouse 350 (FIG. 3), touchpad 355 (FIG. 3), one of other input or control devices 116 (FIG. 1A), or an input device such as an intensity-sensitive home button. In some embodiments, hardware input device 145 consists of an intensity-sensitive home button and is not touch-sensitive display system 112 (FIG. 1A), keyboard / mouse 350 (FIG. 3), or touchpad 355 (FIG. 3). In some embodiments, in response to input from hardware input device 145 (e.g., an intensity-sensitive home button or a touch screen), hardware input processing module 146 provides one or more trigger signals to haptic feedback module 133 to indicate that a user input has been detected that satisfies predefined input criteria, such as an input corresponding to a home button "click" (e.g., a "down click" or an "up click"). In some embodiments, in response to an input corresponding to a home button "click," haptic feedback module 133 provides a waveform corresponding to a home button "click" to simulate the haptic feedback of pressing a physical home button.
[0126] In some embodiments, the tactile output module includes a haptic feedback controller 161 (haptic feedback controller 161 in FIG. 1A ) that controls generation of the tactile output. In some embodiments, the haptic feedback controller 161 is coupled to a plurality of tactile output generators, selects one or more of the plurality of tactile output generators, and transmits waveforms to the selected one or more tactile output generators that generate the tactile output. In some embodiments, the haptic feedback controller 161 coordinates tactile output requests corresponding to activation of the hardware input device 145 and tactile output requests corresponding to software events (e.g., tactile output requests from the haptic feedback module 133), modifies one or more of the two or more waveforms, emphasizes a particular waveform relative to the rest of the two or more waveforms (e.g., by increasing the scale of a particular waveform and / or decreasing the scale of the rest of the waveforms, such as to prioritize tactile output corresponding to activation of the hardware input device 145 over tactile output corresponding to the software event).
[0127] In some embodiments, as shown in FIG. 1C, an output of haptic feedback controller 161 is coupled to an audio circuit of device 100 (e.g., audio circuit 110, FIG. 1A) and provides an audio signal to the audio circuit of device 100. In some embodiments, haptic feedback controller 161 provides both a waveform used to generate the tactile output and an audio signal used to provide an audio output in conjunction with generating the tactile output. In some embodiments, haptic feedback controller 161 modifies the audio signal and / or waveform (used to generate the tactile output) such that the audio output and the tactile output are synchronized (e.g., by delaying the audio signal and / or waveform). In some embodiments, haptic feedback controller 161 includes a digital-to-analog converter used to convert a digital waveform to an analog signal, which is received by amplifier 163 and / or tactile output generator 167.
[0128] In some embodiments, the tactile output module includes an amplifier 163. In some embodiments, the amplifier 163 receives a waveform (e.g., from the haptic feedback controller 161) and amplifies the waveform before transmitting the amplified waveform to a tactile output generator 167 (e.g., either of the tactile output generators 167 (FIG. 1A) or 357 (FIG. 3)). For example, the amplifier 163 amplifies the received waveform to a signal level according to the physical specifications of the tactile output generator 167 (e.g., the voltage and / or current required by the tactile output generator 167 to generate a tactile output such that the signal transmitted to the tactile output generator 167 generates a tactile output corresponding to the waveform received from the tactile feedback controller 161) and transmits the amplified waveform to the tactile output generator 167. In response, the tactile output generator 167 generates a tactile output (e.g., by shifting the movable mass back and forth in one or more dimensions relative to a neutral position of the movable mass).
[0129] In some embodiments, the tactile output module includes a sensor 169 coupled to the tactile output generator 167. The sensor 169 detects a state or state change (e.g., mechanical position, physical displacement, and / or movement) of the tactile output generator 167 or one or more components of the tactile output generator 167 (e.g., one or more moving parts, such as a membrane used to generate the tactile output). In some embodiments, the sensor 169 is a magnetic field sensor (e.g., a Hall effect sensor) or other displacement and / or movement sensor. In some embodiments, the sensor 169 provides information (e.g., position, displacement, and / or movement of one or more parts within the tactile output generator 167) to the tactile feedback controller 161, which adjusts the waveform output from the tactile feedback controller 161 (e.g., a waveform sent to the tactile output generator 167, optionally via the amplifier 163) according to the information provided by the sensor 169 regarding the state of the tactile output generator 167.
[0130] FIG. 2 illustrates portable multifunction device 100 having a touch screen (e.g., touch-sensitive display system 112, FIG. 1A ), according to some embodiments. The touch screen optionally displays one or more graphics in user interface (UI) 200. In these embodiments, as well as those described below, a user is enabled to 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 the one or more graphics is performed when the user breaks contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upwards and / or downwards), and / or rolling of a finger in contact with device 100 (right to left, left to right, upwards and / or downwards). In some implementations or situations, unintentional contact with a graphic does not select the graphic, for example, a swipe gesture sweeping over an application icon optionally does not select the corresponding application when the gesture corresponding to selection is a tap.
[0131] Device 100 also optionally includes one or more physical buttons, such as a "home" or menu button 204. As mentioned above, menu button 204 is optionally used to navigate to any application 136 in a set of applications optionally running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on a touch screen display.
[0132] In some embodiments, device 100 includes a touch screen display, a menu button 204 (sometimes referred to as a home button 204), a push button 206 for powering the device on / off and locking the device, a volume control button(s) 208, a subscriber identity module (SIM) card slot 210, a headset jack 212, and an external docking / charging port 124. Push button 206 is optionally used to power the device on / off by pressing and holding the button down for a predefined period of time, to lock the device by pressing and releasing the button before the predefined time has elapsed, and / or to unlock the device or initiate an unlocking process. In some embodiments, device 100 also accepts verbal input through microphone 113 to activate or deactivate some features. Device 100 also optionally includes one or more contact intensity sensors 165 that detect the intensity of a contact on touch-sensitive display system 112 and / or one or more tactile output generators 167 that generate a tactile output to a user of device 100.
[0133] FIG. 3 is a block diagram of an exemplary multifunction device having 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 referred to as a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interface 330, including 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 for generating tactile output on device 300 (e.g., similar to tactile output generator(s) 167 described above with reference to FIG. 1A), sensors 359 (e.g., light sensors, acceleration sensors, proximity sensors, touch-sensitive sensors, and / or contact intensity sensors similar to contact intensity sensor(s) 165 described above with reference to FIG. 1A). Memory 370 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices, and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310.In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disk authoring module 388, and / or spreadsheet module 390, while memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store those modules.
[0134] Each of the above-identified elements in FIG. 3 is optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set that performs the functions described above. The above-identified modules or programs (i.e., instruction sets) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of those modules are optionally combined or otherwise rearranged in various embodiments. In some embodiments, memory 370 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 370 optionally stores additional modules and data structures not described above.
[0135] Attention is now directed to embodiments of a user interface (“UI”) that is optionally implemented on portable multifunction device 100.
[0136] 4A shows an exemplary user interface 400 for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: Signal strength indicators for wireless communications such as cellular and Wi-Fi signals; ●Time, ●Bluetooth indicator, ● Battery status indicator, 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 of 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 of the video and music player module 152 labeled "Music", and ●Icons for other applications, such as: ○ Icon 424 of IM module 141, labeled "Messages"; ○ Icon 426 of the Calendar module 148, labeled "Calendar", ○ Icon 428 of the image management module 144, labeled "Photos"; ○ An icon 430 of the camera module 143, labeled “camera”; ○ Icon 432 of the online video module 155, labeled "Online Video"; Icon 434 of Stock Price Widget 149-2, labeled "Stock Price" ○ Icon 436 of the map module 154, labeled "Map"; ○ Icon 438 of weather widget 149-1, labeled "Weather"; ○ Icon 440 of alarm clock widget 149-4, labeled "Clock"; ○ Icon 442 of Training Support Module 142, labeled "Training Support"; ○ An icon 444 of the Notes module 153, labeled "Notes"; and ○ An icon 446 for a settings application or module that provides access to settings related to the device 100 and its various applications 136.
[0137] 4A are merely examples. For example, other labels are optionally used for the various application icons. In some embodiments, the label for each application icon includes the name of the application that corresponds to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application that corresponds to that particular application icon.
[0138] FIG. 4B illustrates an exemplary user interface on a device (e.g., device 300, FIG. 3) having a touch-sensitive surface 451 (e.g., tablet or touchpad 355, FIG. 3) separate from a display 450. Although many of the following examples are given with reference to input on touchscreen display 112 (where the touch-sensitive surface and display are combined), in some embodiments, the device detects input on a touch-sensitive surface 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 those 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 is to be understood that similar methods are optionally used for the other user interfaces described herein.
[0139] In addition, while the following examples are given primarily with reference to finger input (e.g., finger touch, finger tap gesture, finger swipe gesture, etc.), it should be understood that in some embodiments, one or more of those finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced by a mouse click (e.g., instead of a touch) followed by movement of a cursor along the path of the swipe (e.g., instead of a contact movement). 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 stopping detection of the contact). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or mice and finger contacts are optionally used simultaneously.
[0140] The term "focus selector" as used herein 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 location marker, the cursor functions as a "focus selector" such that when an input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 in FIG. 3 or touch-sensitive surface 451 in FIG. 4B) 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 in FIG. 1A or touchscreen in FIG. 4A) that enables direct interaction with user interface elements on the touchscreen display, a contact detected on the touchscreen functions as a "focus selector" such that when an input (e.g., a press input by contact) is detected on the touchscreen display at the location of 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, 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 a touchscreen display (e.g., by using a tab key or arrow keys to move focus from one button to another), and in these implementations the focus selector moves to follow the movement of focus between various regions of the user interface. Regardless of the particular form the focus selector takes, the focus selector is generally a user interface element (or contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device which element of the user interface the user intends to interact with).For example, positioning of a focus selector (e.g., a cursor, contact, or selection box) over a respective button while a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen) indicates that the user intends to activate the respective button (and not other user interface elements shown on the device's display).
[0141] 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 or a stylus contact) on the touch-sensitive surface, or a proxy for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a range of values including at least four distinct values, and more typically including hundreds (e.g., at least 256) distinct values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure the force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted average or sum) 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 a surrogate for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the surrogate measure for the force or pressure of the contact is used directly to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is described in units that correspond to the surrogate measure). In some implementations, the surrogate measure for the force or pressure of the contact is converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure).Using the intensity of contact as an attribute of user input enables a user to access additional device functionality that may not otherwise be easily accessible to the user on a device of reduced size with limited assets 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).
[0142] In some embodiments, the contact / motion module 130 uses a set of one or more intensity thresholds for determining whether an action has been performed by a user (e.g., for determining whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation thresholds of a particular physical actuator and may be adjusted without modifying the physical hardware of the device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display may be set to any of a wide range of predefined thresholds without modifying the hardware of the trackpad or touchscreen display. Additionally, in some implementations, a user of the device is provided with software settings for adjusting one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once with a system-level click “strength” parameter).
[0143] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of that contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predefined number of intensity samples, i.e., a set of intensity samples collected during a predefined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predefined event (e.g., after detecting a contact, before detecting a lift-off of the contact, before or after detecting the start of movement of the contact, 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 a contact is optionally based on one or more of a maximum intensity of the contact, a mean value of the intensity of the contact, an average value of the intensity of the contact, the top 10% values of the intensity of the contact, a half value of the maximum intensity of the contact, a 90% value of the maximum intensity of the contact, a value generated by low-pass filtering the intensity of the contact starting over a predefined time period or at a predefined time, etc. In some embodiments, the duration of the contact is used in determining the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an action is performed by the user. For example, the set of one or more intensity thresholds may include a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity not exceeding the first threshold results in a first action being performed, a contact having a characteristic intensity exceeding the first intensity threshold but not exceeding the second intensity threshold results in a second action being performed, and a contact having a characteristic intensity above the second intensity threshold results in a third action being performed. In some embodiments, the comparison between the characteristic intensity and the one or more intensity 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., to perform a respective option or to refrain from performing a respective action).
[0144] 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 a continuous swipe contact (e.g., a drag gesture) that transitions from a start position to 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 continuous swipe contact (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 prior to 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 circumstances, these smoothing algorithms eliminate small increases or decreases in the intensity of the swipe contact for purposes of determining the characteristic intensity.
[0145] The user interface diagrams described herein may optionally be configured with one or more intensity thresholds (e.g., a touch-detection intensity threshold IT0, a light-pressure intensity threshold IT L , Deep pressure intensity threshold IT D (For example, at least initially, L ), and / or one or more other intensity thresholds (e.g., TI L An intensity threshold lower than IT H), showing the current intensity of the contact on the touch-sensitive surface relative to the intensity of the touch-sensitive surface. This intensity diagram is typically not part of the displayed user interface, but is provided to aid in interpretation of the diagram. In some embodiments, the light pressure intensity threshold corresponds to an intensity at which the device performs an action normally associated with clicking a physical mouse button or trackpad. In some embodiments, the deep pressure intensity threshold corresponds to an intensity at which the device performs an action different from the action normally associated with clicking a physical mouse button or trackpad. In some embodiments, when a contact is detected having a characteristic intensity below the light pressure intensity threshold (e.g., above a nominal contact-detection intensity threshold ITO below which contact is no longer detected), the device moves a focus selector in accordance with the movement of the contact on the touch-sensitive surface without performing an action associated with the light or deep pressure intensity thresholds. In general, unless otherwise noted, these intensity thresholds are consistent among the various sets of user interface diagrams.
[0146] In some embodiments, the device's response to an input detected by the device depends on criteria based on the contact intensity during the input. For example, for some "light press" inputs, the intensity of the contact during the input that exceeds a first intensity threshold triggers a first response. In some embodiments, the device's response to an input detected by the device depends on criteria that include both the contact intensity during the input and time-based criteria. For example, for some "deep press" inputs, the intensity of the contact during the input that exceeds a second intensity threshold that is greater than the first intensity threshold for a light press triggers a second response only if a delay time has elapsed between meeting the first intensity threshold and meeting the second intensity threshold. This delay time is typically less than 200 ms (milliseconds) in time (e.g., 40 ms, 100 ms, or 120 ms depending on the magnitude of the second intensity threshold, with the delay time increasing as the second intensity threshold increases). This delay time helps to avoid accidental recognition of a deep press input. As another example, for some "deep press" inputs, there is a period of reduced sensitivity that occurs after the time the first intensity threshold is met. During the period of decreased sensitivity, the second intensity threshold is increased. This temporary increase in the second intensity threshold also serves to avoid accidental deep pressure inputs. For other deep pressure inputs, the response to the detection of a deep pressure input does not depend on a time-based criterion.
[0147] In some embodiments, one or more of the input intensity thresholds and / or corresponding outputs vary based on one or more factors, such as user settings, contact movement, input timing, running application, rate at which intensity is applied, number of simultaneous inputs, user history, environmental factors (e.g., ambient noise), position of focus selector, etc. Exemplary factors are described in U.S. Patent Application Publication Nos. 14 / 399,606 and 14 / 624,296, which are incorporated herein by reference in their entireties.
[0148] For example, FIG. 4C illustrates a dynamic intensity threshold 480 that varies over time based in part on the intensity of touch input 476 over time. The dynamic intensity threshold 480 is the sum of two components, a first component 474 that decays over time after a predefined delay time p1 from when touch input 476 is first detected, and a second component 478 that tracks the intensity of touch input 476 over time. The initial high intensity threshold of the first component 474 reduces accidental triggering of a "deep press" response while still allowing an immediate "deep press" response if touch input 476 provides sufficient intensity. The second component 478 reduces unintended triggering of a "deep press" response due to gradual intensity variations of the touch input. In some embodiments, a "deep press" response is triggered when touch input 476 meets the dynamic intensity threshold 480 (e.g., at point 481 in FIG. 4C).
[0149] FIG. 4D illustrates another dynamic intensity threshold 486 (e.g., intensity threshold I D ) is shown in FIG. 4D. Two other intensity thresholds are shown: the first intensity threshold I H and a second intensity threshold I L In FIG. 4D, the touch input 484 crosses the first intensity threshold I before time p2. H and a second intensity threshold I L 4D, the dynamic intensity threshold 486 decays over time, with the decay occurring after a predefined delay p1 from time 482 (the second intensity threshold I L This type of dynamic intensity threshold begins at time 488 when the response associated with the first intensity threshold I H or the second intensity threshold I L Immediately after or simultaneously with triggering a response associated with a lower intensity threshold, such as D Reduce accidental triggering of associated responses.
[0150] FIG. 4E illustrates yet another dynamic intensity threshold 492 (e.g., intensity threshold I D In FIG. 4E, the intensity threshold I LThe response associated with the intensity threshold I is triggered after a delay time p2 from when the touch input 490 is first detected. At the same time, the dynamic intensity threshold 492 decays after a predefined delay time p1 from when the touch input 490 is first detected. Thus, the intensity threshold I is triggered after a delay time p1 from when the touch input 490 is first detected. L The decrease in the intensity of the touch input 490 after triggering a response associated with the touch input 490 may occur when the intensity of the touch input 490 exceeds another intensity threshold, e.g., intensity threshold I L Even when the intensity threshold I D A response associated with the event may be triggered.
[0151] Light pressure intensity threshold IT L From a strength below the light pressure strength threshold IT L and deep pressure intensity threshold IT D An increase in the characteristic intensity of a contact to an intensity between is sometimes referred to as a "light press" input. D From intensity below the threshold IT D An increase in the characteristic intensity of a touch to an intensity above the touch detection intensity threshold IT0 is sometimes referred to as a "deep press" input. L An increase in the characteristic intensity of the contact to an intensity between may be referred to as detection of a contact on the touch surface. A decrease in the characteristic intensity of the contact from an intensity above the contact-detection intensity threshold IT0 to an intensity below the contact-detection intensity threshold IT0 may be referred to as detection of lift-off of the contact from the touch surface. In some embodiments, IT0 is zero. In some embodiments, IT0 is greater than zero. In some examples, shaded circles or ellipses are used to represent the intensity of the contacts on the touch-sensitive surface. In some examples, unshaded circles or ellipses are used to represent each contact on the touch-sensitive surface without specifying the intensity of each contact.
[0152] In some embodiments described herein, one or more actions are performed in response to detecting a gesture including a respective press input or in response to detecting a respective press input performed on a respective contact (or contacts), where the respective press input is detected based at least in part on detecting an increase in intensity of the contact (or contacts) above a press 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 press input intensity threshold (e.g., the respective actions are performed on a "downstroke" of the respective press input). In some embodiments, the press input includes an increase in intensity of the respective contact above a press input intensity threshold and a subsequent decrease in intensity of the contact below the press input intensity threshold, where the respective actions are performed in response to detecting a subsequent decrease in intensity of the respective contact below the press input threshold (e.g., the respective actions are performed on an "upstroke" of the respective press input).
[0153] In some embodiments, the device employs intensity hysteresis to avoid accidental inputs, sometimes referred to as "jitter," and the device defines or selects a hysteresis intensity threshold that has a predefined 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, and the respective action is performed in response to detecting the subsequent decrease in intensity of each contact below the hysteresis intensity threshold (e.g., the respective action is performed on the "upstroke" of the respective pressure input). Similarly, in some embodiments, a pressure input is detected only when the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the pressure input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a 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).
[0154] For ease of explanation, the description of the operations performed in response to a press input associated with a press input intensity threshold or in response to a gesture including a press input is optionally triggered in response to detecting an increase in the intensity of the contact above the press input intensity threshold, an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the press input intensity threshold, a decrease in the intensity of the contact below the press input intensity threshold, or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the press input intensity threshold. Furthermore, in examples where an operation is described as being performed in response to detecting a decrease in the intensity of the contact below a press input intensity threshold, the operation is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and lower than the press input intensity threshold. As discussed above, in some embodiments, the triggering of these responses also depends on a time-based criterion being met (e.g., a delay time has elapsed between the first intensity threshold being met and the second intensity threshold being met).
[0155] 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, that will be detected by a user with 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., the fingers, palm, or other part of a user's hand), the tactile output generated 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 "down-click" or "up-click" of a physical actuator button. In some cases, a user feels a tactile sensation such as a "down-click" or "up-click" even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or sensed 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 user interpretation of touch depends on the user's personal sensory perception, but there are many sensory perceptions of touch that are common to a majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., an "up click," a "down click," "roughness"), unless otherwise noted, the generated tactile output corresponds to a physical displacement of the device, or a component of the device, that produces the described sensory perception for a typical (or average) user.Using tactile output to provide haptic feedback to the user can improve usability of the device and make the user-device interface more efficient (e.g., by helping the user provide appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing power usage and improving the device's battery life by enabling the user to use the device more quickly and efficiently.
[0156] In some embodiments, the tactile output pattern specifies characteristics of the tactile output, such as the amplitude of the tactile output, the shape of the movement waveform of the tactile output, the frequency of the tactile output, and / or the duration of the tactile output.
[0157] When tactile outputs having different tactile output patterns are generated by the device (e.g., via one or more tactile output generators that move a movable mass to generate the tactile output), the tactile outputs may cause different tactile sensations when a user holds or touches the device. When the user's sensations are based on the user's perception of the tactile output, most users are able to identify changes in the waveform, frequency, and amplitude of the tactile output generated by the device. Thus, the waveform, frequency, and amplitude can be adjusted to indicate to the user that different actions have been performed. Thus, in some situations, tactile output having a tactile output pattern designed, selected, and / or developed to simulate the properties (e.g., size, material, weight, stiffness, smoothness, etc.), behaviors (e.g., vibration, displacement, acceleration, rotation, expansion, etc.), and / or interactions (e.g., collision, adhesion, repulsion, attraction, friction, etc.) of objects in a given environment (e.g., a user interface including graphical features and objects, a simulated physical environment having virtual boundaries and virtual objects, an actual physical environment having physical boundaries and physical objects, and / or any combination of the above) provides a user with useful feedback that reduces input errors and increases the efficiency of a user's operation of the device. In addition, the tactile output is optionally generated to correspond to feedback unrelated to simulated physical properties, such as input thresholds or object selection. In some situations, such tactile output provides a user with useful feedback that reduces input errors and increases the efficiency of a user's operation of the device.
[0158] In some embodiments, a tactile output with a suitable tactile output pattern serves as a cue to the appearance of an event of interest behind the scene in a user interface or device. Examples of events of interest include activation of an affordance (e.g., a real button, a virtual button, or a toggle switch) provided on the device or in the user interface, success or failure of a requested action, reaching or crossing a boundary in the user interface, entering a new state, switching input focus between objects, activating a new mode, reaching or crossing an input threshold, detection or recognition of a type of input or gesture, etc. In some embodiments, a tactile output is provided to act as a warning or alert to an impending event or outcome that will occur unless a redirection or interrupt input is detected in a timely manner. Tactile output is also used in other contexts to improve the user experience, improve the accessibility of the device to users with visual or motor impairments or other accessibility needs, and / or improve the efficiency and functionality of the user interface and / or device. The tactile output, optionally accompanied by audio output and / or visible user interface changes, further enhances the user's experience when interacting with the user interface and / or device, facilitates better communication of information about the state of the user interface and / or device, reduces input errors, and increases the efficiency of the user's operation of the device.
[0159] 4F-4H provide a set of sample tactile output patterns that can be used individually or in combination, either through or via one or more transformations (e.g., modulation, amplification, truncation, etc.), to create suitable tactile feedback for a variety of scenarios and for a variety of purposes, such as those mentioned or described above with respect to the user interfaces and methods discussed herein. This example palette of tactile outputs shows how a set of three waveforms and eight frequencies can be used to create an array of tactile output patterns. In addition to the tactile output patterns displayed in these figures, each of these tactile output patterns can be optionally adjusted in amplitude, for example, by changing the gain values for the tactile output patterns for full tap 80 Hz, full tap 200 Hz, mini tap 80 Hz, mini tap 200 Hz, micro tap 80 Hz, and micro tap 200 Hz in FIGS. 4I-4K, as shown, which are represented by variants with gains of 1.0, 0.75, 0.5, and 0.25, respectively. As shown in Figures 4I-4K, changing the gain of the tactile output pattern changes the amplitude of the pattern without changing the frequency of the pattern or changing the shape of the waveform. In some embodiments, changing the frequency of the tactile output pattern allows for lower amplitudes because some tactile output generators are limited by how much force they can apply to a moving mass, and thus the greater the frequency movement of the mass, the lower the amplitude is constrained to ensure that the acceleration required to create the waveform does not require forces outside the operating force range of the tactile output generator (e.g., the peak amplitudes of full taps at 230Hz, 270Hz, and 300Hz are lower than the amplitudes of full taps at 80Hz, 100Hz, 125Hz, and 200Hz).
[0160] 4F-4K show tactile output patterns having particular waveforms. The waveforms of the tactile output patterns represent a pattern of physical displacement relative to a neutral position (e.g., xzero) over time that the moving mass passes to generate a tactile output in that tactile output pattern. For example, a first set of tactile output patterns (e.g., "full tap" tactile output patterns) shown in FIG. 4F each have a waveform that includes two complete cycles of vibration (e.g., vibrations that start and end at a neutral position and cross the neutral position three times). A second set of tactile output patterns (e.g., "mini tap" tactile output patterns) shown in FIG. 4G each have a waveform that includes one complete cycle of vibration (e.g., vibrations that start and end at a neutral position and cross the neutral position once). A third set of tactile output patterns (e.g., "micro tap" tactile output patterns) shown in FIG. 4H each have a waveform that includes one half of a complete cycle of vibration (e.g., vibrations that start and end at a neutral position and do not cross the neutral position). The waveform of the tactile output pattern also includes a start buffer and an end buffer representing the gradual acceleration and deceleration of the movable mass at the beginning and end of the tactile output. The example waveforms displayed in Figures 4F-4K include xmin and xmax values representing the maximum and minimum extent of the movement of the movable mass. For larger electronic devices with larger movable masses, the minimum and maximum limits of the movement of the mass may be greater or smaller. Although the examples shown in Figures 4F-4K describe the movement of the mass in one dimension, similar principles may apply to the movement of the movable mass in two or three dimensions.
[0161] As shown in Figures 4F-4K, each tactile output pattern also has a corresponding characteristic frequency that affects the "pitch" of the tactile sensation felt by the user from a tactile output having that characteristic frequency. For continuous tactile outputs, the characteristic frequency represents the number of cycles (e.g., cycles per second) completed by the moving mass of the tactile output generator in a given period of time. For discrete tactile outputs, discrete output signals (e.g., having 0.5, 1, or 2 cycles) are generated, and the characteristic frequency value specifies how fast the moving mass must move to generate a tactile output having that characteristic frequency. As shown in Figures 4F-4H, for each type of tactile output (e.g., defined by a respective waveform such as full tap, mini tap, or micro tap), a higher frequency value corresponds to a faster movement(s) by the moving mass, and therefore generally a shorter time to complete the tactile output (e.g., the time to complete the number of cycles required for a discrete tactile output, including start and end buffer times). For example, a full tap with a characteristic frequency of 80 Hz takes longer to complete than a full tap with a characteristic frequency of 100 Hz (e.g., 35.4 ms vs. 28.3 ms in FIG. 4F). In addition, for a given frequency, a tactile output with more cycles in its waveform at each frequency takes longer to complete than a tactile output with fewer cycles in its waveform at the same respective frequency. For example, a full tap at 150 Hz takes longer to complete than a mini-tap at 150 Hz (e.g., 19.4 ms vs. 12.8 ms), which takes longer to complete than a micro-tap at 150 Hz (e.g., 12.8 ms vs. 9.4 ms). However, tactile output patterns of different frequencies may not hold true (e.g., a tactile output with more cycles but a higher frequency may take less time than a tactile output with fewer cycles but a lower frequency, and vice versa). For example, at 300Hz, a full tap takes just as long as a mini tap (eg, 9.9ms).
[0162] As shown in FIGS. 4F-4K, a tactile output pattern also has a characteristic amplitude that affects the amount of energy contained in the tactile signal, i.e., the “strength” of the tactile sensation that can be felt by a user due to a tactile output having that characteristic amplitude. In some embodiments, the characteristic amplitude of a tactile output pattern refers to an absolute or normalized value that represents the maximum displacement of the moving mass from a neutral position when generating a tactile output. In some embodiments, the characteristic amplitude of a tactile output pattern is adjustable, for example, by a fixed or dynamically determined gain factor (e.g., a value between 0 and 1) and / or a pre-set metric (e.g., an input-based metric and / or a user-interface-based metric) according to various conditions (e.g., customized based on the context and behavior of the user interface). In some embodiments, an input-based metric (e.g., an intensity change metric or an input velocity metric) indicates a characteristic of the input (e.g., a rate of change in a characteristic intensity of a contact in a press input during input that triggers generation of a tactile output, or a rate of movement of a contact on a touch-sensitive surface). In some embodiments, a user interface based metric (e.g., a boundary crossing speed metric) indicates a characteristic of a user interface element during a change in the user interface that triggers generation of a tactile output (e.g., the speed of movement of an element crossing a hidden or visible boundary in the user interface). In some embodiments, the characteristic amplitude of the tactile output pattern may be modulated by an "envelope", where peaks in adjacent cycles may have different amplitudes, one of the above waveforms being further modulated by multiplying it by an envelope parameter that changes over time (e.g., from 0 to 1) to gradually adjust the amplitude of a portion of the tactile output over time while the tactile output is being generated.
[0163] For illustrative purposes, only certain frequencies, amplitudes, and waveforms are depicted in the sample tactile output patterns in Figures 4F-4K, but tactile output patterns having other frequencies, amplitudes, and waveforms may be used for similar purposes. For example, waveforms having 0.5 to 4 cycles may be used. Other frequencies in the range of 60 Hz to 400 Hz may also be used. User Interface and Related Processes
[0164] Attention is now directed to embodiments of user interfaces ("UI") and associated processes that may be implemented on an electronic device, such as portable multifunction device 100 or device 300, that includes a display and a touch-sensitive surface, (optionally) one or more tactile output generators for generating tactile output, and (optionally) one or more sensors for detecting the intensity of contact with the touch-sensitive surface.
[0165] 5A1-5A4 and 5B-5AY show example user interfaces for changing delivery preferences for future notifications of events of an event type, according to some embodiments. The user interfaces in those figures are used to illustrate the processes described below, including those in FIGS. 7A-7G, 8A-8E, and 9A-9E. For ease of explanation, some of the embodiments are discussed with reference to operations performed on a device having touch-sensitive display system 112. In such embodiments, the focus selector is optionally a respective finger or stylus contact, a representative point corresponding to a finger or stylus contact (e.g., an enantiomeric center of the respective contact or a point associated with the respective contact), or an enantiomeric center of two or more contacts detected on touch-sensitive display system 112. However, similar operations are optionally performed on a device having display 450 and separate touch-sensitive surface 451 in response to detecting a contact on touch-sensitive surface 451 while displaying the user interface shown in the figures on display 450, along with a focus selector.
[0166] 5A1-5A4 illustrate activation of a display (e.g., touch-sensitive display 112) in response to a change in the orientation of device 100. When the display is activated, notifications received while the device was in a screen-off state are displayed. In some embodiments, the device uses one or more sensors (e.g., an accelerometer, a gyro, an audio sensor, a thermal sensor, and / or a light sensor) to determine whether the device's orientation has changed. For example, the device determines whether the device has been rotated beyond a threshold angle (e.g., rotated along an axis of the device, such as tilted from a position in which the device is substantially horizontal to a position in which the device is substantially vertical). In FIG. 5A1, the device is in a screen-off state while being held flat in a user's hand 5002 such that the display of the device is substantially horizontal. In FIG. 5A2, the device is tilted such that the display is more vertical than in FIG. 5A1. In FIG. 5A2, the display is not activated because the tilt angle of the device has not increased above the threshold tilt angle. In FIG. 5A3, the device is tilted such that the display is more vertical than in FIG. 5A2. In Figure 5A3, as the tilt angle of the device increases above the threshold tilt angle, the display transitions from a screen-off state to a screen-on state and a wake screen user interface 5004 (e.g., the initial user interface displayed when the device transitions from a screen-off state to a screen-on state) is displayed by the display 112. In Figure 5A4, the display 112 is substantially vertical.
[0167] In Figure 5A4, a lock icon 5005 indicating that the device is locked is shown in the wake screen user interface 5004. In Figure 5B, the lock icon 5005 is replaced with an unlocked icon 5007 indicating that the device is unlocked (e.g., in response to receiving user authentication information such as biometric information of a user of the device or a device passcode). The wake screen user interface 5004 in locked mode optionally displays less information (e.g., displays an edited version of a notification) than the wake screen user interface 5004 displayed in unlocked mode.
[0168] 5B illustrates a wake screen user interface 5004, according to some embodiments. The wake screen user interface 5004 displays notifications 5006, 5008, 5010, 5012, 5014, and 5016 corresponding to events (e.g., events that occurred while the device 100 was in a screen-off state). For example, notification 5006 corresponds to an event generated by an application with the application title "Social Media," as indicated by application identification information 5018. Notification 5006 also includes an icon 5020 corresponding to the social media application and a receipt time indication 5022.
[0169] 5C-5J show inputs for changing delivery preferences for future notifications of events from a social media application. Inputs for changing delivery preferences for future notifications include a swipe input on the social media notification 5006 to reveal a set of notification controllers 5028 as shown in FIGs. 5C-5E, a tap input on an options controller 5030 of the set of notification controllers 5028 to reveal a notification delivery preferences controller menu 5038 as shown in FIGs. 5G-5H, and a tap input on a controller 5040 of the delivery preferences controller menu 5038 as shown in FIG. 5I. An input in the controller 5040 changes a delivery preference for future notifications of events from the social media application from a prominent delivery mode (e.g., future notifications of events from the social media application are displayed on the wake screen user interface 5004) to an unobtrusive delivery display mode (e.g., future notifications of events from the social media application are sent to the notification history without first being displayed on the wake screen user interface 5004, such that an input to view the notification history is required).
[0170] 5C-5E illustrate a left swipe input on notification 5006, revealing a set of notification controllers 5028 corresponding to notification 5006. In FIG. 5C, contact 5024 is detected at a location on touch screen 112 corresponding to notification 5006. In FIG. 5C-5E, contact 5024 moves along a path indicated by arrow 5026. As contact 5024 moves leftward along the path indicated by arrow 5026, notification 5006 also moves leftward (e.g., as if being "dragged" by contact 5024 as notification 5006 moves), revealing set of notification controllers 5028 as shown in FIG. 5E. Set of notification controllers 5028 includes options controller 5030 (e.g., for displaying a set of notification delivery preference controllers for a social media application), view controller 5032 (e.g., for displaying an expanded view of notification 5006), and dismiss controller 5034 (e.g., for hiding notification 5006).
[0171] FIG. 5G illustrates a tap input by contact 5030 at a location on touch screen 112 corresponding to options controller 5030. In response to the tap input, notifications 5008-5016 are no longer displayed and a notification delivery preference controller menu 5038 is displayed in wake screen user interface 5004, as shown in FIG. 5H. Notification delivery preference controller menu 5038 includes controllers for adjusting delivery preferences for notifications from the social media application (since notification delivery preference controller menu 5038 was accessed via an input in social media application notification 5006). Notification delivery preference controller menu 5038 includes a controller 5040 for changing delivery preferences for future notifications of events of the social media application to a mode of unobtrusive delivery (e.g., future notifications of events of the social media application are sent to notification history when received), a controller 5042 for turning off future notifications from the social media application, a controller 5044 for displaying a notification settings user interface of the social media application, and a controller 5046 for hiding menu 5038. The notification delivery preferences controller menu 5038 also includes an application identification 5048 and an application icon 5050 that correspond to the application identification 5018 and application icon 5020 of the notification 5006 .
[0172] In Figure 5I, a tap input by contact 5052 is detected at a location on touch screen 112 corresponding to controller 5040 to change delivery preferences for future notifications of events in the social media application to a mode of unobtrusive delivery. In Figure 5J, in response to the input at controller 5040, notification delivery preferences controller menu 5038 and notification 5006 are no longer displayed and notifications 5008-5016 are redisplayed.
[0173] As a result of an input to change a delivery preference for future notifications of events from a social media application to a mode of unobtrusive delivery display, as described with respect to Figures 5C-5J, social media notifications received after the change in delivery preference are not displayed in the wake screen user interface 5004 until an input is provided to view notification history, as described with respect to Figures 5J-5O.
[0174] From FIG. 5J to FIG. 5K, the current time 5054 changes from 6:02 to 6:05. A new notification 5056 received at 6:04 is displayed on the wake screen user interface 5004. As shown in FIG. 5K, a new event occurred in the social media application at 6:05, but the notification corresponding to the event is not displayed on the wake screen user interface 5004 (because the delivery preferences for event notifications from the social media application were changed to a more unobtrusive mode such that notifications are sent directly to the notification history, as described with reference to FIG. 5B-FIG. 5I). From FIG. 5K to FIG. 5L, the current time 5054 changes from 6:05 to 6:08.
[0175] 5M-5O show an upward swipe input on the wake screen user interface 5004, revealing a notification history. In FIGS. 5M and 5N, contact 5058 with the touch screen 112 moves along a path indicated by arrow 5060. As contact 5058 moves upward along the path indicated by arrow 5060, notifications 5008-5016 and 5056 also move upward (e.g., as if being "dragged" by contact 5058 as the notifications move). In FIG. 5O, contact 5058 continues to move along the path indicated by arrow 5060 such that notification history 5062 appears on the wake screen 5004. Notification history 5062 includes a notification 5064 for an event in a social media application that occurred at 6:05, as shown in FIGS. 5O and 5P. Notification history 5062 also includes a notification 5068 for an incoming message in a message thread in a message application. The notification 5068 is aggregated with notifications 5066 of other received messages in a message thread of the messages application, as described in more detail below.
[0176] Figures 5Q-5Y show inputs for changing delivery preferences for future notifications of events from a social media application. The inputs for changing delivery preferences for future notifications include a press input on the social media notification 5064 to reveal an expanded version of the notification 5064, as shown in Figures 5Q-5S, an input on a controller 5074 displayed on the expanded version of the notification 5064, as shown in Figures 5T-5U, and an input on a controller 5080 in a delivery preferences controller menu 5078. The input on the controller changes the delivery preferences for future notifications of events from the social media application from a mode of inconspicuous delivery display to a mode of prominent delivery.
[0177] 5Q-5S show a press input at notification 5064, revealing an expanded version of notification 5064. In FIG. 5Q, contact 5070 has been detected at a location on touch screen 112 corresponding to notification 5064. The characteristic intensity of contact 5070 is above contact detection intensity threshold level IT0 (as indicated by intensity level meter 5001) and is below hint intensity threshold level IT H In FIG. 5R, the characteristic intensity of contact 5070 (as indicated by intensity level meter 5001) is below the hint intensity threshold IT H As shown in Figures 5R-5S, the characteristic intensity of contact 5070 increases above the hint intensity threshold level IT H , the background of the wakescreen user interface 5004 becomes increasingly blurred as the characteristic intensity of the contact 5070 increases above the light pressure intensity threshold level IT L The light pressure intensity threshold level IT LIn response to detecting an increase in the characteristic intensity of contact 5070 above 5064, an expanded version of notification 5064 is displayed. In some embodiments, if additional notification information is available regarding the event indicated by the notification, the additional information is displayed in the expanded version of the notification in response to an input (e.g., a light press input) at a location corresponding to the notification. In FIG. 5S, an expanded version of notification 5064 including image 5072 is displayed and notifications 5010-5016 and 5066-5068 are no longer displayed. A controller 5074 (e.g., for displaying a set of notification delivery preference controllers for a social media application) is displayed in the expanded version of notification 5064. In some embodiments, an input (e.g., a tap input) at a location of the expanded version of notification 5064 (e.g., away from controller 5074) replaces the display of wake screen user interface 5004 and the expanded view of notification 5064 with a display of the application (e.g., a social media application) corresponding to notification 5064. In some embodiments, an input (e.g., a tap input) at a location outside the expanded version of notification 5064 causes the display of the expanded view of notification 5064 to be replaced with notifications 5010-5016, the unexpanded version of notification 5064, and notifications 5066-5068 (e.g., returning to the previous view of the wake screen user interface, as shown in FIG. 5Q).
[0178] FIGURE 5T illustrates a tap input by contact 5076 on controller 5074 of an expanded version of notification 5064. In response to the tap input, a notification delivery preferences controller menu 5078 is displayed in the wake screen user interface 5004, as shown in FIGURE 5U. (The notification delivery preferences controller menu 5078 is an illustrative example of a delivery preferences controller menu having different characteristics than the notification delivery preferences controller menu 5038 described with respect to FIGURE 5H. In some embodiments, in response to the input described with respect to FIGURE 5T, the notification delivery preferences controller menu 5038 is displayed. It will be appreciated that the notification delivery preferences controller menus described herein may include various combinations of the features and / or controllers described with respect to menu 5038 or menu 5078.)
[0179] The notification delivery preference controller menu 5078 includes controllers for adjusting delivery preferences for notifications from the social media application (since the notification delivery preference controller menu 5078 was accessed via an input in the social media application notification 5064), as shown in FIG. 5U. The notification delivery preference controller menu 5078 includes a controller 5080 for changing the delivery preference for future notifications of events of the social media application to a prominent mode of delivery (e.g., future notifications of events of the social media application are displayed on the wake screen user interface 5004 when received), a controller 5040 for changing the delivery preference for future notifications of events of the social media application to an unobtrusive mode of delivery (e.g., future notifications of events of the social media application are sent to the notification history), a controller 5042 for turning off future notifications from the social media application, a controller 5044 for displaying a notification settings user interface of the social media application, and a controller 5046 for hiding the menu 5038. The notification delivery preference controller menu 5078 also includes a status marker 5082 to indicate the currently selected notification delivery preference and an animated icon 5084 to indicate the currently selected notification delivery mode, which in this example is a mode of unobtrusive delivery.
[0180] 5U-5X show frames of an animation sequence of animated icon 5084. Animated icon 5084 depicts a miniature version of device 100, and the animation sequence shows an input (animated by animated contact representation 5086) to access a notification (animated by animated notification representation 5088) in the notification history.
[0181] In FIG. 5X, a tap input by contact 5090 is detected at a location on the touch screen 112 corresponding to the controller 5080 to change the notification delivery preference to a mode of prominent delivery. In FIG. 5Y, in response to the input on the controller 5080, a state marker 5082 is displayed on the controller 5080 to indicate that the currently selected notification delivery mode is a mode of prominent delivery in which notifications from social media applications are initially displayed on the wake screen. An animated icon 5092 is displayed to indicate the mode of prominent delivery. FIGS. 5Y-5Z show frames of an animation sequence of the animated icon 5092. The animation sequence shows a screen off state (shown in FIG. 5Y) transitioning to a screen on state (shown in FIG. 5Z) in which a representation 5094 of the notification is shown in the wake screen user interface.
[0182] In some embodiments, animated icon 5084 is only displayed when the currently selected notification delivery preference is in a mode of unobtrusive delivery (as shown in FIGS. 5U-5X), and animated icon 5092 is only displayed when the currently selected notification delivery preference is in a mode of prominent delivery (as shown in FIGS. 5Y-5Z). In some embodiments, animated icon 5084 is only animated when the currently selected notification delivery preference is in a mode of unobtrusive delivery, and animated icon 5092 is only animated when the currently selected notification delivery preference is in a mode of prominent delivery. In some embodiments, animated icons 5084 and 5092 are displayed simultaneously. In some embodiments, animated icons 5084 and 5092 are animated simultaneously. In some embodiments, animated icon 5084 is animated only when the currently selected notification delivery preference is a prominent mode of delivery (e.g., to educate the user about modes of delivery that have not been selected), and animated icon 5092 is animated only when the currently selected notification delivery preference is a non-prominent mode of delivery.
[0183] In Figure 5Z, a tap input by contact 5096 is detected at a location on touch screen 112 corresponding to controller 5080 to change a notification delivery preference to a quiet delivery mode. In Figure 5AA, a tap input by contact 5098 is detected at a location on touch screen 112 corresponding to controller 5044 to display a notification settings user interface for a social media application.
[0184] 5AB-5AG illustrate using an application's notification settings user interface 5100 to change delivery preferences for future notifications of an application's events.
[0185] 5AB, in response to input by contact 5098, wake screen user interface 5004, notifications 5064, and notification delivery preferences controller menu 5078 are replaced with a display of a notification settings user interface 5100. The notification settings user interface 5100 includes an application identifier 5102 to indicate that the toggles displayed in the notification settings user interface 5100 control settings for a social media application. The notification settings user interface 5100 includes a toggle 5104 for enabling / disabling notifications for the application, a toggle 5106 for enabling / disabling showing notifications for the application in the wake screen user interface 5004, a toggle 5108 for enabling / disabling showing notifications for the application in the notification history, and a toggle 5110 for enabling / disabling a notification banner from being displayed while the device is in a screen-on state (e.g., while the user is interacting with the device).
[0186] Animated icons 5112, 5114, and 5116 indicate prominent, inconspicuous, and notification banner delivery modes, respectively. Active mode indicators 5118, 5120, and 5122 indicate the activation state of prominent, inconspicuous, and notification banner delivery modes, respectively. Check marks on active mode indicators 5120 and 5122 indicate that inconspicuous and notification banner delivery modes, respectively, are currently activated. Figures 5AB-5AD show frames of the animation sequence of animated icons 5114 and 5116, respectively.
[0187] In Figure 5AD, a tap input by contact 5124 is detected at a location on touch screen 112 corresponding to toggle 5106. The input by contact 5124 changes the delivery preference for future notifications of the event. The delivery preference is changed from a mode in which showing the application's notifications in wake screen user interface 5004 is disabled (as indicated by the state of toggle 5106 in Figure 5AD) to a mode in which showing the application's notifications in wake screen user interface 5004 is enabled (as indicated by the state of toggle 5106 and a check mark in active mode indicator 5118 in Figure 5AE). Figures 5AE-5AF show frames of an animation sequence for animated icons 5112, 5114, and 5116, respectively.
[0188] In some embodiments (e.g., as shown in FIGS. 5AB-5AF), animated icon 5112 is animated when toggle 5106 is in an enabled state and is not animated when corresponding toggle 5106 is in a disabled state, animated icon 5114 is animated when corresponding toggle 5108 is in an enabled state and is not animated when toggle 5108 is in a disabled state, and animated icon 5116 is animated when corresponding toggle 5110 is in an enabled state and is not animated when toggle 5110 is in a disabled state. In some embodiments, animated icons 5112, 5114, and 5116 are all animated and notification settings user interface 5100 is displayed regardless of the state of the toggle corresponding to each animated icon.
[0189] From Figure 5AF to Figure 5AG, the current time 5054 changes from 6:08 to 6:10. In response to input by contact 5124 as described with respect to Figure 5AD, showing notifications of the application in the wake screen user interface 5004 is enabled. As a result, a new notification 5126 of the event received at 6:09 for the social media application is displayed in the wake screen user interface 5004 of Figure 5AG.
[0190] 5AH-5AR illustrate inputs for changing delivery preferences for future notifications of a subset of events from an application. For example, a news application may generate events from multiple news sources, and a user may want to set different notification delivery preferences for the various news sources. In some embodiments, the events corresponding to each news source are a subset of events from the news application.
[0191] FIG. 5AH illustrates a left swipe input by contact 5128 (e.g., with leftward movement 5130) on notification 5010, revealing a set of notification controllers 5132 corresponding to notification 5010. FIG. 5AI illustrates a tap input by contact 5138 on option controller 5134. In response to the tap input, notifications 5126, 5056, 5008, 5012, and 5014 are no longer displayed, and notification delivery preferences controller menu 5138 and controller 5140 for hiding menu 5138 are displayed in wake screen user interface 5004, as shown in FIG. 5AJ. Notification delivery preferences controller menu 5138 includes controllers for adjusting delivery preferences for one or more news sources of the news application. Notification delivery preferences controller menu 5138 includes a currently selected source indicator 5142 that indicates one or more news sources to which the change in delivery preferences applies. A chevron 5144 is used to indicate a controller for displaying additional news sources. Notification delivery preferences controller menu 5138 includes controller 5146 for changing delivery preferences for future notifications of events from one or more news sources to a mode of unobtrusive delivery (e.g., future notifications of events from one or more news sources are sent to a notification history), controller 5148 for turning off future notifications from one or more news sources, and controller 5150 for displaying a notification settings user interface for one or more news sources. While the currently selected news source is "A Habsburg Contingency" as indicated by currently selected source indication 5142, selection of controller 5146 or 5148 changes notification delivery preferences for events from the news source "A Habsburg Contingency" but not other news sources that are not currently selected.
[0192] In Figure 5AK, a tap input by contact 5154 is detected at a location on touch screen 112 corresponding to V-shape 5144 for displaying additional news sources. In Figure 5AL, in response to the input at V-shape 5144, notification delivery preference controller menu 5138 replaces the display of controllers 5146, 5148, and 5150 with a display of controller 5156 for selecting a first additional news source ("Local Daily"), controller 5158 for selecting a second additional news source ("The Urban Times"), and controller 5160 for selecting all news sources corresponding to the news application (e.g., "The Contingency of the House of Habsburg," "Local Daily," and "The Urban Times"). The orientation of V-shape 5144 has changed (e.g., to indicate that the mode of notification delivery preferences controller menu 5138 has changed from displaying controllers 5146, 5148, and 5150 for changing delivery preferences for future notifications of events from news sources to displaying controllers 5156, 5158, and 5160 for selecting one or more news sources). In some embodiments, in response to an input at controller 5141, the selected news source ("A Habsburg Journey") remains selected and notification delivery preferences controller menu 5138 as shown in FIG. 5AK is re-displayed.
[0193] In Figure 5AM, a tap input by contact 5162 is detected at a location on touch screen 112 corresponding to controller 5160 for selecting all news sources. In Figure 5AN, in response to the input at controller 5160, currently selected source indication 5142 of notification delivery preferences controller menu 5138 changes from indicating "Habsburg Contingency" to indicating "All News Sources" as shown in Figure 5AK. The orientation of V-shape 5144 has changed (e.g., to indicate that the mode of notification delivery preferences controller menu 5138 has changed from indicating controllers 5156, 5158, and 5160 for selecting one or more news sources to a redisplay of controllers 5146, 5148, and 5150 for changing delivery preferences for future notifications of events from all news sources).
[0194] In FIG. 5AO, a tap input by contact 5164 is detected at a location on the touch screen 112 corresponding to controller 5148 for turning off future notifications from one or more news sources. Selection of controller 5146 or 5148 while the currently selected news source is "All News Sources" as indicated by currently selected source indication 5142 changes the notification delivery preferences for events from all news sources of the news application. In some embodiments, as a result of the input at controller 5148 to turn off future notifications from all news sources, the previously received notification 5010 from news source "A Habsburg Happening" and the notification 5012 for news from news source "Local Daily" are not displayed when the wake screen user interface 5004 is subsequently displayed, as shown in FIG. 5AP.
[0195] 5AQ-5AS illustrate inputs for modifying delivery preferences for notifications corresponding to a subset of events of a communication application. For example, a messaging application may generate events corresponding to messages received from various contacts and / or contact groups, and a user may want to hide notifications for messages in a conversation thread with a first contact while continuing to receive notifications for messages in a conversation thread with a second contact. In some embodiments, the events corresponding to the conversation thread are a subset of events from the messaging application.
[0196] In Figures 5AQ-5AR, notification delivery preference controller menu 5186 5AQ corresponding to a message application is displayed in response to an input in a message notification. For example, in Figure 5AQ, input by contact 5166 (e.g., a left swipe input or a light press input) is detected at a location on touch screen 112 corresponding to notification 5008, causing a controller to be displayed for displaying a set of notification delivery preference controllers, and in response to a subsequent input (e.g., a tap input) on the displayed controller, notification delivery preference controller menu 5168 is displayed (e.g., as described with respect to Figures 5B-5H or 5R-5U). Notification delivery preferences controller menu 5168 includes a controller 5170 for changing delivery preferences for future notifications for messages in the conversation thread with Ursula to a mode of unobtrusive delivery (e.g., future notifications for messages in the conversation thread with Ursula are sent to notification history), a controller 5172 for turning off future notifications in the conversation thread with Ursula, a controller 5044 for displaying a notification settings user interface for a messages application, and a controller 5176 for hiding menu 5168. In some embodiments, changes to delivery preferences for one or more applications, such as a messages application, are effective for a limited period of time (e.g., an hour, a day, a week, etc.).
[0197] 5AR illustrates a tap input by contact 5178 at a location on the touch screen 112 corresponding to the controller 5172 to turn off future notifications in the conversation thread with Ursula. In response to the tap input, the wake screen user interface 5004 is redisplayed. In some embodiments, in response to an input at the controller 5172 to turn off future notifications in the conversation thread with the contact (or as a result of interacting with the notifications), previously received notifications in the conversation thread with the contact are no longer displayed. For example, in FIG. 5AS, notifications 5126, 5056, and 5054 are displayed in the wake screen user interface 5004, and previously received notification 5008 in the conversation thread with Ursula is no longer displayed in the wake screen user interface 5004.
[0198] From Figure 5AS to Figure 5AT, the current time 5054 changes from 6:10 to 6:12. A new notification from the messages application appears, showing a message from contact Edwin. Because notifications in the conversation thread with Ursula were turned off with the inputs described with respect to Figure 5AR, notifications for messages in other conversation threads (e.g., messages from other contacts such as Edwin) continue to appear in the wake screen user interface 5004.
[0199] 5AU-5AY show inputs for displaying a coversheet user interface 5190 that includes notification history 5062. FIG.
[0200] In Figure 5AU, an input is detected by contact 5184 (e.g., an upward swipe input from the bottom edge of the touch screen display 112) to hide the wake screen user interface 5004. As contact 5184 moves along the path indicated by arrow 5185, the home screen user interface 5182 is displayed as shown in Figure 5AV. In Figure 5AW, an input is detected by contact 5186 (e.g., a downward swipe input from the top edge of the touch screen display 112) to display a cover sheet user interface 5190. As contact 5186 moves along the path indicated by arrow 5188, the cover sheet user interface 5190 is displayed as shown in Figure 5AX.
[0201] In Figure 5AX, cover sheet user interface 5190 displays notification history 5062, including notifications 5180, 5126, 5056, and 5014, as well as notifications 5064, 5066, and 5068. An input by contact 5192 to scroll the notifications displayed in cover sheet user interface 5190 has been detected (e.g., a vertical swipe input in which contact 5192 moves upward along a path indicated by arrow 5194). In response to the vertical swipe input, the notifications displayed in cover sheet user interface 5184 move in the direction of the contact movement, as shown in Figures 5AX-5AY.
[0202] In some embodiments, the notification history 5062 is not displayed when the cover sheet user interface 5190 is initially displayed, and the notification history 5062 appears in the cover sheet user interface in response to an upward swipe input on the cover sheet user interface (as opposed to an upward swipe input starting from the bottom edge of the screen).
[0203] 5AY-5BU show examples of user interfaces for displaying aggregated notifications.
[0204] In FIG. 5AY, cover sheet user interface 5190 displays notification history 5062, including notifications 5180, 5126, 5056, and 5014, and notifications 5064, 5066, and 5068. In FIGS. 5AY-5AZ, device 100 transitions from a screen-on state, as shown in FIG. 5AY, to a screen-off state, as shown in FIG. 5AZ. For example, the transition occurs in response to an input that powers off the device, such as an input at button 206, or in response to a determination that a screen-off criterion is met (e.g., a criterion that is met in response to a determination that the time elapsed since the input was received exceeds a threshold time). In FIGS. 5AZ-5BA, device 100 transitions from a screen-off state, as shown in FIG. 5AZ, to a screen-on state, as shown in FIG. 5BA. For example, the transition may occur in response to an input that powers on the device, such as an input at button 206, or in response to a determination that a screen-on criterion is met (e.g., criteria including criteria that are met pursuant to a determination that a new notification has been received or that the device has been picked up and tilted beyond a preset tilt angle).
[0205] From Figure 5AY to Figure 5BA, the current time 5054 changes from 6:12 to 6:14. Prior to the transition from the screen off state to the screen on state (Figures 5AZ-5BA) as a result of device activation (e.g., hiding the wake screen user interface 5004 and displaying the home screen user interface 5182 as shown in Figures 5AU-5AV), notifications 5180, 5126, 5056, and 5014 have been moved to the notification history and are not displayed in the wake screen user interface 5004 of Figure 5BA. Notifications 5196, 5198, and 5200, received at 6:14, 6:13, and 6:13, respectively, are displayed in the wake screen user interface 5004.
[0206] In Figures 5BB and 5BC, contact 5202 with touch screen 112 moves along the path indicated by arrow 5204. As contact 5202 moves upward along the path indicated by arrow 5060, notifications 5196-5200 also move upward (e.g., as if being "dragged" by contact 5202 as the notifications move). In Figures 5BC-5BD, contact 5202 continues to move along the path indicated by arrow 5204 such that notification history 5062 appears on wake screen 5004.
[0207] In some embodiments, when notification history 5062 includes multiple notifications of an event from the same application (e.g., a social media application), the multiple notifications are aggregated. For example, as shown in FIG. 5BD, when notification 5126 is moved to notification history 5062, notification 5126 from the social media application is aggregated with notification 5064 (see FIG. 5AY) that was previously in notification history 5062.
[0208] In some embodiments, multiple notifications are aggregated when notification history 5062 includes multiple notifications corresponding to an event subtype from an application (e.g., events corresponding to a conversation thread in a messaging application). For example, as shown in FIG. 5BD, when notification 5180 (for a message from contact Edwin in a conversation thread with Madeline and Edwin) is moved to notification history 5062, notification 5180 is aggregated with notifications 5066 and 5068 (for messages from contacts Madeline and Edwin in a conversation thread with Madeline and Edwin) that were previously in notification history 5062 (see FIG. 5AY). As shown in FIGS. 5BC-5BD, notification 5196 for a message from contact Madeline in a conversation thread with Madeline and Edwin is not aggregated with notifications 5066, 5068, and 5180 in notification history 5062 (because notification 5196 has not yet been moved to notification history).
[0209] In Figures 5BD-5BE, device 100 transitions from the screen-on state shown in Figure 5BD to the screen-off state shown in Figure 5BE. In Figures 5BE-5BF, device 100 transitions from the screen-off state shown in Figure 5BE to the screen-on state shown in Figure 5BF.
[0210] From Figure 5BD to Figure 5BF, the current time 5054 changes from 6:14 to 6:17. In Figure 5BF, a new notification 5206 received at 6:15 is displayed on the wake screen user interface 5004.
[0211] In some embodiments, when the wake screen user interface 5004 includes multiple notifications corresponding to events of an application or event subtypes of an application (e.g., prior to receiving an input to display notification history 5062 on the wake screen user interface 5004), the multiple notifications are aggregated in the wake screen user interface 5004. For example, as shown in FIG. 5BF, when the wake screen user interface 5004 includes notification 5206 (for a message in the conversation thread with Madeline and Edwin), notification 5206 (also for a message in the conversation thread with Madeline and Edwin) is aggregated with notification 5196 (see FIG. 5BC) that was previously displayed in the wake screen user interface 5004.
[0212] In FIG. 5BG, an input by contact 5208 (e.g., an upward swipe input from the bottom edge of touch screen display 112) to hide wake screen user interface 5004 is detected. When contact 5208 moves along the path indicated by arrow 5210, home screen user interface 5182 is displayed as shown in FIG. 5BH. In FIG. 5BH-FIG. 5BI, device 100 transitions from a screen-on state as shown in FIG. 5BH to a screen-off state as shown in FIG. 5BI. In FIG. 5BI-FIG. 5BJ, device 100 transitions from a screen-off state as shown in FIG. 5BI to a screen-on state as shown in FIG. 5BJ.
[0213] In FIG. 5BJ, wake screen user interface 5004 is shown in response to a transition to a screen on state. Prior to a transition from a screen off state to a screen on state (FIGS. 5BI-5BJ) as a result of device activation (e.g., hiding wake screen user interface 5004 and displaying home screen user interface 5182 as shown in FIGS. 5BG-5BH), notifications 5196, 5206, 5198, and 5200 have been moved to notification history 5062 and are not displayed in wake screen user interface 5004 in FIG. 5BJ. An input by contact 5212 (e.g., a vertical swipe input in which contact 5212 moves upward along the path indicated by arrow 5214) causes notification history 5062 to appear in wake screen user interface 5004. In response to the vertical swipe input, notification history 5062 is displayed in FIG. 5BK. In FIG. 5BK, notifications 5196 and 5206 (for messages in the conversation thread with Madeline and Edwin) have been moved to notification history 5062, resulting in notifications 5196 and 5206 being aggregated with notifications 5180, 5068, and 5066 (for messages in the conversation thread with Madeline and Edwin) (see FIG. 5BD) that previously appeared in notification history 5062. Notification 5200 (from a podcast application) has been moved to notification history 5062, resulting in notification 5200 being aggregated with notification 5014 (from a podcast application) that previously appeared in notification history 5062. Notification 5126 (from a social media application) has been moved to notification history 5062, resulting in notification 5126 being aggregated with notification 5064 (from a social media application) that previously appeared in notification history 5062.
[0214] 5BL-5BO show inputs for expanding a set of notifications of an aggregated representation of notifications and for re-aggregating the expanded set of notifications.
[0215] In FIG. 5BL, a tap input by contact 5218 is detected at a location corresponding to an aggregated representation of the notifications including notifications 5066, 5068, 5180, 5196, and 5206. In response to the input by contact 5218, an expanded version of the aggregated representation of the notifications is displayed as shown in FIG. 5BM. In FIG. 5BM, notifications 5206, 5196, 5180, and 5068 of the aggregated representation of the notifications are displayed separately. Notifications 5198, 5014, 5200, 5064, 5126, and 5056 have been "pushed" downward by the expansion of the aggregated representation and are no longer displayed in wake screen user interface 5004. Controller 5220 for re-aggregating the expanded version of the set of notifications and controller 5221 for clearing all notifications in the respective set of notifications of the aggregated representation are displayed at a location corresponding to the expanded version of the set of notifications.
[0216] In Figure 5BN, a tap input by contact 5222 is detected at a location corresponding to controller 5220 for re-aggregating an expanded version of the set of notifications. In response to the input, an aggregated representation of the notifications, including notifications 5066, 5068, 5180, 5196, and 5206, is re-displayed as shown in Figure 5BO. Notifications 5198, 5014, 5200, 5064, 5126, and 5056 are also re-displayed in wake screen user interface 5004 of Figure 5BO.
[0217] 5BP-5BU show inputs for expanding a set of notifications in an aggregated representation of the notifications, inputs for scrolling the expanded set of notifications to reveal additional notifications in the aggregated representation of the notifications, and inputs on a notification in the expanded set of notifications to display an expanded view of the notification.
[0218] In FIG. 5BP, a tap input by contact 5224 is detected at a location corresponding to an aggregated representation of notifications including notifications 5066, 5068, 5180, 5196, and 5206. In response to the input by contact 5224, an expanded version of the aggregated representation of the notifications is displayed, as shown in FIG. 5BQ. In FIGS. 5BR-5BS, contact 5226 moves along a path indicated by arrow 5228. As contact 5226 moves upward along the path indicated by arrow 5228, notifications 5206, 5196, 5180, and 5068 also move upward (e.g., as if being "dragged" by contact 5226 as the notifications move), revealing notification 5066 of the expanded set of notifications that corresponds to the aggregated representation. As shown in FIG. 5BS, in some embodiments, the movement of the contact reveals one or more notifications, such as notification 5198, that have been "pushed" downward by the expansion of the set of notifications.
[0219] In FIG. 5BS, contact 5230 (e.g., the same contact as contact 5226 or a separate contact detected after liftoff of contact 5226 from touch screen 112) is at a location on touch screen 112 that corresponds to notification 5196. In FIG. 5BT, the characteristic intensity of contact 5230 is greater than or equal to a hint intensity threshold IT (as indicated by intensity level meter 5001). H As shown in Figures 5BT-5BU, the characteristic intensity of contact 5230 increases above the hint intensity threshold level IT H 5BU, the characteristic intensity of contact 5230 increases above a light pressure intensity threshold level IT L The light pressure intensity threshold level IT LIn response to detecting an increase in the characteristic intensity of contact 5230 above 5180, an expanded version of notification 5196 is displayed. In FIG. 5BU, the expanded version of notification 5196 includes messages 5232, 5234, 5236, 5238, and 5240 corresponding to notifications 5066, 5068, 5180, 5196, and 5206, respectively. While the expanded version of notification 5196 is displayed, input area 5242 including an input field, a messaging controller, and a keyboard is displayed in wake screen user interface 5004.
[0220] 6A-6E show examples of user interfaces for displaying aggregated notifications, according to some embodiments. The user interfaces in those figures are used to illustrate the processes described below, including those in FIGS. 7A-7G, 8A-8E, and 9A-9E. For ease of explanation, some of the embodiments are discussed with reference to operations performed on a device having touch-sensitive display system 112. In such embodiments, the focus selector is optionally a respective finger or stylus contact, a representative point corresponding to a finger or stylus contact (e.g., the face center of the respective contact or a point associated with the respective contact), or a face center of two or more contacts detected on touch-sensitive display system 112. However, similar operations are optionally performed on a device having display 450 and separate touch-sensitive surface 451 in response to detection of a contact on touch-sensitive surface 451 while displaying the user interface shown in the figures with the focus selector on display 450.
[0221] 6A-6D illustrate prompts for adjusting notification settings, according to some embodiments. For example, a prompt for adjusting notification settings for future notifications of an application is displayed following a determination that a user's engagement with the application falls below an engagement threshold level. Various examples of the prompts described with respect to FIGS. 6A-6D include different features. It will be appreciated that various combinations of the features described with respect to FIGS. 6A-6D may be displayed in the prompt.
[0222] In FIG. 6A, a prompt 602 is displayed on the wake screen user interface 5004. The prompt 602 includes a display of a notification 604 corresponding to an event in the social media application. For example, the notification 604 is a most recently received notification of the social media application and / or a notification that triggered the display of the prompt 602. The prompt 602 also includes a controller 606 (e.g., a "Keep" button) for maintaining a current prominence setting for the notification of the social media application, a controller 608 (e.g., a "Turn Off" button) for turning off the notification of the social media application, and a controller 610 (e.g., a "Customize" button) for displaying a notification settings user interface for the social media application (e.g., the notification settings user interface 5100 as shown in FIG. 5AB).
[0223] 6B illustrates a prompt 614 including a display of a notification 604 corresponding to an event of a social media application and a display of aggregated notifications 616 and 618 corresponding to an event of a house simulator game application. The prompt 614 includes toggles 620 and 622 for the social media application. An input at toggle 620 is used to enable / disable showing future notifications corresponding to events from the social media application. An input at toggle 622 is used to enable / disable sending future notifications corresponding to events from the social media application to notification history 5062. The prompt 614 also includes toggles 624 and 626 for the house simulator game application. An input at toggle 624 is used to enable / disable showing future notifications corresponding to events from the house simulator game. An input at toggle 626 is used to enable / disable sending future notifications corresponding to events from the house simulator game to notification history 5062.
[0224] 6C illustrates a prompt 628 that includes a display of a social media application notification 604 and a display of aggregated notifications 616 and 618 of a house simulator game application. The prompt 628 includes a controller 630 (e.g., a “Keep” button) for maintaining a current prominence setting for the social media application notifications, a controller 632 (e.g., a “Turn Off” button) for turning off the social media application notifications, a controller 634 (e.g., a “Keep” button) for maintaining a current prominence setting for the house simulator game notifications, and a controller 636 (e.g., a “Turn Off” button) for turning off the house simulator game notifications.
[0225] 6D illustrates a prompt 638 that includes a display of a notification 604 corresponding to the event in the social media application and a display of aggregated notifications 616 and 618 corresponding to the event in the house simulator game application. The prompt 638 includes a controller 640 (e.g., a “Keep” button) for maintaining a current prominence setting for the social media application notifications and maintaining a current prominence setting for the house simulator game notifications, and a controller 642 (e.g., a “Turn Off” button) for turning off the social media application notifications and turning off the house simulator game notifications.
[0226] 7A-7G are flow diagrams illustrating a method 700 for changing delivery preferences for future notifications of events of an event type, according to some embodiments. Method 700 is performed on a device having a display generating component (e.g., a display, a projector, a heads-up display, etc.) and one or more input devices (e.g., a touchscreen display 112 that functions as both a display and a touch-sensitive surface). In some embodiments, the display generating component is a touchscreen display 112, and the touch-sensitive surface is on or integrated into the display. Some operations in method 700 are optionally combined and / or the order of some operations is optionally changed.
[0227] The device detects (702) the occurrence of a first event of a first event type (e.g., while the display is turned off, while displaying the wake screen user interface 5004, while displaying an application user interface, or while displaying the home screen user interface 5182). In some embodiments, the event type corresponds to an application. In some embodiments, the event type corresponds to a subset or category of content within the application (e.g., a group of messages by the same sender, a group of messages in the same thread, news from the same news source, etc.). In some embodiments, the first event is an operating system or application event related to a change in device state, receipt of data or content from an external source, completion of a task, etc., that is used by the operating system as a trigger and basis for generating and / or displaying a corresponding notification to the user outside of the application.
[0228] The device (e.g., in response to detecting the occurrence of a first event of the first event type) displays (704) a first notification corresponding to the first event type in a respective user interface of the device via the display generation component. For example, in FIG. 5B , notification 5006 is displayed for a social media event (e.g., the event type of the event corresponding to notification 5006 is an event of a social media application). Notification 5008 is for a message event in a conversation thread with contact Ursula (e.g., the event type of the event corresponding to notification 5008 includes a message event for a message in a conversation thread with contact Ursula). In some embodiments, the notification is displayed as a banner or window overlaid on the respective user interface or as an item in the respective user interface. In some embodiments, the respective user interfaces include a wake screen user interface 5004 (e.g., as described with respect to FIGS. 5A1-5A4) that is displayed when the device switches from a display-off state to a display-on state, a lock screen user interface, an application user interface, a home screen user interface 5182 that includes a plurality of application launcher icons (e.g., 416-446) corresponding to a plurality of applications, a cover sheet user interface 5190 (e.g., including a notification center) that appears by swiping downward from the top edge of the home screen / application / widget user interface, or a notification history interface 5062 that appears by swiping upward on the wake screen interface. In some embodiments, the cover sheet user interface 5190 and / or the notification center user interface have a substantially similar appearance as the wake screen user interface 5004. For example, elements such as the current time 5054, the current date, notifications, and / or other controls are displayed in similar positions and / or with similar appearances in the cover sheet user interface 5190 and the wake screen user interface 5004.In some embodiments, a controller for displaying a set of notification setting controllers (e.g., in a menu or standalone settings user interface) is also displayed simultaneously with the first notification (e.g., the controller appears in response to an input at a location corresponding to the first notification, such as a left swipe input). For example, as shown in Figure 5E, a left swipe input on the notification reveals a set of notification controllers 5028 corresponding to the notification, and as shown in Figure 5T, a controller 5074 for displaying a set of notification delivery setting controllers is displayed in an expanded version of the notification.
[0229] While the first notification is displayed in the respective user interface, the device detects (706) a first input directed at the first notification via the input device (e.g., an input including a horizontal swipe input as described with respect to FIGS. 5C-5E and / or a tap input as described with respect to FIG. 5G, or an input including a light press input as described with respect to FIGS. 5R-5S and / or a tap input as described with respect to FIG. 5T). For example, the first input is an input that satisfies a controller display criterion (e.g., including a criterion that is met pursuant to a determination that a characteristic intensity of the contact increases above a threshold intensity level and / or a criterion that is met pursuant to a determination that a duration of the contact exceeds a threshold duration) or includes an input corresponding to a request to display a set of one or more notification delivery preference controllers (e.g., including a tap input or press input on a controller (e.g., displayed adjacent to the notification)).
[0230] In response to detecting the first input, the device, via the display generation component, displays (708) one or more notification delivery preference controllers (e.g., in a control panel overlaying the currently displayed user interface and / or in a location corresponding to the first notification, such as a location within or adjacent to the first notification). For example, in response to an input as described with respect to FIGS. 5C-5G, notification delivery preference controllers are displayed in a notification delivery preference controller menu 5038, including a controller 5040 for changing a delivery preference for future notifications of events of an event type to a mode of unobtrusive delivery, a controller 5042 for turning off future notifications of events of an event type, a controller 5044 for displaying a notification settings user interface of the application, and a controller 5046 for hiding the menu 5038.
[0231] While displaying the one or more notification delivery preference controllers (e.g., contemporaneously with the first notification on the respective user interface), the device detects (710) a second input via the input device directed to the set of one or more notification delivery preference controllers (e.g., an input by contact 5052 as described with respect to FIG. 5I, an input by contact 5090 as described with respect to FIG. 5X, an input by contact 5096 as described with respect to FIG. 5Z, an input by contact 5164 as described with respect to FIG. 5AO, or an input by contact 5178 as described with respect to FIG. 5AR). For example, the second input (including a selection input, such as a tap input, that selects one of the one or more notification delivery preference controllers) is an input that satisfies a setting modification criterion (including, for example, a criterion that is met pursuant to a determination that a duration between touchdown of the contact and liftoff of the contact is less than or equal to a tap time threshold).
[0232] In response to detecting the second input, the device changes (712) a delivery preference for future notifications of events of the first event type from a first delivery mode (e.g., a mode of unobtrusive delivery or a mode of prominent delivery) to a second delivery mode different from the first delivery mode (e.g., a mode of suppressed delivery, a mode of prominent delivery, or a mode of inconspicuous delivery). For example, in response to the input by contact 5052, the delivery preference for future notifications of the event from the social media application changes from a mode of prominent delivery to a mode of inconspicuous delivery (e.g., notifications of the event from the social media application are distributed to a notification history), as discussed with respect to Figures 5B-5O.
[0233] After changing the delivery preferences for future notifications of events of the first event type in accordance with the second input, the device detects (714) the occurrence of a second event of the first event type (e.g., a new social media post, as shown in FIG. 5K by the text “Notification received from social media application at 6:05 a.m. not displayed on wake screen”).
[0234] In response to detecting (716) the occurrence of a second event of the first event type, in accordance with a determination that the second delivery mode corresponds to a mode of unobtrusive delivery (e.g., the first notification was displayed in the wake screen user interface 5004 or the lock screen user interface under a mode of prominent delivery and the second input changed the delivery mode for the first notification type from the mode of prominent delivery to the mode of unobtrusive delivery), the device adds a second notification corresponding to the second event to a notification history without first displaying the second notification in the respective user interface, and determines that the second delivery mode corresponds to turning off notifications for the first event type (e.g., the first notification was displayed in the notification history 5062 under a mode of unobtrusive delivery or the first notification was displayed in the wake screen user interface 5004 under a mode of prominent delivery and the second input changed the delivery mode for the first notification type from the mode of prominent delivery to the mode of unobtrusive delivery). In accordance with a determination that the first notification type is displayed on the wakescreen user interface 5004 and the second input changed the delivery mode for the first notification type from a mode of inconspicuous delivery or a mode of prominent delivery to a suppressed mode), the device refrains from initially displaying the second notification in the respective user interface (e.g., refrains from displaying the second notification in the notification history under the mode of inconspicuous delivery or refrains from displaying the second notification on the wakescreen under the mode of prominent delivery) and refrains from adding the second notification to the notification history (e.g., in a suppressed mode where notifications for the first event type are turned off, the notification for the first event type is not displayed on the wakescreen when received and is not stored by the device (e.g., in the notification history) for future access by the user). In some embodiments, in the unobtrusive mode for the first event type, a notification for the first event type is sent directly to the notification history (without first displaying it on the wake screen or lock screen) and the user must provide the required input on the wake screen or pull down the cover sheet to view the notification in the notification history on the wake screen or cover sheet.For example, after the delivery preferences for future notifications of social media application events are changed to a mode of unobtrusive delivery, as described with respect to FIG. 5I, a notification 5064 of a social media application event that occurred at 6:05 will not be displayed in the wake screen user interface 5004, as shown in FIGS. 5K-5O, until the notification history 5062 is accessed.
[0235] In some embodiments, each event type is a topic (e.g., a news topic, a news source, a subject of a communication thread, a keyword in the subject of a communication thread), a source (e.g., a news source such as a news website), a content type (e.g., a record / list of shared content (e.g., a photo stream)), an aggregation (e.g., a store) of related content generated by the device, or a folder. In some embodiments, each event type corresponds to a contact or contact group (e.g., for an item of communication content such as a message, a missed call, a voicemail, or an email). In some embodiments, an application does not need to obtain user permission to deliver notifications (e.g., for one or more event types corresponding to the application) according to a mode of unobtrusive delivery (e.g., the mode of unobtrusive delivery is a default mode in which notifications for one or more event types corresponding to the application are delivered until the application obtains user permission to change the delivery mode or the user changes the delivery mode using a notification delivery preference controller). In some embodiments, notifications for one or more event types corresponding to the application are turned off until the application obtains user permission to change the notification mode.
[0236] Changing delivery preferences for future notifications of events of an event type in response to input received while a notification of that event type is displayed reduces the number of inputs required to change delivery preferences for future notifications of events of the event type. Reducing the number of inputs required to perform an operation improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to change delivery preferences for notifications without requiring input to access a settings user interface), and reduces power usage and improves battery life of the device by allowing a user to use the device more quickly and efficiently.
[0237] In some embodiments, in response to detecting the occurrence of a second event of the first event type, in accordance with a determination that the second delivery mode corresponds to a mode of prominent delivery, the device displays (718) a second notification of the first event type in a wake screen user interface (e.g., wake screen user interface 5004) distinct from the respective user interface. For example, the first notification was displayed in notification history 5062 (e.g., accessed from wake screen user interface 5004 or from cover sheet user interface 5190) under a mode of inconspicuous delivery, and the second input changed the delivery mode for the first notification type from a mode of inconspicuous delivery to a mode of prominent delivery. In some embodiments, the mode of prominent delivery is a mode in which the notification corresponding to the first event type is displayed in a user interface currently displayed (e.g., while the device is in use) upon the occurrence of an event of the first event type, and / or the notification corresponding to the first event type is displayed when the wake screen user interface 5004 or the lock screen is displayed after the occurrence of an event of the first event type. In some embodiments, the first notification is not initially displayed on the wake screen user interface 5004, and a user input is required to view the first notification in the respective user interface after the first event occurs. The user input to view the first notification may be, for example, a swipe up on the wake screen 5004 to invoke the notification history user interface 5062 (e.g., to display the notification history 5062 as described with respect to FIGS. 5N-5O), or a swipe down on the home screen user interface 5182 (e.g., as described with respect to FIGS. 5AW-5AZ), a desktop user interface, a widget user interface, or another user interface displayed by the device.In some embodiments, the second notification is displayed when the wake screen user interface 5004 is initially displayed, and no user input is required to view the second notification on the wake screen user interface 5004. In some embodiments, an application must obtain permission from the user to display the notification in a mode of prominent notification delivery. By modifying the delivery preferences for future notifications of an event type event in response to input received while a notification of an event type is displayed, the number of inputs required to increase the prominence of the delivery of future notifications is reduced. Reducing the number of inputs required to perform an operation improves device usability, provides a more efficient user-device interface (e.g., by allowing a user to increase the prominence of the delivery of future notifications of an event type event without requiring input to access a settings user interface), and reduces power usage and improves the battery life of the device by allowing a user to use the device more quickly and efficiently.
[0238] In some embodiments, the respective user interface includes (720) a notification history (e.g., the respective user interface is a notification user interface 5062 displayed in response to an upward swipe on the wake screen user interface 5004, or the respective user interface is a cover sheet user interface 5190 displayed in response to a downward swipe from the top edge of the touch screen 112 detected while the home screen user interface 5182 or an application user interface is displayed). By changing the delivery preference for future notifications of events of an event type to a mode of prominent delivery in response to an input received while the notification history is displayed, the number of inputs required to change the delivery preference for future notifications of events of the event type is reduced. Reducing the number of inputs required to perform an operation improves the usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to change the delivery preference for future notifications of events of an event type without requiring an input to access a settings user interface), and also reduces power usage and improves the battery life of the device by allowing a user to use the device more quickly and efficiently.
[0239] In some embodiments, the device displays (722) a first notification of the first event type in a respective user interface (e.g., a notification history user interface, a wake screen, or a cover sheet user interface, etc.) simultaneously with a first notification of a second event type different from the first event type (e.g., the first notification of the second event type corresponds to the occurrence of a first event of the second event type different from the first event type). For example, the first notification of the first event type is a notification 5006 of a social media application and the first notification of the second event type is a notification 5014 of a podcast application. While simultaneously displaying the first notification of the first event type and the first notification of the second event type in their respective user interfaces, the device detects (724) the occurrence of an event of the second event type (e.g., a second event of the second event type that occurred later than the first event of the second event type). In response to detecting the occurrence of an event of the second event type (e.g., a second event of the second event type) and in accordance with a determination that no input for changing a delivery preference for future notifications of events of the second event type has been detected since displaying the first notification of the second event type in the respective user interface, the device displays (726) a second notification of the event of the second event type according to a current delivery mode for the notification of the second event type (e.g., a mode of unobtrusive delivery or a mode of prominent delivery). For example, notification 5014 of the podcast application has been delivered according to a mode of prominent delivery as shown in FIG. 5B, and notification 5200 of the podcast application has also been delivered according to a mode of prominent delivery as shown in FIG. 5BA.By allowing a user to change (or bypass) delivery preferences for notifications of events of an event type, and delivering notifications according to a delivery mode indicated by the changed (or unchanged) delivery preference, the user-device interface becomes more efficient and the usability of the device improves (e.g., by displaying notifications according to user-indicated settings, thereby reducing the time and / or number of inputs required to view a desired notification from prominently displayed notifications, while preserving the user's ability to view less prominent notifications (e.g., in the notification history). By enabling a user to use the device more quickly and efficiently, power usage is reduced and the battery life of the device is improved.
[0240] In some embodiments, while the delivery preferences for future notifications of events of the first event type correspond to the second delivery mode, the device detects (728) a third input for displaying a notification settings user interface corresponding to the first event type (e.g., notification settings user interface 5100). In some embodiments, the third input is an input directed to a notification delivery preferences controller (e.g., a controller displayed in notification delivery preferences controller menu 5078). For example, the third input is an input at controller 5044 for displaying a notification settings user interface of a social media application, as described with respect to FIG. 5AA. In some embodiments, the third input is an input detected while the general notification settings user interface is displayed (e.g., an input for displaying a notification settings user interface corresponding to the application). In some embodiments, the notification settings user interface (e.g., of the application) is displayed after a sequence of inputs including, for example, an input for unlocking the device, an input for displaying home screen user interface 5182, an input for navigating to a home screen user interface page including settings icon 446, an input for displaying a general settings user interface, and / or an input for displaying a general notification settings user interface. In response to detecting the third input, the device displays a notification settings user interface 5100 corresponding to the first event type, including displaying indicia (e.g., including text, images, and / or animated graphics, and / or a selectable controller for selecting a preferred delivery mode) in the notification settings user interface 5100 corresponding to the first event type corresponding to a current selection of the second delivery mode (730). For example, in FIG. 5AB, active mode indicators 5118 and 5120 and toggles 5106 and 5108 indicate that a mode of prominent delivery is not activated and a mode of inconspicuous delivery is activated.In some embodiments, the changes made in response to the second input are saved and reflected in the notification settings user interface 5100 without further input from the user. For example, when a user navigates to the notification settings user interface after providing an input to change a delivery preference for future notifications of events of the first event type from the first delivery mode to the second delivery mode, the notification settings user interface displays an indication of the current selection of the second delivery mode when the notification settings user interface is presented to the user. By displaying an indication of the currently selected delivery mode in the notification settings user interface after changing the delivery preference to the second delivery mode, improved feedback is provided indicating the current state of the device. Providing improved feedback improves device usability, provides a more efficient user-device interface (e.g., by helping the user understand the consequences of the input provided to change the delivery preference to the second delivery mode, thereby reducing user errors when interacting with the device), and additionally reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0241] In some embodiments, while a notification settings user interface corresponding to the first event type is displayed (e.g., as a result of a third input to display a notification settings user interface corresponding to the first event type), the device detects (732) an input directed to a delivery mode controller (e.g., the delivery mode controller is a respective delivery mode controller of a plurality of delivery mode controllers corresponding to the plurality of delivery modes) corresponding to a respective delivery mode of the plurality of delivery modes. For example, while a notification settings user interface 5100 corresponding to an event of a social media application is displayed, an input directed to a delivery mode controller (e.g., a toggle 5106 for enabling / disabling showing notifications of the application on the wake screen user interface 5004) is detected, as shown in FIG. 5AD. In response to detecting (734) an input directed to the delivery mode controller, the device changes a delivery mode preference for future notifications of events of the first event type from a currently selected delivery mode (e.g., the second delivery mode) to the respective delivery mode, and the device displays a respective animation (e.g., of the controller and / or of an image displayed at a position corresponding to the controller) indicating notification delivery under the respective delivery mode. In some embodiments, the animation indicates the delivery mode by indicating (e.g., relative to a representation of a display generating component and / or an application window) the size of the notification representation, the path of movement of the notification representation, the duration the notification representation is displayed, and / or an indication of whether the notification representation is displayed on a wake screen, whether it is displayed as a banner in a currently displayed user interface, and / or whether it is sent directly to notification history. For example, in response to input by contact 5124 as described with respect to Figure 5AD, the state of toggle 5106 and active mode indicator 5118 change from Figures 5AD-5AE, and an animation sequence of animated icon 5116 is initiated as shown in Figures 5AE-5AF.In some embodiments, the notification animation continues while the notification option is selected and stops when the notification option is not selected. In some embodiments, the notification animation continues whether or not the notification option is selected. By displaying an animation indicating notification delivery according to a currently selected delivery mode, improved feedback is provided indicating the state of the device. Providing improved feedback improves usability of the device, provides a more efficient user-device interface (e.g., by helping the user understand the consequences of inputs provided to change delivery preferences to a delivery mode, thereby reducing user errors when interacting with the device), and reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0242] In some embodiments, while the respective notification is displayed (e.g., in a wake screen interface, a lock screen interface, or notification history), the device may provide a fourth input (e.g., a characteristic intensity of the contact exceeds a first intensity threshold (e.g., a light press intensity threshold IT ) to invoke a corresponding expanded version of the respective notification (e.g., the expanded version includes the content of the respective notification and additional content and / or control affordances that were not present in the respective notification when the respective notification was not expanded). L5Q-5S, the device detects (736) a fourth input (a touch and hold input or a tap input) that increases above the fourth input 5064. For example, the fourth input is a light press input by contact 5070 at a location on touch screen 112 corresponding to notification 5064, as shown in FIG. 5Q-5S. In response to detecting the fourth input, the device displays (738) an expanded version of the respective notification, the expanded version of the respective notification including a controller for triggering display of at least one of the notification delivery preference controllers. For example, in response to the fourth input as shown in FIG. 5Q-5S, in FIG. 5S, an expanded version of notification 5064 is displayed. In some embodiments, the device detects (740) a fifth input directed at a controller for triggering display of at least one of the notification delivery preference controllers. For example, the fifth input is a tap input by contact 5076 at a location on touch screen 112 corresponding to controller 5074, as shown in FIG. 5T. In response to the fifth input, the device displays (742) at least one of one or more notification delivery preference controllers (e.g., including a controller for selecting from two or more notification delivery modes) (e.g., in or adjacent to the expanded version of the respective notification, at a location corresponding to the expanded version of the respective notification). For example, in response to the fifth input as shown in FIG. 5T, the device displays a notification delivery preference controller menu 5078 including a controller 5080 for changing a delivery preference for future notifications of an event type to a mode of prominent delivery, a controller 5040 for changing a delivery preference for future notifications of an event type to a mode of inconspicuous delivery, and a controller 5042 for turning off future notifications of an event type. By displaying delivery preference controllers for changing delivery preferences for future notifications of events of the event type in response to an input detected while the expanded version of a notification of an event type is displayed, the number of inputs required to change a delivery preference for future notifications of events of the event type is reduced.The usability of the device is improved by reducing the number of inputs required to perform operations, the user-device interface is more efficient (e.g., by allowing a user to change delivery preferences for notifications without requiring user input to access a settings user interface), and power usage is reduced and battery life of the device is improved by allowing a user to use the device more quickly and efficiently.
[0243] In some embodiments, while at least one notification is displayed (e.g., in the wake screen user interface 5004, the lock screen interface, or the notification history 5062), the device detects (744) a sixth input directed at the respective notification. In response to detecting (746) the sixth input, a determination is made that the sixth input (e.g., a left swipe input) satisfies notification controller display criteria (e.g., the contact travels a substantially horizontal path a distance that exceeds a threshold distance (e.g., a left swipe) and / or a characteristic intensity of the contact at a location corresponding to the respective notification exceeds a first intensity threshold (e.g., a light pressure intensity threshold IT L))) the device displays at least one of the one or more notification delivery preference controllers (e.g., controllers 5040, 5042, and / or 5080) and, pursuant to a determination that the sixth input satisfies the notification selection criteria (e.g., including criteria met pursuant to a determination that the sixth input is a tap input (e.g., an input where a duration between touchdown of the contact and liftoff of the contact is less than or equal to a tap time threshold and a characteristic intensity of the contact at a location corresponding to the respective notification does not increase above a first intensity threshold) or a long press input (e.g., an input where a duration between touchdown of the contact and liftoff of the contact is greater than a tap time threshold and a characteristic intensity of the contact at a location corresponding to the respective notification does not increase above a first intensity threshold)), the device stops the respective user interface and displays a user interface corresponding to the respective event type corresponding to the respective notification. For example, pursuant to a determination that an input directed to notification 5006 regarding an event from a social media notification satisfies the notification selection criteria. By determining whether to display a notification delivery preference controller or a user interface corresponding to the respective event depending on whether the notification-directed input satisfies a notification controller display criterion, multiple different types of operations can be performed with the notification-directed input. Enabling multiple different types of operations to be performed with the notification-directed input improves usability of the device and provides a more efficient user-device interface, as well as reducing power usage and improving battery life of the device by allowing the user to use the device more quickly and efficiently.
[0244] In some embodiments, each respective notification of the set of notifications displayed in the respective user interfaces has a corresponding priority rating (748), and the respective user interfaces include a prioritization controller (e.g., a “Prioritize” button) (e.g., the prioritization controller, when selected, causes the device to not display (e.g., not on the wake screen, not in the notification history, or not at all) future notifications that do not meet the prioritization criteria (e.g., each having a respective priority rating below the priority threshold) and to display future notifications that meet the prioritization criteria (e.g., each having a respective priority rating equal to or greater than the priority threshold). In some embodiments, while displaying the set of notifications in the respective user interfaces, the device detects (750) a seventh input directed at the prioritization controller (e.g., detects a tap input on the prioritization controller), and in response to detecting the seventh input, the device activates (752) a prioritized delivery mode. The device detects (754) the occurrence of a respective event. In response to detecting the respective event (756), in accordance with a determination that a prioritized delivery mode is activated (e.g., when the event is detected), the device determines whether the respective event meets the prioritization criteria (e.g., the notification corresponding to the event has a priority score equal to or greater than a priority threshold), and in accordance with a determination that the respective event meets the prioritization criteria, the device displays a fourth notification corresponding to the respective event in the respective user interface (e.g., in a designated area of the user interface, such as at the top of a list of displayed notifications). In some embodiments, in accordance with a determination that the respective event does not meet the prioritization criteria, the respective notification is delivered to a notification history. In some embodiments, in accordance with a determination that the respective event does not meet the prioritization criteria, the device refrains from displaying the respective notification in the respective interface and refrains from adding the respective notification to the notification history.In some embodiments, pursuant to a determination that the respective event does not meet the prioritization criteria, the device refrains from displaying the respective notification in the respective user interface. In some embodiments, pursuant to a determination that the prioritized delivery mode is not activated, the device delivers the notification according to a respective delivery mode corresponding to the respective event type of the respective event. Activating the prioritized delivery mode and delivering the notification according to the prioritized mode provides a more efficient user-device interface and improves usability of the device (e.g., by displaying notifications according to a user-indicated prioritization setting, thereby reducing the number of inputs required to display a desired notification from available notifications). By allowing the user to use the device more quickly and efficiently, power usage is reduced and battery life of the device is improved.
[0245] In some embodiments, the device displays (758) the respective user interface in response to an input (e.g., a tap on a touch screen, moving the device in a predetermined manner, moving the device to a predetermined attitude, pressing a button, etc.) that switches the device from a display-off state to a display-on state (e.g., waking the device). For example, the respective user interface is a wake screen user interface 5004 that is displayed after the device switches from a display-off state to a display-on state (e.g., as described with respect to FIGS. 5A2-5A3 or as described with respect to FIGS. 5AZ-5BA). While displaying the respective user interface (e.g., the wake screen user interface 5004), the device detects (760) a swipe input (e.g., an upward or downward swipe input) on the respective user interface. For example, the swipe input is an input as described with respect to FIGS. 5BB-5BD. In response to detecting the swipe input, in accordance with a determination that the swipe input on the respective user interface satisfies the notification history display criteria (e.g., the notification history display criteria require that (1) contact movement is detected after reaching the end of the scrollable array of new notifications (e.g., the last new notification) in the respective user interface and / or (2) continued contact movement after reaching the end of the scrollable array exceeds a movement threshold amount in the current scroll direction), the device displays (762) the notification history (e.g., notifications currently displayed in the respective user interface have not been saved or displayed in notification history 5062 at this point). In some embodiments, in accordance with a determination that the swipe input does not satisfy the notification history display criteria, the device scrolls the respective user interface without displaying the notification history.Displaying the notification history in response to a swipe input (that meets the notification history display criteria) received while displaying the wake screen user interface without requiring further input improves usability of the device, provides a more efficient user-device interface (e.g., by allowing the user to access the notification history without requiring input to navigate away from the wake screen user interface), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0246] In some embodiments, the device displays the respective user interface in response to an input that switches the device from a display-off state to a display-on state (e.g., waking the device) (764). While displaying the respective user interface, the device detects an input to hide the respective user interface (e.g., an input to hide the wake screen user interface 5004 and display the home screen 5182 (e.g., an upward swipe from the bottom edge of the screen, a home button press, etc.), and an authentication input (e.g., a facial recognition input and / or a biometric input such as a fingerprint sensor input on the home button, or a passcode input) (766). In response to hiding the respective user interface, the device displays a second user interface (e.g., the home screen user interface 5182 or an application user interface) that is different from the respective user interface (768). While displaying the second user interface, the device detects a swipe input on the respective user interface (e.g., an upward or downward swipe from the edge of a touch screen) (770). In response to detecting the swipe input, in accordance with a determination that the swipe input on the respective user interface satisfies a cover sheet display criterion, the device displays (772) a cover sheet user interface (e.g., cover sheet user interface 5190) including a notification history (e.g., notification history 5062) (e.g., notifications previously displayed in the respective user interface have, optionally, already been stored and displayed in notification history 5062 at this point). For example, cover sheet user interface 5190 including notification history 5062 is displayed in response to a swipe input detected while home screen user interface 5182 is displayed (after wake screen user interface 5004 is hidden), as described with respect to Figures 5AU-5AX.By displaying the notification history in a cover sheet user interface that is accessible after the wake screen user interface is hidden, the amount of input required to display the notification history is reduced. Reducing the amount of input required to perform an operation improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to view the notification history without requiring input to redisplay the wake screen user interface), and reduces power usage and improves the device's battery life by allowing a user to use the device more quickly and efficiently.
[0247] It should be understood that the particular order described for the operations in Figures 7A-7G is merely an example, and the order described is not intended to indicate that the only order in which operations may be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. In addition, it should be noted that other processing details described herein with respect to other methods described herein (e.g., methods 800 and 900) may also be applied in a similar manner to method 700 described above with respect to Figures 7A-7G. For example, the contacts, inputs, controllers, event types, delivery modes, intensity thresholds, and / or animations described above with reference to method 700 may optionally have one or more of the contact, input, controller, event types, delivery modes, intensity thresholds, and / or animation characteristics described herein with reference to other methods described herein (e.g., methods 800 and 900). For the sake of brevity, those details will not be repeated here.
[0248] 8A-8E are flow diagrams illustrating a method 800 for displaying aggregated notifications, according to some embodiments. Method 800 is performed in an electronic device, such as device 300 (FIG. 3) or portable multifunction device 100 (FIG. 1A) having a display generation component and one or more input devices. In some embodiments, the display generation component is touchscreen display 112, with the touch-sensitive surface on or integrated into the display. Some operations of method 800 are optionally combined and / or the order of some operations is optionally changed.
[0249] The device has a plurality of notifications in a notification history (e.g., notification history 5062), the plurality of notifications including a first notification of a first event of a first event type (e.g., notification 5066 of an event in a conversation thread with contacts Edwin and Madeline as shown in FIG. 5AY) and a second notification of a second event of the first event type (e.g., notification 5068 of an event in a conversation thread with contacts Edwin and Madeline), the first notification and the second notification being aggregated in the notification history (e.g., the notification history is organized by a notification history user interface). When displayed in a display or cover sheet user interface, the first and second notifications appear aggregated or reduced (e.g., the content of only one of the two notifications is fully visible, or the content of neither of the two notifications is fully visible), and the device detects (802) the occurrence of one or more additional events of the first event type. For example, in FIG. 5BD, notification 5068 is aggregated with notification 5066 (e.g., as indicated by the partial overlap of notification 5066 by notification 5068).
[0250] In response to detecting the occurrence of the first additional event of the first event type, the device creates (804) a third notification of the first additional event of the first event type.
[0251] After creating the third notification of the first additional event of the first event type, the device receives (806) via the input device a request (e.g., an input or device event to wake the device) to display a wake screen user interface of the device (e.g., the wake screen user interface is the initial user interface that is displayed when the device switches from a display-off state to a display-on state (e.g., in response to a gesture or input to wake the device or in response to the arrival of a new notification).
[0252] In response to the request to display the device's wake screen user interface, the device, via the display generation component, displays (808) the wake screen user interface with the third notification, where the third notification is displayed in the wake screen user interface without information about the first notification and the second notification. For example, in Figures 5AZ-5BA, in response to the request to display wake screen user interface 5004, wake screen user interface 5004 is displayed with notifications 5196 of events in conversation threads with contacts Edwin and Madeline.
[0253] After the third notification is displayed on the wake screen user interface, the device receives a request via the input device to view the notification history (e.g., an upward swipe on the wake screen user interface to invoke the notification history user interface, or a downward swipe from the top edge of the display detected when the home screen or application user interface is displayed) (810). For example, in Figures 5BB-5BD, an upward swipe input by contact 5202 causes notification history 5062 to appear.
[0254] In response to receiving a request to display the notification history (e.g., notification history 5062), the device displays (812) the notification history (e.g., notification history 5062) with an aggregated representation of the first and second notifications (e.g., an aggregated representation of notifications 5066 and 5068 in FIG. 5BD (notification 5180 is also aggregated)). In some embodiments, the aggregated representation includes content of only one of the first and second notifications, partial content of both the first and second notifications, or summaries of content of the first and second notifications (e.g., the aggregated representation is a stack of notifications for an event of a first event type, with the most recent notification on top). Displaying an aggregated representation of notifications of an event type in the notification history user interface (e.g., after additional notifications of the event type are displayed on the wake screen, such that notifications of the event type that have not yet been sent to the notification history are not aggregated with notifications of the event type in the notification history) provides a display of notifications of the event type without cluttering the notification history user interface with separate displays of each notification. Displaying notifications without cluttering the notification history user interface improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to access notifications within the notification history user interface for an event type that is different from the event type of the aggregated notification without requiring input to scroll through past separate notifications for that event type), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0255] In some embodiments, in response to detecting the occurrence of a second additional event of the first event type (e.g., after the third notification of the first additional event of the first event type is created and either before or after the third notification is displayed in the wake screen user interface), the device creates (814) a fourth notification of the second additional event of the first event type. For example, notification 5206 corresponds to a second additional event in a conversation thread with contacts Edwin and Madeline.
[0256] In response to the request to display the device's wake screen user interface, the device displays the fourth notification in the wake screen user interface aggregated with the third notification (816). For example, in FIG. 5BF, notification 5206 is aggregated with notification 5196 when wake screen user interface 5004 is displayed as shown in FIG. 5BF following a screen-off state as shown in FIG. 5BE. Displaying an aggregated representation of notifications of an event type in the wake screen user interface (e.g., after one or more additional notifications of the event type are displayed on the wake screen such that each notification of the event type is displayed separately before being aggregated with other notifications of the event type) provides for the display of notifications of the event type without cluttering the wake screen user interface with simultaneous separate display of each notification. Displaying notifications without cluttering the wake screen user interface improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to access notifications within the wake screen user interface for an event type that is different from the event type of the aggregated notification without requiring input to scroll past separate notifications for that event type), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0257] In some embodiments, after displaying the third notification in the wake screen user interface, the device detects (818) an input to hide the wake screen user interface. The wake screen user interface is hidden in response to an input to display a home screen user interface or an application user interface, such as, for example, an actuation of a home button on the device or a gesture on a touch-sensitive display (e.g., an upward swipe input from the bottom edge of the touch screen 112 to display the home screen user interface 5182, as shown in FIGS. 5BG-5BH). In response to the input to hide the wake screen user interface, the device stops (820) the wake screen user interface (e.g., wake screen user interface 5004) and the third notification (e.g., notification 5196). While the third notification meets the notification history display criteria (e.g., the third notification has not been explicitly dismissed by the user on the wake screen), the device detects (822) an input to display the notification history (e.g., an upward swipe input on the redisplayed wake screen user interface 5004 as shown in FIGS. 5BJ-5BK). In some embodiments, the input to display the notification history is, for example, an input as described with respect to operations 758-762 or as described with respect to operations 764-772 of method 700 (FIGS. 7A-7G). In response to detecting the input to display the notification history, the device displays (824) the notification history with an aggregated representation of the third notification, the second notification, and the first notification (e.g., the third notification is added on top of a stack that includes the first and second notifications). 5BK, notification history 5062 is displayed with an aggregated representation of third notification 5196, second notification 5068, and first notification 5066 (as well as notifications 5180 and 5206). By aggregating notifications previously displayed in the wake screen user interface with notifications of the same event type in the notification history user interface, a display of the event type notifications is provided without cluttering the notification history user interface with separate displays of each notification.Displaying notifications without cluttering the notification history user interface improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to access notifications within the notification history user interface for an event type that is different from the event type of the aggregated notification without requiring input to scroll through past separate notifications for that event type), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0258] In some embodiments, in response to detecting an input to display the notification history, pursuant to a determination that the time difference satisfies a timing criterion (e.g., including a criterion met pursuant to a determination that a time difference between a time corresponding to an occurrence of the event represented by the third notification and a time corresponding to an occurrence of the event represented by the second notification exceeds a threshold duration and / or a determination that the event represented by the third notification and the event represented by the second notification occurred on different days) (826), the device refrains from displaying the notification history with the aggregated representation of the third notification, the second notification, and the first notification, and the device displays the third notification in the notification history separately from the aggregated representation of the first notification and the second notification. In some embodiments, in response to a determination that the time difference does not satisfy the timing criterion (e.g., the two events occurred on the same day or the difference between the occurrence of the two events is equal to or less than a threshold time), the device displays the notification history with the aggregated representation of the third notification, the second notification, and the first notification. By refraining from aggregating notifications pursuant to a determination that the time difference between events corresponding to the notifications (e.g., between the occurrence of a most recent event of an event type and the occurrence of a next most recent event of an event type) satisfies a timing criterion, the amount of input required to view notifications for events that occurred during different time periods (e.g., different days) is reduced. Reducing the amount of input required to view notifications for events that occurred during different time periods improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to separately view notifications received on different days without requiring input to deploy an aggregated representation of the notification), and reduces power usage and improves battery life of the device by allowing a user to use the device more quickly and efficiently.
[0259] In some embodiments, displaying each of the aggregated representations of the notification (e.g., an aggregated representation of a notification in the notification history 5062, such as an aggregated representation of the first and second notification, or an aggregated representation of a notification on the wake screen user interface 5004, such as an aggregated representation of the third and fourth notification) includes displaying at least a portion of the content corresponding to a most recently created notification in each of the aggregated representations of the notification (828) (e.g., if an aggregated representation of the first and second notification is displayed, while the second notification was created more recently than the first notification, at least a portion of the content corresponding to the second notification is displayed). In some embodiments, the portion of content includes an identification of the source of a communication (e.g., an incoming phone call, a voicemail, a message, a social media post, a news article, a calendar invitation, etc.) and / or at least a portion of the communicated information (e.g., message content, news article title, news article content, voicemail recording, social media post content, social media comment content, calendar invitation information, calendar appointment information, etc.). For example, in the aggregated representation of notifications including notifications 5066 and 5068 as shown in FIG. 5AY, the text of the message ("Add me to the conversation!"), sender information ("Madeline"), thread information ("To you and Edwin"), and time received ("3 hours ago") are the displayed content corresponding to the most recently created notification 5068 in the aggregated representation of notifications. By displaying at least a portion of the content corresponding to the most recently created notification in the aggregated representation of notifications, the number of typing required to view the content of the most recently created notification is reduced.Reducing the amount of input required for the content of a recently created notification (e.g., by allowing a user to view the content of a notification without requiring input to access the content of the notification) improves usability of the device and makes the user-device interface more efficient, as well as reducing power usage and improving the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0260] In some embodiments, each of the aggregated representations of notifications (e.g., an aggregated representation of a notification in notification history 5062, such as an aggregated representation of a first notification and a second notification, or an aggregated representation of a notification on wake screen user interface 5004, such as an aggregated representation of a third notification and a fourth notification) includes summary information (e.g., contacts, source identification information, number of purchases, number of calendar invites, number of likes / retweets / mentions) of the communication event type including the number of notifications represented by each of the aggregated representations (830). For example, the aggregated representations of notifications including notifications 5066 and 5068 as shown in FIG. 5AY include the number of notifications represented by the aggregated representation ("+1 more from Edwin"). By displaying summary information including the number of notifications represented by the aggregated representations of the notifications, the number of inputs required to obtain the number is reduced. Reducing the number of inputs required to obtain an aggregated representation of a number of notifications (e.g., by allowing a user to view summary information without requiring input to expand the aggregated representation of the notifications to view the data for each notification separately) improves usability of the device and makes the user-device interface more efficient, as well as reducing power usage and improving the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0261] In some embodiments, each of the aggregated representations of the notification (e.g., an aggregated representation of a notification in the notification history 5062, such as an aggregated representation of a first notification and a second notification, or an aggregated representation of a notification on the wake screen user interface 5004, such as an aggregated representation of a third notification and a fourth notification) includes a plurality of summary information indicators (832), each of which corresponds to a respective category of counted items that correspond to the content of the notification represented by each of the aggregated representations (e.g., likes and retweets are summarized separately in the set of aggregated notifications). By displaying summary information that includes multiple summary information indicators of the aggregated representation of the notification, the number of inputs required to obtain the summary information is reduced. By reducing the number of inputs required to obtain summary information of an aggregated representation of a notification (e.g., by allowing a user to view multiple summary information indicators without requiring input to expand the aggregated representation of the notification to view the data for each notification separately), the user-device interface becomes more efficient, and additionally, by allowing a user to use the device more quickly and efficiently, power usage is reduced and battery life of the device is improved.
[0262] In some embodiments, the device detects (834) an input (e.g., a tap input directed at the aggregated representation) to expand each of the aggregated representations of the notifications (e.g., an aggregated representation of a notification in notification history 5062, such as an aggregated representation of a first notification and a second notification, or an aggregated representation of a notification on wake screen user interface 5004, such as an aggregated representation of a third notification and a fourth notification). For example, a tap input by contact 5218 to expand the aggregated representations of notifications including notifications 5066, 5068, 5180, 5196, and 5206 is shown in FIG. 5BL.
[0263] In response to the input to expand each of the aggregated representations, the device displays (836) an expanded version of the set of notifications corresponding to each of the aggregated representations. For example, in FIG. 5BM, notifications 5206, 5196, 5180, and 5068 are displayed separately. In some embodiments, at least a portion of each of the aggregated representations of the notifications is displayed. In some embodiments, in response to the input to expand each of the aggregated representations, one or more respective notifications that are not in the set of notifications corresponding to each of the aggregated representations move to a different position in the wake screen user interface (e.g., are "pushed" by the expansion of the set of notifications). For example, at least one notification that is not in the set of notifications moves toward a bottom edge of the wake screen user interface. In some embodiments, in response to the input to expand each of the aggregated representations, one or more respective notifications that are not in the set of notifications corresponding to each of the aggregated representations are no longer displayed in the wake screen user interface (e.g., notification 5198 is not displayed in FIG. 5BM because it was pushed by the expansion of the expanded version of the set of notifications). In some embodiments, a controller (e.g., controller 5221 as shown in FIG. 5BN) for clearing all notifications in the aggregated representation set of the respective notification is displayed in response to an input for expanding each of the aggregated representations. Displaying an expanded version of the set of notifications corresponding to the aggregated representation of the notification in response to an input for expanding the aggregated representation provides the user with the possibility to view individual notifications of the aggregated set or to view the notifications in an aggregated state that does not clutter the user interface. Providing the user with the possibility to view individual notifications of the aggregated set or to view the notifications in an aggregated state that does not clutter the user interface improves device usability and makes the user-device interface more efficient, as well as reducing power usage and improving the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0264] In some embodiments, while the expanded version of the set of notifications corresponding to each of the aggregated representations is displayed, the device detects (838) an input to hide the set of notifications corresponding to each of the aggregated representations (e.g., an input directed to the controller 5221 to clear all notifications of the aggregated representation set of each notification, or an input on the user interface (e.g., a vertical swipe)). In response to the input to hide the set of notifications corresponding to each of the aggregated representations, the device clears (840) the set of notifications corresponding to each of the aggregated representations (e.g., removes from the notification history if each of the aggregated representations is shown in the notification history, or clears the notifications without saving them to the notification history if each of the aggregated representations is shown on the wake screen). For example, in response to the input directed to the controller 5221, notifications 5066, 5068, 5180, 5196, and 5206 (corresponding to the aggregated representations of the notifications) are cleared. By clearing the set of notifications corresponding to the aggregated representations of the notifications in response to the input to hide the set of notification representations, the number of inputs required to clear the set of notifications is reduced. Reducing the number of inputs required to perform an action improves usability of the device, making the user-device interface more efficient (e.g., by allowing a user to dismiss multiple notifications without requiring input to hide each notification independently), and reducing power usage and improving the device's battery life by allowing a user to use the device more quickly and efficiently.
[0265] In some embodiments, while an expanded version of the set of notifications corresponding to each of the aggregated representations is displayed, the device detects (842) an input directed at each notification of the set of notifications that meets a notification expansion criterion (e.g., a press input (e.g., a characteristic intensity of a contact exceeds a first intensity threshold (e.g., a light press intensity threshold IT L) or a touch and hold input). In response to detecting an input that satisfies the notification expansion criteria, the device displays (844) an expanded version of the respective notification. For example, as shown in FIGS. 5BS-5BU, in response to a light press input by contact 5230 directed at notification 5196, an expanded version of notification 5196 is displayed, as shown in FIG. 5BU. Displaying an expanded version of a notification in response to an input directed at a notification provides an option to view an expanded version of a notification without cluttering the user interface with additional controllers displayed to view the expanded version of the notification. Providing an option to view an expanded version of a notification without cluttering the user interface with additional controllers displayed to view the expanded version of the notification improves device usability and provides a more efficient user-device interface, as well as reducing power usage and improving the device's battery life by allowing a user to use the device more quickly and efficiently.
[0266] In some embodiments, while the expanded version of the set of notifications corresponding to each of the aggregated representations is displayed, the device detects an input to re-aggregate the set of notifications (e.g., a tap input directed to the controller to re-aggregate the set of notifications) (846). In response to the input to re-aggregate the set of notifications, the device re-displays the aggregated version of the set of notifications corresponding to each of the aggregated representations (848). For example, in FIG. 5BN-FIG. 5BO, in response to the input directed to the controller 5220, the expanded version of the set of notifications shown in FIG. 5BN is re-aggregated as shown in FIG. 5BO. In some embodiments, after expanding the set of notifications, other notifications that disappeared when the set of notifications was expanded are re-displayed. For example, notification 5198 disappears when the expanded set of notifications is displayed, as shown in FIG. 5BN. Notification 5198 re-displays in FIG. 5BO when the set of notifications is re-aggregated. In response to an input to re-aggregate the set of notifications, re-displaying an aggregated version of the set of notifications corresponding to the aggregated representation of the notifications provides a user with the possibility to view individual notifications of the aggregated set, or to view the notifications in an aggregated state that does not clutter the user interface. Providing a user with the possibility to view individual notifications of the aggregated set, or to view the notifications in an aggregated state that does not clutter the user interface, improves usability of the device, provides a more efficient user-device interface, and additionally reduces power usage and improves battery life of the device by allowing a user to use the device more quickly and efficiently.
[0267] In some embodiments, a first respective application (e.g., a communications application and / or a news application) generates events of multiple distinct event types (850) (e.g., a single event type corresponds to all communications or articles (e.g., messages, phone calls, voicemails, and / or emails) from a contact, contact group, or source). The multiple notifications in the notification history include a fifth notification corresponding to a first respective event type of the multiple distinct event types, a sixth notification corresponding to the first respective event type, and a seventh notification corresponding to a second respective event type of the multiple distinct event types (852). For example, a messaging application generates events of multiple distinct event types (e.g., each conversation thread is a separate event type). In Figure 5BO, notifications 5206, 5196, 5180, 5068, and notification 5066 are notifications for events of a first event type (events in the conversation thread with Madeline and Edwin), and notification 5198 is a notification for an event of a second event type (e.g., an event in the conversation thread with Neal). In response to detecting a request to display the notification history (854), the device displays an aggregated representation of the fifth and sixth notifications in the notification history, and the device displays the seventh notification in the notification history separately from the aggregated representation of the fifth and sixth notifications. For example, notification history 5062 displayed in Figure 5BO displays an aggregated representation of notifications 5206, 5196, 5180, 5068, and 5066 (for a first type of event generated by the messaging application), and displays notification 5198 (for a second type of event generated by the messaging application) separately from the aggregated representation of notifications 5206, 5196, 5180, 5068, and 5066. In some embodiments, a messaging application generates a first type of event (a message from a first contact) and a second type of event (a message from a second contact).In some embodiments, a news application generates a first type of event (e.g., an article from a first news source) and a second type of event (e.g., an article from a second news source). By providing different event types for a single application, communication notifications of different subcategories from the same application are shown separately (non-aggregated). In some embodiments, each second application (e.g., a calendar application, a transportation services application, or a payment application) generates events of a single event type. Displaying notifications of a first type of event generated by the application separately from an aggregated representation of notifications of a second type of event generated by the application provides a separate display of notifications received for different types of events generated by the application without cluttering the notification history user interface with separate displays of each notification. Displaying notifications without cluttering the notification history user interface improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to access notifications for different types of events generated by an application without requiring input to scroll through each individual notification), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0268] It should be understood that the particular order in which the operations in Figures 8A-8E have been described is merely an example, and that the order described is not intended to indicate that the operations are the only order in which they may be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. In addition, it should be noted that other processing details described herein with respect to other methods described herein (e.g., methods 700 and 900) may also be applied in a similar manner to method 800 described above with respect to Figures 8A-8E. For example, the contacts, inputs, controllers, event types, and / or intensity thresholds described above with reference to method 800 may optionally have one or more of the characteristics of the contacts, inputs, controllers, event types, and / or intensity thresholds described herein with reference to other methods described herein (e.g., methods 700 and 900). For the sake of brevity, those details will not be repeated here.
[0269] 9A-9E are flow diagrams illustrating a method 900 of displaying a prompt to adjust notification settings, according to some embodiments. Method 900 is performed in an electronic device (e.g., device 300 (FIG. 3) or portable multifunction device 100 (FIG. 1A)) having a display generating component and one or more input devices. In some embodiments, the display generating component is touchscreen display 112, with the touch-sensitive surface on or integrated into the display. Some operations of method 900 are optionally combined and / or the order of some operations is optionally changed.
[0270] The device, via the display generation component, displays (902) a plurality of notifications for a plurality of different applications, including a notification for a first application (e.g., a social media application) and a notification for a second application (e.g., a home simulator game application) in a notification display user interface (e.g., a wake screen user interface 5004, a lock screen user interface, a cover sheet user interface 5190, or a notification history user interface). In some embodiments, at least some of the notifications are each displayed in the notification display user interface at different times.
[0271] The device detects (904) user interactions with the multiple notifications, including requests via an input device to perform a requested action with respect to the notification (e.g., opening a corresponding application, responding to the notification without opening the corresponding application (e.g., using input area 5242 displayed in an expanded version of the notification, as shown in FIG. 5BU), and / or hiding the notification).
[0272] The device responds to the user interaction with the multiple notifications (906) by performing the requested operation with respect to one or more of the notifications (e.g., the arrival of the notifications spans a period of time during which the user is normally operating the device (e.g., navigating to multiple different user interfaces and applications, turning the device on and off multiple times, etc.), and user interaction with the multiple notifications is monitored over a long period of time).
[0273] In some embodiments, the display, detection, and response operations are performed over an extended period of time (e.g., hours, days, weeks, months, and / or the time during which multiple notifications (e.g., of the first application and / or the second application) have been displayed). For example, the period of time may include the time since installation of the respective application or the time since an operating system initialization / reset.
[0274] The device, via the display generation component, displays (908) (e.g., after an extended period of time) a prompt (e.g., prompt 602 as shown in FIG. 6A, prompt 614 as shown in FIG. 6B, prompt 628 as shown in FIG. 6C, or prompt 638 as shown in FIG. 6D) for the user to adjust notification settings for one or more of the applications. In some embodiments, the prompt is proactively displayed by the device based on pre-set interaction criteria that are met by previous user interactions with the notifications, without requiring a specific user request to solicit the prompt. In accordance with a determination that, based on the user interactions with the multiple notifications, the user's engagement with the notifications of the first application falls below the engagement threshold level and the user's engagement with the notifications of the second application exceeds the engagement threshold level, the device displays a suggestion to reduce the prominence of future notifications of the first application (e.g., changing the delivery mode for the notifications of the second application from a prominent delivery mode to an inconspicuous delivery mode, from an inconspicuous delivery mode to a suppressed mode, or from a prominent delivery mode to a suppressed mode) without reducing the prominence of future notifications of the second application (e.g., changing the delivery mode for the notifications of the first application from a prominent delivery mode to an inconspicuous delivery mode, from an inconspicuous delivery mode to a suppressed mode, or from a prominent delivery mode to a suppressed mode). For example, following a determination that the user's engagement with notifications of the social media application is below the engagement threshold level (and the user's engagement with notifications of the home simulator game application is above the engagement threshold level), the device displays a prompt 602 including text indicating a suggestion to review the notification settings and controls 606, 608, and 610 for changing the notification settings of the social media application.In accordance with a determination based on the user interactions with the notifications that the user's engagement with the notifications of the second application is below an engagement threshold level and the user's engagement with the notifications of the first application is above an engagement threshold level, the device displays a suggestion to reduce the prominence of future notifications of the second application without reducing the prominence of future notifications of the first application. For example, in accordance with a determination that the user's engagement with notifications of the home simulator game application is below an engagement threshold level (and the user's engagement with notifications of the social media is above an engagement threshold level), the device displays a prompt similar to 602 but related to the home simulator application instead of the social media application (e.g., including notification 616 instead of notification 604). In some embodiments, the prompt includes an explanation of the reason for the prompt (e.g., explanation text 612). In some embodiments, pursuant to a determination that the user's engagement with the notifications of the first application is above an engagement threshold level and the user's engagement with the notifications of the second application is below an engagement threshold level, the prompt includes a suggestion to increase the prominence of future notifications of the first application (e.g., change the delivery mode for the notifications of the first application from an inconspicuous delivery mode to a prominent delivery mode) without increasing the prominence of future notifications of the second application (e.g., change the delivery mode for the notifications of the first application from an inconspicuous delivery mode to a prominent delivery mode). In some embodiments, pursuant to a determination that the user's engagement with the notifications of the second application is above an engagement threshold level and the user's engagement with the notifications of the first application is below an engagement threshold level, the prompt includes a suggestion to increase the prominence of future notifications of the second application without increasing the prominence of future notifications of the first application. By displaying a prompt to adjust notification settings of one or more applications in response to a user interaction with the notification, the number of inputs required to adjust notification settings of the applications is reduced.Reducing the amount of input required to adjust an application's notification settings improves usability of the device, provides a more efficient user-device interface (e.g., by allowing a user to change an application's notification settings without requiring input to access a settings user interface), and reduces power usage and improves the device's battery life by allowing a user to use the device more quickly and efficiently.
[0275] In some embodiments, displaying the prompt includes simultaneously displaying (910) a suggestion to reduce the prominence of future notifications of the first application and a suggestion to reduce the prominence of future notifications of the second application in accordance with a determination that the user's engagement with the notifications of the first application is below an engagement threshold level and the user's engagement with the notifications of the second application is below an engagement threshold level based on the user's interaction with the notifications. For example, prompts 614, 628, and 638 are for adjusting both notifications of the first application (social media) and notifications of the second application (house simulator). In some embodiments, separate notification setting adjustment controllers are displayed for each of the first and second applications (e.g., in prompt 614, toggles 620 and 622 for social media and toggles 624 and 626 for house simulator allow settings for different applications to be adjusted independently). In some embodiments, the notification setting adjustment controllers displayed in the prompts allow settings for multiple applications to be adjusted simultaneously. For example, an input on controller 642 (a "Turn Off" button) displayed in prompt 638 adjusts both notification delivery preferences for the social media application and notification delivery preferences for the house simulator game application. In some embodiments, the prompt aggregates suggestions to adjust notifications for related applications (e.g., a social network application and a game application that operates on a social network platform that corresponds to the social network application). In some embodiments, the prompt aggregates suggestions to adjust notifications for two completely unrelated applications. By displaying a prompt to adjust notification settings for one or more applications in response to a user interaction with a notification, the number of inputs required to adjust notification settings for an application is reduced.Reducing the number of inputs required to adjust the notification settings of an application improves usability of the device, provides a more efficient user-device interface (e.g., by automatically prompting the user to change the notification settings of an application without requiring user input to access a controller to adjust the notification settings), and reduces power usage and improves the battery life of the device by allowing the user to use the device more quickly and efficiently.
[0276] In some embodiments, the prompt simultaneously displays (912) respective suggestions (e.g., 612a, 612b in FIG. 6C ) to reduce the prominence of future notifications for two independently operating applications (e.g., a first application is a mail application and a second application is a browser application, or a first application is a messaging application and a second application is a maps application, etc.). In some embodiments, independently operating applications refer to applications that do not share the same ownership, brand lineage, or data / content sources. By displaying a prompt to adjust notification settings in response to a user interaction with a notification, and the prompt simultaneously displaying suggestions to reduce the prominence of two independently operating applications, the number of inputs required to adjust notification settings for one or more applications is reduced. Reducing the number of inputs required to adjust notification settings for an application improves usability of the device, provides a more efficient user-device interface (e.g., by automatically prompting the user to change notification settings for multiple separate applications without requiring user input to access a controller to adjust notification settings separately for each application), and reduces power usage and improves battery life of the device by allowing the user to use the device more quickly and efficiently.
[0277] In some embodiments, the prompt includes (914) a controller (e.g., a “KEEP” button 606, 630, 634, or 640) for rejecting a respective suggestion (e.g., suggestion 612) included in the prompt (e.g., the “KEEP” button is for rejecting a suggestion in the prompt to suppress or reduce the prominence of future notifications for the first application, the second application, or both applications). While the prompt is displayed, the device detects (916) an input directed to the controller for rejecting the respective suggestion (e.g., a suggestion to reduce the prominence of future notifications for the first application, the second application, or both). In response to detecting an input directed to the controller for rejecting the respective suggestion (e.g., in response to a user selection of a “KEEP” button displayed concurrently with the suggestion to suppress or reduce the prominence of future notifications for the respective application), the device refrains from reducing the prominence of at least one of the first application or the second application (918). Displaying a prompt to adjust notification settings in response to user interaction with a notification, including a control (e.g., a "Keep" button) for rejecting the suggestion contained in the prompt, improves usability of the device, provides a more efficient user-device interface (e.g., by automatically prompting the user to choose to change or keep an application's notification settings without requiring user input to access a control for reviewing the notification settings), and additionally reduces power usage and improves the device's battery life by allowing the user to use the device more quickly and efficiently.
[0278] In some embodiments, in response to detecting an input directed to the controller to reject the respective suggestion (e.g., for the first application, the second application, or both), the device refrains from displaying future prompts including suggestions to reduce the prominence of future notifications of at least one of the first application or the second application (e.g., the first application, the second application, or both) (920). For example, if the user selects a "keep" button for the notification corresponding to the first application, the current prompt for the first application is removed and automatic generation of future prompts related to changing the notification delivery mode for the first application is also turned off. By refraining from displaying future prompts containing suggestions to reduce the prominence of the application's future notifications in response to user interaction with the notification, usability of the device is improved, the user-device interface is more efficient (e.g., by reducing the number of inputs required to manage the delivery of future notifications after a "keep" controller is selected because the application's prompts are no longer displayed and therefore the user does not need to provide input to respond to additional prompts from the application), and additionally, by allowing the user to use the device more quickly and efficiently, power usage is reduced and battery life of the device is improved.
[0279] In some embodiments, the device detects (922) a user interaction with a plurality of prompts via an input device in which the user adjusts notification settings for one or more of the plurality of applications. Pursuant to a determination that the user interaction with the plurality of prompts meets a rejection criterion (e.g., the user consistently and / or repeatedly rejects a plurality of suggestions to change the prominence of some or all future notifications of one or more applications and / or the number of rejections exceeds a rejection threshold number (and / or percentage over time) for one or more of the plurality of applications), the device refrains from future display of additional prompts in which the user adjusts notification settings (924). For example, if the user selects the "keep" controller three times (e.g., for unrelated notifications, notifications corresponding to events of the same application, notifications corresponding to events of the same event type, notifications corresponding to events of different event types, etc.), the proactive prompts are turned off for all future notifications (e.g., all applications, notifications of a certain type for a message thread, notifications of a certain type for multiple message threads, etc.). In some embodiments, if a user provides input to turn off notifications (e.g., unrelated notifications, notifications for the same application, notifications in the same thread, notifications in multiple threads, etc.) more than a threshold number of occurrences, the proactive prompts are turned off for all notifications (e.g., all applications, notifications of a type for a message thread, notifications of a type for multiple message threads, etc.). In some embodiments, pursuant to a determination that user interaction with the multiple prompts does not meet the opt-out criteria, the device does not refrain from future display of additional prompts for the user to adjust notification settings.Determining whether to refrain from displaying future prompts for the user to ad...
Claims
1. 1. A device having a display generation component and one or more input devices, comprising: Detecting an occurrence of a first event of a first event type; displaying, via the display generation component, a first notification corresponding to the first event type on a user interface of each of the devices; detecting a first input directed to the first notification via the one or more input devices while the first notification is displayed on the respective user interface; displaying, via the display generation component, one or more notification delivery preference controllers in response to detecting the first input; detecting a second input directed to the set of one or more notification delivery preference controllers via the one or more input devices while displaying the one or more notification delivery preference controllers; responsive to detecting the second input, changing a delivery preference for future notifications of events of the first event type from a first delivery mode to a second delivery mode different from the first delivery mode; detecting an occurrence of a second event of the first event type after modifying the delivery preference with respect to future notifications of events of the first event type according to the second input; in response to detecting the occurrence of the second event of the first event type, pursuant to determining that the second delivery mode corresponds to a mode of unobtrusive delivery, adding a second notification corresponding to the second event to a notification history without first displaying the second notification in the respective user interface; refraining from displaying the second notification in the respective user interface and from adding the second notification to the notification history in response to determining that the second delivery mode corresponds to turning off notifications for the first event type; The method includes:
2. responsive to detecting the occurrence of the second event of the first event type, displaying the second notification of the first event type in a wake screen user interface distinct from the respective user interface in accordance with a determination that the second delivery mode corresponds to a mode of prominent delivery. The method of claim 1 , comprising:
3. The method of claim 2 , wherein the respective user interface includes the notification history.
4. the first notification of the first event type is displayed on the respective user interface simultaneously with a first notification of a second event type different from the first event type; detecting an occurrence of an event of the second event type while simultaneously displaying the first notification of the first event type and the first notification of the second event type in the respective user interfaces; in response to detecting the occurrence of the event of the second event type, and in response to a determination that an input for modifying a delivery preference for future notifications of events of the second event type has not been detected since displaying the first notification of the second event type in the respective user interface, displaying a second notification of the event of the second event type in accordance with a current delivery mode for notifications of the second event type; The method according to any one of claims 1 to 3, comprising:
5. detecting a third input to display a notification configuration user interface corresponding to the first event type while the delivery preferences for future notifications of events of the first event type correspond to the second delivery mode; In response to detecting the third input, displaying the notification setting user interface corresponding to the first event type, including displaying an indicia corresponding to a current selection of the second delivery mode in the notification setting user interface corresponding to the first event type; The method of any one of claims 1 to 4, comprising:
6. detecting an input directed to a delivery mode controller corresponding to each of a plurality of delivery modes while a notification setting user interface corresponding to the first event type is displayed; in response to detecting the input directed to the delivery mode controller; changing the delivery preferences for future notifications of events of the first event type from a currently selected delivery mode to the respective delivery mode; displaying a respective animation illustrating notification delivery under said respective delivery modes; The method of any one of claims 1 to 5, comprising:
7. detecting a fourth input while each notification is being displayed to invoke a corresponding expanded version of said each notification; displaying the expanded version of the respective notification in response to detecting the fourth input, the expanded version of the respective notification including a controller for triggering display of at least one of the notification delivery preference controllers; detecting a fifth input directed to the controller for triggering an indication of the at least one of the notification delivery preference controllers; displaying the at least one of the one or more notification delivery preference controllers in response to the fifth input; The method of any one of claims 1 to 6, comprising:
8. detecting a sixth input directed toward the respective notification while the at least one notification is displayed; In response to detecting the sixth input, displaying at least one of the one or more notification delivery preference controllers in accordance with a determination that the sixth input satisfies a notification controller display criterion; and In response to a determination that the sixth input satisfies a notification selection criterion, Stopping displaying each of the user interfaces; displaying a user interface corresponding to each event type corresponding to each of the notifications; The method of any one of claims 1 to 7, comprising:
9. each respective notification of the set of notifications displayed in the respective user interface has a corresponding priority rating; each of the user interfaces includes a prioritization controller; The method comprises: detecting a seventh input directed to the prioritization controller while displaying the set of notifications in the respective user interfaces; activating a prioritized delivery mode in response to detecting the seventh input; Detecting the occurrence of each event; In response to detecting each of said events, In response to determining that the prioritized delivery mode is activated, determining whether each of the events meets a prioritization criterion; and displaying a fourth notification corresponding to the respective event in the respective user interface in accordance with a determination that the respective event satisfies the prioritization criterion; refraining from displaying the respective notification in the respective user interface in response to a determination that the respective event does not satisfy the prioritization criteria; delivering notifications according to respective delivery modes corresponding to respective event types of the respective events in response to a determination that the prioritized delivery mode is not activated; The method of any one of claims 1 to 8, comprising:
10. the respective user interfaces are displayed in response to an input switching the display generation component from a first state to a second state; The method further comprising: detecting a swipe input on the respective user interface while displaying the respective user interface; In response to detecting the swipe input, displaying the notification history in accordance with a determination that the swipe input on the respective user interface satisfies a notification history display criterion; 10. The method of claim 1 , comprising:
11. the respective user interfaces are displayed in response to an input switching the display generation component from a first state to a second state; The method further comprising: detecting an input for hiding the respective user interface while displaying the respective user interface; displaying a second user interface different from the respective user interfaces in response to hiding the respective user interfaces; detecting a swipe input on the respective user interface while displaying the second user interface; in response to detecting the swipe input, displaying a coversheet including the notification history in accordance with a determination that the swipe input on the respective user interface satisfies a coversheet display criterion; The method of any one of claims 1 to 10, comprising:
12. A display generating component; one or more input devices; one or more processors; Memory, and one or more programs stored in a memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing the method according to any one of claims 1 to 11. Electronic devices.
13. A computer program comprising instructions which, when executed by an electronic device having a display generation component and one or more input devices, cause the electronic device to perform a method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Electronic mail management device
JP2000285040A
Information processor
JP2011253453A
A system and method for displaying notifications received from multiple applications.
JP2014519126A
Display of Options, Assignment of Notifications, Ignoring of Messages, and Simultaneous Display of User Interfaces in a Messaging Application
JP2017517811A
Mail information processing device, mail information processing method, and program
JP2018018343A