Device, method, and graphical user interface for managing authentication credentials for user accounts
The implementation of auto-generated password generation and credential sharing on touch-sensitive devices addresses inefficiencies in credential management, enhancing efficiency and security while conserving power.
Patent Information
- Application Number
- JP2024167793
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-06-03
- Filing Date
- 2024-09-26
- Publication Date
- 2026-02-12
- Estimated Expiration
- 2039-04-23
AI Technical Summary
Existing methods for managing authentication credentials on electronic devices with touch-sensitive surfaces are cumbersome, inefficient, and cognitively burdensome, particularly in battery-operated devices, leading to energy wastage and security risks.
Electronic devices with touch-sensitive surfaces implement methods and interfaces that automatically generate strong passwords, store them for easy retrieval, and share credentials across devices, while recognizing verification codes, using touch and voice inputs to enhance efficiency and security.
These methods reduce cognitive burden, conserve power, and enhance user satisfaction by providing faster and more secure management of authentication credentials, extending battery life and improving user experience.
Smart Images

Figure 0007813323000001 
Figure 0007813323000002 
Figure 0007813323000003
Abstract
Description
[Technical Field]
[0001] This application relates generally to electronic devices with touch-sensitive surfaces, including, but not limited to, electronic devices with touch-sensitive surfaces that manage authentication credentials for user accounts. [Background technology]
[0002] The use of touch-sensitive surfaces as input devices for computers and other electronic computing devices has increased significantly in recent years. Exemplary touch-sensitive surfaces include touchpads and touchscreen displays. Such surfaces are widely used to manipulate user interface objects on the display.
[0003] Exemplary operations include adjusting the position and / or size of one or more user interface objects, activating a button, or opening a file / application represented by a user interface object, associating metadata with one or more user interface objects, or otherwise manipulating the user interface. Exemplary user interface objects include digital images, video, text, icons, and control elements such as buttons and other graphics. In some situations, a user may need to perform such operations on user interface objects in a file management program (e.g., Finder, manufactured by Apple Inc. of Cupertino, California), an image management application (e.g., Aperture, iPhoto, Photos, manufactured by Apple Inc. of Cupertino, California), a digital content (e.g., video and music) management application (e.g., iTunes, manufactured by Apple Inc. of Cupertino, California), a drawing application, a presentation application (e.g., Keynote, manufactured by Apple Inc. of Cupertino, California), a word processing application (e.g., Pages, manufactured by Apple Inc. of Cupertino, California), a website creation application (e.g., iWeb, manufactured by Apple Inc. of Cupertino, California), a disc authoring application (e.g., iDVD, manufactured by Apple Inc. of Cupertino, California), or a spreadsheet application (e.g., Numbers, manufactured by Apple Inc. of Cupertino, California).
[0004] However, methods for performing these operations are cumbersome and inefficient. For example, using a series of mouse-based inputs to select one or more user interface objects and perform one or more actions on the selected user interface objects is tedious and creates a significant cognitive burden for the user. Additionally, these methods take longer than necessary, thereby wasting energy. The latter problem is particularly acute in battery-operated devices. Summary of the Invention
[0005] Therefore, there is a need for electronic devices with faster, more efficient methods and interfaces for managing authentication credentials for user accounts. Such methods and interfaces, optionally, complement or replace conventional methods for managing authentication credentials for user accounts. Such methods and interfaces reduce the cognitive burden on users and create a more efficient human-machine interface. For battery-operated devices, such methods and interfaces conserve power and extend the time between battery charges.
[0006] The above-mentioned deficiencies and other problems associated with user interfaces for electronic devices having touch-sensitive surfaces are reduced or eliminated by devices of the present disclosure. In some embodiments, the device is a desktop computer. In some embodiments, the device is portable (e.g., a notebook computer, a tablet computer, or a handheld device). In some embodiments, the device has a touchpad. In some embodiments, the device has a touch-sensitive display (also known as a "touch screen" or "touchscreen display"). In some embodiments, the device has a graphical user interface (GUI), one or more processors, memory, and one or more modules, programs, or instruction sets stored in the memory for performing a number of functions. In some embodiments, a user interacts with the GUI primarily through stylus and / or finger contacts and gestures on the touch-sensitive surface. In some embodiments, the functions optionally include image editing, drawing, presenting, word processing, website creation, disc authoring, spreadsheet creation, game playing, making phone calls, video conferencing, emailing, instant messaging, training support, digital photography, digital videography, web browsing, digital music playback, and / or digital video playback. Executable instructions to perform those functions 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.
[0007] According to some embodiments, a method is performed on an electronic device including a display device and one or more input devices. The method includes displaying, via the display device, a user interface including a new password field. The method includes detecting, via the one or more input devices, user input corresponding to selection of the new password field. In response to detecting user input corresponding to selection of the new password field, the method includes displaying, on the display device, a representation of the new auto-generated password in the new password field and displaying, on the display device, an affordance for accepting the new auto-generated password and an affordance for declining to use the new auto-generated password.
[0008] According to some embodiments, a method is performed on an electronic device including a display device and one or more input devices. The method includes receiving, via the one or more input devices, a request to access a resource protected by a verification code. After receiving the request to access the resource, the method includes receiving an electronic message at the electronic device. After receiving the electronic message, while displaying, via the display device, a user interface for inputting the verification code, the method includes, pursuant to a determination that the electronic message includes content that meets respective criteria, including a format requirement that the electronic message include content that matches a predetermined format, displaying an insertion affordance that, when selected, automatically inserts the content that matches the predetermined format into the user interface as a verification code.
[0009] According to some embodiments, a method is performed on a first electronic device having a display device and one or more input devices. The method includes receiving, at the first electronic device, an indication that a second electronic device requires authentication credentials for a service. In response to receiving the indication that the second electronic device requires authentication credentials for the service, and in response to determining that the first electronic device satisfies respective criteria, including a requirement that the first electronic device be within a predetermined proximity to the second electronic device, the method includes displaying, via the display device, a confirmation prompt on the first electronic device that requires input of confirmation information from the second electronic device to proceed so that the respective criteria are satisfied. While displaying the confirmation prompt, the method includes receiving, via the one or more input devices, confirmation information from the second electronic device on the first electronic device. In response to receiving the confirmation information, the method includes initiating a process for sharing authentication credentials for the service from the first electronic device to the second electronic device.
[0010] According to some embodiments, a method is performed on an electronic device comprising a display device and one or more input devices. The method includes detecting an oral request to display password information via the one or more input devices. In response to receiving the oral request to display the password information, the method includes, in accordance with a determination that the request is for a password for a first user account accessible by the device and the user is authenticated, displaying the password for the first user account, and in accordance with a determination that the request is for a password for a second user account accessible by the device and the user is authenticated, displaying the password for the second user account.
[0011] According to some embodiments, an electronic device includes a display device configured to display a user interface, one or more input devices configured to receive user input, and a processing device coupled to the display device and the one or more input devices. The processing device is configured to display, via the display device, a user interface including a new password field. The processing device is configured to detect, via the one or more input devices, user input corresponding to selection of the new password field. In response to detecting user input corresponding to selection of the new password field, the processing device is configured to display, on the display device, a representation of the new auto-generated password in the new password field and display, on the display device, an affordance for accepting the new auto-generated password and an affordance for declining to use the new auto-generated password.
[0012] According to some embodiments, an electronic device includes a display device configured to display a user interface, one or more input devices configured to receive user input, and a processing device coupled to the display device and the one or more input devices. The processing device is configured to receive a request to access a resource protected by a verification code via the one or more input devices. After receiving the request to access the resource, the processing device is configured to receive an electronic message at the electronic device. After receiving the electronic message, while displaying a user interface for inputting the verification code via the display device, the processing device is configured to display an insertion affordance that, when selected, automatically inserts content matching the predetermined format into the user interface as a verification code in accordance with a determination that the electronic message includes content that meets respective criteria, including a format requirement that the electronic message include content matching the predetermined format.
[0013] According to some embodiments, a first electronic device includes a display device configured to display a user interface, one or more input devices configured to receive user input, and a processing device connected to the display device and the one or more input devices. The processing device is configured to receive an indication at the first electronic device that a second electronic device requires authentication credentials for a service. In response to receiving the indication that the second electronic device requires authentication credentials for the service, and following a determination that the first electronic device satisfies respective criteria, including a requirement that the first electronic device be within a predetermined proximity to the second electronic device, the processing device is configured to display, via the display device, a confirmation prompt on the first electronic device that requires input of confirmation information from the second electronic device to proceed so that the respective criteria are satisfied. While displaying the confirmation prompt, the processing device is configured to receive, via the one or more input devices, confirmation information from the second electronic device on the first electronic device. In response to receiving the confirmation information, the processing device is configured to initiate a process for sharing authentication credentials for the service from the first electronic device to the second electronic device.
[0014] According to some embodiments, the first electronic device includes a display device configured to display a user interface, one or more input devices configured to receive user input, and a processing device coupled to the display device and the one or more input devices. The processing device is configured to detect an oral request to display password information via the one or more input devices. In response to receiving the oral request to display the password information, the processing device is configured to: display the password for the first user account if the request is for a password for a first user account accessible by the device and in accordance with a determination that the user is authenticated; and display the password for the second user account if the request is for a password for a second user account accessible by the device and in accordance with a determination that the user is authenticated.
[0015] According to some embodiments, an electronic device comprises a display device, one or more input devices, one or more processors, a non-transitory memory, and one or more programs, the one or more programs being stored in the non-transitory memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing or causing to be performed any of the operations of the methods described herein. According to some embodiments, a non-transitory computer-readable storage medium stores instructions therein that, when executed by one or more processors of an electronic device comprising a display device and one or more input devices, cause the electronic device to perform or cause to be performed any of the operations of the methods disclosed herein. According to some embodiments, a graphical user interface on an electronic device comprising a display device, one or more input devices, a memory, and one or more processors executing one or more programs stored in the non-transitory memory includes one or more elements displayed in any of the methods described above, which are updated in response to inputs as described in any of the methods disclosed herein. According to some embodiments, an electronic device comprises a display device, one or more input devices, and means for performing or causing to be performed any of the operations of the methods disclosed herein. According to some embodiments, an information processing apparatus for use in an electronic device comprising a display device and one or more input devices comprises means for performing or causing to be performed the operations of any of the methods disclosed herein.
[0016] In this manner, electronic devices that include a display device and one or more input devices are provided with faster, more efficient methods and interfaces for managing authentication credentials for user accounts, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces can complement or replace conventional methods for managing authentication credentials for user accounts. [Brief explanation of the drawings]
[0017] For a better understanding of the various described embodiments, reference should be made to the following Detailed Description of the Invention in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout:
[0018] [Figure 1A] 1 is a block diagram illustrating a portable multifunction device having a touch-sensitive display in accordance with some embodiments.
[0019] [Figure 1B] FIG. 2 is a block diagram illustrating exemplary components for event processing according to some embodiments.
[0020] [Figure 2] 1 illustrates a portable multifunction device with a touch screen according to some embodiments.
[0021] [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface in accordance with some embodiments.
[0022] [Figure 4A] 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device in accordance with some embodiments.
[0023] [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.
[0024] [Figure 5A] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5B]1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5C] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5D] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5E] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5F] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5G1] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5G2] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5G3] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5H] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5I]1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5J] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5K] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5L] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5M] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5N] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5O] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5P] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5Q] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5R]1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5S] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5T] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5U1] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5U2] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5U3] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5V] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5W] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5X] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5Y]1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5Z] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5AA] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5AB] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5AC] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments. [Figure 5AD] 1 illustrates an exemplary user interface for generating a new password for a user account and writing a verification code to the user interface, according to some embodiments.
[0025] [Figure 6A] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6B] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6C] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6D] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6E] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6F] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6G] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments. [Figure 6H] 1 illustrates an exemplary user interface for sharing authentication credentials according to some embodiments.
[0026] [Figure 7A] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7B] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7C] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7D] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7E] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7F] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7G] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7H] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7I] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7J] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7K] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7L] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7M] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7N] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7O] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7P] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7Q] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7R] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7S] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7T] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7U] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7V] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7W] 1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7X]1 illustrates an exemplary user interface for displaying password information according to some embodiments. [Figure 7Y] 1 illustrates an exemplary user interface for displaying password information according to some embodiments.
[0027] [Figure 8A] FIG. 1 is a flow diagram illustrating a method for generating a new password for a user account, according to some embodiments. [Figure 8B] FIG. 1 is a flow diagram illustrating a method for generating a new password for a user account, according to some embodiments. [Figure 8C] FIG. 1 is a flow diagram illustrating a method for generating a new password for a user account, according to some embodiments.
[0028] [Figure 9A] FIG. 10 is a flow diagram illustrating a method for writing a verification code to a user interface according to some embodiments. [Figure 9B] FIG. 10 is a flow diagram illustrating a method for writing a verification code to a user interface according to some embodiments. [Figure 9C] FIG. 10 is a flow diagram illustrating a method for writing a verification code to a user interface according to some embodiments. [Figure 9D] FIG. 10 is a flow diagram illustrating a method for writing a verification code to a user interface according to some embodiments.
[0029] [Figure 10A] FIG. 1 is a flow diagram illustrating a method for sharing authentication credentials according to some embodiments. [Figure 10B] FIG. 1 is a flow diagram illustrating a method for sharing authentication credentials according to some embodiments. [Figure 10C] FIG. 1 is a flow diagram illustrating a method for sharing authentication credentials according to some embodiments.
[0030] [Figure 11A] FIG. 1 is a flow diagram illustrating a method for displaying password information according to some embodiments. [Figure 11B] FIG. 1 is a flow diagram illustrating a method for displaying password information according to some embodiments. [Figure 11C] FIG. 1 is a flow diagram illustrating a method for displaying password information according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0031] As the number of service providers offering services (e.g., web services and mobile applications) increases, the number of user accounts associated with users also increases. Many user accounts are associated with authentication credentials, such as usernames and passwords, that are provided to access resources offered as part of the service. Many users have difficulty remembering numerous username / password combinations. Therefore, many users choose simple, weak, and / or insecure passwords, or use the same password for many different user accounts, also resulting in a lack of security. When providing a password to log in to a user account new device, users can easily forget a strong password or may be required to enter further authentication credentials in the form of a verification code.
[0032] Thus, in various embodiments, when provided with the option to generate a new password for a user account, the device automatically generates a strong new password. Additionally, the device stores the new password for easy retrieval via a verbal request. In various embodiments, the device shares the password (and / or other authentication credentials) with other devices and automatically recognizes received verification codes.
[0033] Below, Figures 1A, 1B, 2, and 3 provide descriptions of exemplary devices. Figures 4A-4B, 5A-5AD, 6A-6H, and 7A-7Y illustrate exemplary user interfaces for managing authentication credentials for a user account. Figures 8A-8C illustrate a flow diagram of a method for generating a new password for a user account. Figures 9A-9D illustrate a flow diagram of a method for writing a verification code to a user interface. Figures 10A-10C illustrate a flow diagram of a method for sharing authentication credentials, according to some embodiments. Figures 11A-11C illustrate a flow diagram of a method for displaying password information. The user interfaces of Figures 5A-5AD, 6A-6H, and 7A-7Y are used to illustrate the processes of Figures 8A-8C, 9A-9D, 10A-10C, and 11A-11C. Exemplary Devices
[0034] 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.
[0035] In this specification, terms such as "first," "second," etc. are used to describe various elements in some examples, 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 being described. Although a first contact and a second contact are both contacts, they are not the same contact unless the context clearly dictates otherwise.
[0036] The terminology used in the description of the various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. In the description of the various embodiments set forth and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. Also, as used herein, the term "and / or" should be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0037] 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.
[0038] 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®, iPad®, Apple TV®, and HomePod® devices from Apple Inc. of Cupertino, California. Other portable electronic devices, such as laptops or tablet computers having a touch-sensitive surface (e.g., a touchscreen display and / or touchpad), are optionally 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 touchpad).
[0039] 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.
[0040] The device typically supports a variety of applications such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disc authoring application, a spreadsheet application, a gaming application, a telephone application, a video conferencing application, an email application, an instant messaging application, a training support application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and / or a digital video player application.
[0041] Various applications running on the device optionally use at least one common physical user interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface, as well as corresponding information displayed on the device, are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture of the device (such as the touch-sensitive surface) optionally supports various applications with user interfaces that are intuitive and transparent to the user.
[0042] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 having touch-sensitive display system 112, according to some embodiments. Touch-sensitive display system 112 may conveniently be referred to as a "touch screen" or simply as 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 for detecting the intensity of a contact on device 100 (e.g., a touch-sensitive surface, such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 163 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 via one or more communication buses or signal lines 103.
[0043] 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 the user's hand), the tactile output produced by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in a physical property of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, a user feels a tactile sensation such as a “downclick” or “upclick” even when there is no movement of a physical actuator button associated with the touch-sensitive surface that is physically pressed (e.g., displaced) by the user's action. As another example, movement of a touch-sensitive surface is optionally interpreted or perceived by a user as "roughness" of the touch-sensitive surface, even when there is no change in the smoothness of the touch-sensitive surface. While such user interpretation of touch depends on the user's personal sensory perception, there are many sensory perceptions of touch that are common to the majority of users. Thus, when a tactile output is described as corresponding to a particular sensory perception of a user (e.g., "upclick," "downclick," "roughness"), unless otherwise specified, the generated tactile output corresponds to a physical displacement of the device, or a component of the device, that produces the described sensory perception for a typical (or average) user.
[0044] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of 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.
[0045] Memory 102 optionally includes high-speed random access memory, and optionally 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 CPU(s) 120 and peripherals interface 118, is optionally controlled by memory controller 122.
[0046] A peripheral interface 118 can be used to connect input and output peripherals of the device with 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 memory 102 to perform various functions and process data for the device 100.
[0047] In some embodiments, peripheral 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.
[0048] RF (radio frequency) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. RF circuitry 108 converts electrical signals to or from electromagnetic signals and communicates with communication networks and other communication devices via electromagnetic signals. RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a subscriber identity module (SIM) card, memory, etc. RF circuitry 108 optionally communicates wirelessly with networks, such as the Internet, also known as the World Wide Web (WWW), an intranet, and / or wireless networks, such as cellular telephone networks, wireless local area networks (LANs) and / or metropolitan area networks (MANs), and with other devices. The wireless communication optionally uses any of a plurality of communication standards, protocols, and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (WDMA), and the like.Wireless technology may include, but is not limited to, wireless technology such as wireless-to-wireless (W-CDMA), code division multiple access (W-CDMA), code division multiple access (CDMA), time division multiple access (TDMA), Bluetooth®, 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 Extensions, and the like). Examples of suitable communication protocols include, but are not limited to, Simple Interleaving Extensions (SIMPLE), Instant Messaging and Presence Service (IMPS), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.
[0049] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 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., mono or binaural headphones) and an input (e.g., a microphone).
[0050] 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 display controller 156, light sensor controller 158, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for 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, infrared port, USB port, stylus, and / or 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).
[0051] 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 sends 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 user interface objects.
[0052] Touch-sensitive display system 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on haptic / 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 disruption 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) displayed on touch-sensitive display system 112. In one example embodiment, the point of contact between touch-sensitive display system 112 and the user corresponds to the user's finger or stylus.
[0053] 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 optionally use any of a number of now known or later developed touch sensing technologies to detect contact and any movement or disruption thereof, 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 an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone®, iPod Touch®, and iPad® from Apple Inc. of Cupertino, California.
[0054] Touch-sensitive display system 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the video resolution of the touchscreen is greater than 400 dpi (e.g., 500 dpi, 800 dpi, or higher). A user optionally contacts touch-sensitive display system 112 using any suitable object or accessory, such as a stylus, a finger, or the like. In some embodiments, the user interface is designed to work with finger-based contacts and gestures, which may be less precise than stylus-based input due to the larger contact area of a finger on a touchscreen than that of a stylus. In some embodiments, the device translates coarse finger input into precise pointer / cursor positions or commands to perform actions desired by the user.
[0055] In some embodiments, in addition to the touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface separate from touch-sensitive display system 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0056] 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., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of electrical power within a portable device.
[0057] 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 called a camera module), light sensor(s) 164 optionally capture 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 touchscreen 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 video conference while the user is viewing other video conference participants on the touchscreen, etc.).
[0058] 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, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor(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 the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display system 112, which is located on the front of device 100.
[0059] 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 the user's ear (e.g., when the user is making a phone call).
[0060] Device 100 optionally includes one or more tactile output generators 163. FIG. 1A shows tactile output generators coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator(s) 163 optionally 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) 163 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 tactile output, optionally by moving the touch-sensitive surface vertically (e.g., in / out of 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.
[0061] Device 100 also optionally includes one or more accelerometers 167, gyroscopes 168, and / or magnetometers 169 (e.g., as part of an inertial measurement unit (IMU)) for obtaining information regarding the device's position (e.g., attitude). FIG. 1A shows sensors 167, 168, and 169 coupled to peripherals interface 118. Alternatively, sensors 167, 168, and 169 are optionally coupled to input controller 160 in I / O subsystem 106. In some embodiments, information is displayed on a touchscreen display in portrait or landscape view based on analysis of data received from the one or more accelerometers. Device 100 optionally includes a GPS (or GLONASS or other global navigation system) receiver for obtaining information regarding device 100's position.
[0062] In some embodiments, software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a touch / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a 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 sets) 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, which indicates which applications, if any, are currently active; display state, which indicates which applications, views, or other information occupy various areas of touch-sensitive display system 112; sensor state, which includes information obtained from the device's various sensors and other input or control devices 116; and position and / or location information regarding the device's position and / or orientation.
[0063] Operating system 126 (e.g., an embedded operating system such as iOS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or VxWorks) 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 facilitating communication between various hardware and software components.
[0064] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE®, etc.) is adapted to connect to other devices directly or indirectly via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector identical to, similar to, and / or compatible with the 30-pin connector used in some iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. 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, California.
[0065] Contact / motion module 130 optionally detects contact with touch-sensitive display system 112 (in cooperation with display controller 156) and 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 whether contact has occurred (e.g., detecting a finger down event), determining the intensity of the contact (e.g., the force or pressure of the contact, or a surrogate for the force or pressure of the contact), determining whether there is movement of the contact across the touch-sensitive surface and tracking that movement (e.g., detecting one or more finger drag events), and determining whether the contact has ceased (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 actions optionally apply to a single contact (e.g., a single finger contact or a stylus contact) or to multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts and / or stylus contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0066] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or strength of the detected contacts). Thus, gestures are optionally detected by detecting particular contact patterns. For example, detecting a finger tap gesture includes detecting a finger down event, followed by detecting 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 the touch-sensitive surface includes detecting a finger down event, followed by detecting one or more finger drag events, followed by detecting a finger up (lift-off) event. Similarly, taps, swipes, drags, and other gestures are optionally detected with respect to a stylus by detecting particular contact patterns with respect to the stylus.
[0067] 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, video, and animation.
[0068] In some embodiments, graphics module 132 stores data representing graphics to be used. Each graphic is optionally assigned a corresponding code. Graphics module 132 receives one or more codes specifying the graphics to be displayed, including coordinate data and other graphic characteristic data, as needed, from an application or the like, and then generates screen image data to output to display controller 156.
[0069] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 163 to generate tactile outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0070] 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).
[0071] 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 weather widgets, local yellow pages widgets, and maps / navigation widgets).
[0072] 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, ●Video conferencing 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.
[0073] Examples of other applications 136 optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, voice recognition, and voice duplication.
[0074] 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 application internal state 192 of contacts module 137 in memory 370) for managing an address book or contact list, including adding name(s) to the address book, removing name(s) from the address book, associating phone number(s), email address(es), physical address(es), or other information with names, associating images with names, categorizing and sorting names, providing phone numbers and / or email addresses to initiate and / or facilitate communication by phone 138, video conference 139, email 140, or IM 141, etc.
[0075] 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 series 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 noted above, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.
[0076] In conjunction 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, video conferencing module 139 includes executable instructions to initiate, conduct, and terminate video conferences between a user and one or more other participants according to the user's commands.
[0077] 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, email client module 140 contains executable instructions for creating, sending, receiving, and managing emails in response to user instructions. In cooperation 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.
[0078] Instant message module 141, together with RF circuitry 108, touch-sensitive display system 112, display controller 156, contact module 130, graphics module 132, and text input module 134, includes executable instructions to enter text strings corresponding to instant messages, modify entered text, send 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), receive instant messages, and view 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 message" refers to both telephone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, APNs, or IMPS).
[0079] 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., with time, distance, and / or calorie burn goals), communicate with training sensors (in the sports device and smartwatch), receive training sensor data, calibrate sensors used to monitor workouts, select and play music for workouts, and display, store, and transmit workout data.
[0080] 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, includes executable instructions to capture still images or video (including video streams) and store them in memory 102, change characteristics of the still images or video, and / or delete the still images or video from memory 102.
[0081] 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, includes executable instructions for arranging, modifying (e.g., editing), or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slide show or album), and storing still and / or video images.
[0082] Browser module 147, along 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 user commands, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0083] 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, includes executable instructions to create, display, modify, and store calendars and data associated with calendars (e.g., calendar entries, to-do lists, etc.) according to user commands.
[0084] 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 quotes 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 include Hypertext Markup Language (HTML) files, Cascading Style Sheets (CSS) files, and JavaScript files. In some embodiments, widgets include Extensible Markup Language (XML) files and JavaScript files (e.g., Yahoo! Widgets).
[0085] 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, 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).
[0086] 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 includes executable instructions to search memory 102 for text, music, sound, images, video, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with a user's instructions.
[0087] In cooperation 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 includes 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 video (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 the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).
[0088] In conjunction with 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 user commands.
[0089] 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 user instructions.
[0090] In cooperation 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 touchscreen 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.
[0091] Each of the above-identified modules and applications corresponds to executable instruction sets that perform one or more of the functions described above and methods described in the present 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; 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.
[0092] In some embodiments, device 100 is a device in which operation of a predetermined set of functions on the device is performed solely 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.
[0093] 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, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device rather than a touchpad.
[0094] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (in FIG. 1A) or 370 (in FIG. 3) includes event sorter 170 (e.g., within operating system 126) and a respective application 136-1 (e.g., any of applications 136, 137-155, 380-390 described above).
[0095] Event sorter 170 receives the event information and determines which application 136-1 to deliver the event information to and application view 191 of application 136-1. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) that are displayed on touch-sensitive display 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) are currently active, and application internal state 192 is used by event sorter 170 to determine which application(s) are currently active, and application internal state 192 is used by event sorter 170 to determine which application(s) to deliver the event information to.
[0096] 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 the user to return to a previous state or view of application 136-1, and redo / undo cues of previous actions taken by the user.
[0097] 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) 167, gyroscope(s) 168, magnetometer(s) 169, and / or microphone 113 (via audio circuitry 110). The information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display system 112 or a touch-sensitive surface.
[0098] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receiving an input above a predetermined noise threshold and / or for longer than a predetermined period of time).
[0099] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .
[0100] 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 the controls and other elements that a user can see on the display.
[0101] 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 each application) in which a touch is detected optionally corresponds to a programmatic level within the application's programmatic or view hierarchy. For example, the lowest-level view in which a touch is detected is optionally referred to as the hit view, and the set of events that are recognized as appropriate inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch gesture.
[0102] 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.
[0103] 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.
[0104] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers 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.
[0105] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or is part of another module stored in memory 102, such as contact / motion module 130.
[0106] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a 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 attributes. In some embodiments, each event handler 190 includes one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or calls data updater 176, object updater 177, or GUI updater 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.
[0107] 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).
[0108] 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 position of the sub-event. When the sub-event involves a movement of a touch, the event information optionally also 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 called the device's attitude).
[0109] 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 predefined sequence of sub-events), such as Event 1 (187-1) and Event 2 (187-2). In some embodiments, sub-events within each event, such as Event 1 (187-1) or Event 2 (187-2), include, for example, touch start, touch end, touch movement, touch cancellation, and multiple touches. In one example, the definition for Event 1 (187-1) is a double tap on a displayed object. A double tap includes, for example, a first touch (beginning of the touch) for a predetermined step on the displayed object, a first lift-off (end of the touch) for a predetermined step, a second touch (beginning of the touch) for a predetermined step on the displayed object, and a second lift-off (end of the touch) for a predetermined step. In another example, a definition of event 2 (187-2) is a drag on the displayed object. A drag includes, for example, a touch (or contact) for a predetermined step on the 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 for one or more associated event handlers 190.
[0110] In some embodiments, the event definition for each event, such as Event 1 (187-1) or Event 2 (187-2), 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.
[0111] In some embodiments, the definition of each event, such as Event 1 (187-1) or Event 2 (187-2), also includes a delay action that delays delivery of the event information until it is determined whether the sequence of sub-events corresponds to the event type of the event recognizer.
[0112] 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-ended 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-based gesture.
[0113] 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 how event recognizers are allowed to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are delivered to various levels in the view or programmatic hierarchy.
[0114] In some embodiments, each event recognizer 180 activates an event handler 190 associated with an event when one or more specific sub-events of the event are recognized. In some embodiments, each event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and postponing sending) 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 captures the flag and performs a predetermined process.
[0115] 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 predetermined processing.
[0116] 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 player module 145. 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.
[0117] In some embodiments, event handler(s) 190 include or have access to data updater 176, object updater 177, and GUI updater 178. In some embodiments, data updater 176, object updater 177, and GUI updater 178 are included in a single module of the respective application 136-1 or application view 191. In other embodiments, they are included in two or more software modules.
[0118] 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 using input devices, not all of which are initiated on the touchscreen. For example, mouse movements and mouse button presses, contact movements such as tapping, dragging, scrolling on a touchpad, optionally coordinated with single or multiple keyboard presses or holds, pen stylus input, device movement, verbal commands, detected eye movement, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the recognized event.
[0119] FIG. 2 illustrates portable multifunction device 100 having a touchscreen (e.g., touch-sensitive display system 112, FIG. 1A ) according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as other embodiments described below, a user may select one or more of the graphics by performing a gesture on the graphics, for example, using one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics 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, upward and / or downward), and / or rolling of a finger in contact with device 100 (right to left, left to right, upward and / or downward). In some implementations or situations, accidental contact with a graphic does not select the graphic, for example, if the gesture corresponding to selection is a tap, a swipe gesture sweeping over an application icon optionally does not select the corresponding application.
[0120] 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 within a GUI displayed on a touchscreen display.
[0121] In some embodiments, device 100 includes a touchscreen display, a menu button 204, a push button 206 for powering the device on / off and locking the device, 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 predetermined period of time, to lock the device by pressing and releasing the button before the predetermined time has elapsed, and / or to unlock the device or begin the 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 for detecting contact intensity on touch-sensitive display system 112 and / or one or more tactile output generators 163 for generating a tactile output to a user of device 100.
[0122] 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 called a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interface 330, which includes display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator(s) 163 described above with reference to FIG. 1A ) for generating tactile output on device 300, sensors 359 (e.g., touch-sensitive sensors, optical sensors, contact intensity sensors, proximity sensors, acceleration sensors, attitude sensors, and / or magnetic sensors, contact intensity sensors similar to sensors 112, 164, 165, 166, 167, 168, and 169 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310 .In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disc authoring module 388, and / or spreadsheet module 390, while memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store those modules.
[0123] 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; 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.
[0124] Attention is now directed to embodiments of a user interface (“UI”) that is optionally implemented on portable multifunction device 100.
[0125] 4A shows an exemplary user interface for a menu of applications on portable multifunction device 100, according to some embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, user interface 400 includes the following elements, or a subset or superset thereof: signal strength indicator(s) 402 for wireless communication(s), such as cellular and Wi-Fi signals; ●Time 404, ●Bluetooth indicator 405, ● Battery status indicator 406, A tray 408 containing icons for frequently used applications, such as: An icon 416 for the phone module 138, labeled "Phone," optionally including an indicator 414 of the number of missed calls or voicemail messages; 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"; ○ An icon 422 of the video and music player module 152, also called the iPod (trademark of Apple Inc.) module 152, labeled "iPod"; and ●Icons for other applications, such as: ○ Icon 424 for IM module 141, labeled "Text" ○ 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 Map module 154, labeled "Map" ○ Icon 438 of Weather widget 149-1, labeled "Weather" ○ Icon 440 of alarm clock widget 169-6, labeled "Clock" ○ Icon 442 of Training Support Module 142, labeled "Training Support"; 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.
[0126] 4A are merely examples. For example, in some embodiments, icon 422 for video and music player module 152 is labeled "Music" or "Music Player." Other labels are optionally used for various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to that particular application icon.
[0127] 4B shows an exemplary user interface on a device (e.g., device 300, FIG. 3) having touch-sensitive surface 451 (e.g., tablet or touchpad 355, FIG. 3) separate from display 450. Device 300 optionally also includes one or more contact intensity sensors (e.g., one or more of sensors 359) that detect the intensity of a contact on touch-sensitive surface 451, and / or one or more tactile output generators 359 that generate a tactile output for a user of device 300.
[0128] FIG. 4B shows an example user interface on a device (e.g., device 300, FIG. 3) that has touch-sensitive surface 451 (e.g., tablet or touchpad 355, FIG. 3) separate from display 450. While 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 these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., 460 corresponds to 468, and 462 corresponds to 470 in FIG. 4B ). In this manner, when the touch-sensitive surface is separate from the display, user input (e.g., contacts 460 and 462, and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device. It should be understood that similar methods are optionally used for the other user interfaces described herein.
[0129] Additionally, while the following examples are given primarily with reference to finger input (e.g., finger touches, finger tap gestures, finger swipe gestures, 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 cursor movement along the path of the swipe (e.g., instead of a touch movement). As another example, a tap gesture is optionally replaced by a mouse click while the cursor is positioned over the tap gesture location (e.g., instead of detecting a touch and then stopping touch detection). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger touches are optionally used simultaneously.
[0130] As used herein, the term “focus selector” refers to an input element that indicates the current portion of a user interface with which a user is interacting. In some implementations involving a cursor or other location marker, the cursor functions as a “focus selector” such that when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 in FIG. 3 or touch-sensitive surface 451 in FIG. 4B ) 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 input (e.g., a press input by a 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 (e.g., by using the tab key or arrow keys to move focus from one button to another) without a corresponding cursor movement or contact movement on the touchscreen display. In these implementations, the focus selector moves to follow the movement of focus between various regions of the user interface. Regardless of the specific form the focus selector takes, the focus selector is generally a user interface element (or a contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface that the user intends to interact with).For example, the position of a focus selector (e.g., cursor, touch, 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 the user's intent to activate that respective button (and not other user interface elements shown on the device's display). User Interface and Related Processes
[0131] Attention is now directed to embodiments of user interfaces (“UI”) and associated processing that may be implemented on an electronic device, such as portable multifunction device (PMD) 100 or device 300, that includes a display, a touch-sensitive surface, and one or more sensors for detecting the intensity of contact on the touch-sensitive surface.
[0132] 5A-5K show exemplary user interfaces for generating a new password for a user account, according to some embodiments. 5L-5AD show exemplary user interfaces for writing a verification code to a user interface, according to some embodiments. 6A-6H show exemplary user interfaces for sharing authentication credentials, according to some embodiments. 7A-7Y show exemplary user interfaces for displaying password information, according to some embodiments. The user interfaces in these figures are used to illustrate processes described below, including those in FIGS. 8A-8C, 9A-9D, 10A-10C, and 11A-11C. While some of the examples below are described with reference to input on a touch-screen display (combining the touch-sensitive surface and display), in some embodiments, the device detects input on touch-sensitive surface 451 that is separate from display 450, as shown in FIG. 4B.
[0133] 5A shows web browser user interface 502 as part of user interface 500 displayed by portable multifunction device 100 (hereinafter "device 100"). In addition to web browser user interface 502, user interface 500 includes device bar 501 at the top of the display that includes an identifying name for device 100 (e.g., "iPhone"), a wireless connection indicator, the current time, and a battery indicator showing the charge level of device 100.
[0134] User interface 500 includes a web browser user interface 502 below device bar 501 and across the remainder of the display. Web browser user interface 502 includes an address bar 521 and a content area 522. Address bar 521 includes the address (e.g., URL) of the web page whose content is displayed in content area 522. Address bar 521 also includes a reload affordance that, when selected, reloads the content of the web page in content area 522. In FIG. 5A , address bar 521 displays the address of the service's home page.
[0135] 5A , the content displayed in content area 522 includes an image (of an apple), sign-up affordance 531A, and sign-in affordance 531B. Sign-up affordance 531A, when selected, allows a user to register with a service, e.g., create a user account for the service, to access resources (e.g., content) protected by the user account's authentication credentials. Sign-in affordance 531B, when selected, allows a user to provide authentication credentials to access the service's resources.
[0136] FIG. 5A shows contact 550A detected at the location of sign-up affordance 531A.
[0137] FIG. 5B shows the user interface 500 of FIG. 5A in response to detecting contact 550A at sign-up affordance 531A. In FIG. 5B, address bar 521 includes the address of a web service's sign-up page. In FIG. 5B, content area 522 includes an image (of an apple), multiple fields 532A-532D for receiving text input, descriptive text associated with each of the multiple fields 532A-532D, and a sign-up complete affordance 531C that, when selected, creates a user account using the authentication credentials entered into the multiple fields 532A-532D.
[0138] The plurality of fields 532A-532D includes a new username field 532A for receiving text input indicating a username to be associated with the user account. The plurality of fields 532A-532D includes a phone number field 532B for receiving text input indicating a phone number to be associated with the user account (e.g., the phone number of the device 100 and / or the user). The plurality of fields 532A-532D includes a new password field 532C for receiving text input indicating a password to be associated with the user account. The plurality of fields 532A-532D includes a password confirmation field 532D for receiving text input in the new password field 532C that matches the password input.
[0139] FIG. 5B shows a contact 550B detected at the location of the new username field 532A.
[0140] FIG. 5C illustrates user interface 500 of FIG. 5B in response to detecting contact 550B at new username field 532A. In response to detecting selection of new username field 532A, content region 522 includes cursor 533 displayed in new username field 532A. User interface 500 further includes a soft keyboard 503A having multiple character insertion affordances that, when selected, write each character into the selected field. Soft keyboard 503A includes navigation region 541. Navigation region 541 includes a previous affordance (indicated by an up arrow) that, when selected, selects and moves cursor 533 to the previous field, a next affordance (indicated by a down arrow) that, when selected, selects and moves cursor 533 to the next field, and an exit affordance (indicated by the text "Done") that, when selected, deselects the selected field and ceases displaying cursor 533 and soft keyboard 503A.
[0141] Soft keyboard 503A includes text suggestion area 542 that contains a text suggestion affordance that shows suggested text and, when selected, inserts the suggested text into the selected field.
[0142] FIG. 5C shows contact 550C at one of the character insertion affordances of soft keyboard 503A.
[0143] FIG. 5D illustrates the user interface 500 of FIG. 5C in response to detecting contact 550C at one of the character insertion affordances (and additional contacts at other character insertion affordances to complete writing the username "jappleseed" in the new username field 532A).
[0144] FIG. 5D shows contact 550D detected at the location of phone number field 532B.
[0145] 5E illustrates the user interface 500 of FIG. 5D in response to detecting contact 550D at the location of phone number field 532B. In response to detecting selection of phone number field 532B, cursor 533 is displayed in phone number field 532B. Additionally, soft keyboard 503A is replaced by numeric soft keyboard 503B having multiple character insertion affordances that, when selected, write a respective numeric character into the selected field. Similar to soft keyboard 503A, numeric soft keyboard 503B includes navigation region 541 and text suggestion region 542.
[0146] FIG. 5E shows contact 550E detected at one of the character insertion affordances.
[0147] FIG. 5F illustrates the user interface 500 of FIG. 5E in response to detecting contact 550E at one of the character insertion affordances (and additional contacts at other character insertion affordances to complete writing the phone number "(408)555-1234" in phone number field 532B).
[0148] FIG. 5F shows contact 550F detected at new password field 532C.
[0149] FIG. 5G1 illustrates a first embodiment of user interface 500 of FIG. 5F in response to detecting contact 550F at new password field 532C. In response to detecting selection of new password field 532C, cursor 533 is no longer displayed. Thus, cursor 533 is not displayed within new password field 532C. Instead, a representation of the automatically generated password is displayed within new password field 532C (and password confirmation field 532D). Additionally, numeric soft keyboard 503B is replaced by new password user interface 503C (also referred to as a "password keyboard" or "password soft keyboard"). In various implementations, new password user interface 503C is displayed at the bottom of the display, e.g., in the same location as soft keyboard 503A and / or numeric soft keyboard 503B.
[0150] In various embodiments, the automatically generated password is generated by device 100 based on one or more password constraints of the user interface, such as including at least a threshold number of characters, at least one uppercase letter, at least one number, and / or at least one special character. In various embodiments, device 100 determines the one or more password constraints based on text in content area 522 of user interface 500 and / or other information provided by the service.
[0151] New password user interface 503C includes text 544 that includes a description of the new auto-generated password and instructions for retrieving the new auto-generated password. For example, text 544 indicates that the new auto-generated password is auto-generated and meets password strength requirements. Text 544 indicates that the new auto-generated password is stored by device 100 and can be accessed by the user, for example, via a verbal request as described in more detail below.
[0152] New password user interface 503C includes an accept affordance 543A for accepting the new auto-generated password and a decline affordance 543B for declining to use the new auto-generated password. A secondary decline affordance 543BB for declining to use the new auto-generated password is displayed separately from new password user interface 503C, and in particular, next to a representation of the new auto-generated password in new password field 532C.
[0153] In response to the selection of a particular field, device 100 determines whether to display soft keyboard 503A (as in FIG. 5C ), soft keyboard 503B (as in FIG. 5E ), or new password user interface 503C based on the type of the particular field. In various embodiments, device 100 uses a field detection and classification algorithm to determine the type of field. In various embodiments, device 100 classifies the field based on one or more of: (1) text associated with content in content region 522 of user interface 500; or (2) the number of fields in content region 522 of user interface 500. For example, in response to detecting a field located next to text containing the word “password” and in response to detecting “register” or “sign up” within the text in content region 522, the device classifies the field as a new password field (and displays new password user interface 503C). In contrast, in response to detecting a field located in text containing the word "password," and in response to detecting "login" or "sign in" in the text in content region 522, the device classifies the field as a password field (and displays soft keyboard 503A to receive user input of a password or automatically insert a known password into the password field). As another example, in response to detecting two fields in content region 522, one of which is located next to text containing the word "password," device 100 classifies the field as a password field for signing in to a user account. In contrast, in response to detecting three or more fields in content region 522, one of which is located next to text containing the word "password," the device classifies the field as a new password field for creating a user account.Similarly, in response to detecting at least two fields in content region 522, two of which are located adjacent to text containing the word “password,” device 100 classifies the first field as a new password field and the second field as a password confirmation field.
[0154] In FIG. 5G1, the representation of the new auto-generated password displayed in new password field 532C is the new auto-generated password itself. FIG. 5G2 shows a second embodiment of user interface 500 of FIG. 5F in response to detecting contact 550F at new password field 532C, which differs from FIG. 5G1 in that the representation of the new auto-generated password displayed in new password field 532C (and password confirmation field 532D) is a generic password indicator, such as a series of asterisks or a series of filled circles. FIG. 5G3 shows a third embodiment of user interface 500 of FIG. 5F in response to detecting contact 550F at new password field 532C, which differs from FIG. 5G1 in that the representation of the new auto-generated password displayed in new password field 532C (and password confirmation field 532D) does not display a portion of the new auto-generated password, e.g., indicates that the new auto-generated password is faded along its length. In some embodiments, the new auto-generated password is displayed by an oval (e.g., "Y2v'GS...").
[0155] FIG. 5G3 shows contact 550G detected at the location of rejection affordance 543B.
[0156] Figure 5H shows user interface 500 of Figure 5G3 in response to detecting contact 550G at the location of rejection affordance 543B (or, in various embodiments, contact at the location of secondary rejection affordance 543BB). In response to detecting selection of rejection affordance 543B, new password user interface 503C (including acceptance affordance 543A and rejection affordance 543B) is replaced with soft keyboard 503A, which includes multiple character insertion affordances. Additionally, cursor 533 is displayed within new password field 532C.
[0157] In various embodiments (as in FIG. 5H ), in response to detecting selection of reject affordance 543B, the representation of the new auto-generated password is no longer displayed. Thus, by using soft keyboard 503A, the user can enter a password created and / or selected by the user. In various embodiments, the representation of the new auto-generated password remains displayed. Thus, by using soft keyboard 503A, the user can edit the new auto-generated password to the user's preferences or adhere to requirements for the new password, such as a requirement that certain characters (e.g., question marks or asterisks) not be used.
[0158] FIG. 5I shows the user interface 500 of FIG. 5G3 with contact 550H detected at the location of acceptance affordance 543A (rather than contact 550G detected at the location of rejection affordance 543B).
[0159] Figure 5J illustrates user interface 500 of Figure 5I in response to detecting contact 550H at the location of acceptance affordance 543A. In response to detecting selection of acceptance affordance 543A, new password user interface 503C (including acceptance affordance 543A and rejection affordance 543B) is no longer displayed.
[0160] FIG. 5J shows contact 550I detected at the location of sign-up complete affordance 531C.
[0161] Figure 5K shows the user interface 500 of Figure 5J in response to detecting contact 550I at the location of sign-up completion affordance 531C. In Figure 5K, address bar 521 includes the address of the service's completion sign-up page. In Figure 5K, content area 522 includes an image (of an apple), text indicating that the registration process is complete, and home affordance 531D, which, when selected, returns web browser user interface 502 to the web service's home page.
[0162] FIG. 5K shows contact 550J detected at the location of home affordance 531D.
[0163] Figure 5L shows the user interface 500 of Figure 5K in response to detecting contact 550J at the location of home affordance 531D. In Figure 5K, address bar 521 includes the address of the home page, and the content displayed in content region 222 includes an image (of an apple), sign-up affordance 531A, and sign-in affordance 531B.
[0164] FIG. 5L shows contact 550K detected at the location of sign-in affordance 531B.
[0165] FIG. 5M shows user interface 500 of FIG. 5L in response to detecting contact 550K at sign-in affordance 531B. In FIG. 5M, address bar 521 includes the address of a service's sign-in page. In FIG. 5M, content area 522 includes an image (of an apple), multiple fields 532E-532F for receiving text input, descriptive text associated with each of the multiple fields 532E-532F, and continue sign-in affordance 531E that, when selected, requests access to the service's resources based on the authentication credentials entered in the multiple fields 532E-532F.
[0166] The plurality of fields 532E-532F includes a username field 532E for receiving text input indicating a username associated with an existing user account. The plurality of fields 532E-532F includes a password field 532F for receiving text input indicating a password associated with the user account. In FIG. 5M, the username field 532E and the password field 532F have been auto-populated based on the detection and classification of fields 532E-532F and authentication credentials stored by device 100.
[0167] FIG. 5M shows contact 550L at the location of continue sign-in affordance 531E.
[0168] FIG. 5N illustrates the user interface 500 of FIG. 5M in response to detecting contact 550L at the location of sign-in continue affordance 531E. In FIG. 5N, address bar 521 includes the address of a service's confirmation page. In FIG. 5N, content region 522 includes an image (of an apple), a verification code field 532G for receiving text input, descriptive text associated with verification code field 532G, and another sign-in continue affordance 531F that, when selected, requests access to the service's resources based on the authentication credentials, specifically the verification code entered in verification code field 532G. Content region 522 also includes a request code affordance 531G that, when selected, requests that an electronic message including the verification code be sent to the user, for example, as a text message sent to the phone number provided in FIG. 5E.
[0169] 5O illustrates the user interface 500 of FIG. 5N after the electronic message has been received by the device 100. In response to receiving the electronic message, a message notification 561A is displayed. The message notification 561A includes text indicating the source of the electronic message (e.g., the phone number "987-66") and preview text that previews the contents of the electronic message.
[0170] FIG. 5O shows contact 550M detected at the location of message notification 561A.
[0171] FIG. 5P shows the user interface 500 of FIG. 5O in response to detecting contact 550M at the location of message notification 561A. User interface 500 includes a navigation bar 505 below device bar 501 that includes a back affordance 506 that, when selected, returns to web browser user interface 502. User interface 500 includes a text messenger user interface 504 below navigation bar 505 and across the remainder of the display. Text messenger user interface 504 includes a contact bar 562 and a content area 563. Contact bar 562 includes text indicating the source of the content displayed in content area 563. Contact bar 562 also includes a back affordance (denoted by a "<") that, when selected, displays a list of contact affordances for accessing content provided by each contact (e.g., SMS text messages). Contact bar 562 also includes an information affordance (a circled "i") that, when selected, provides information about the source of the content displayed in content area 563.
[0172] Content area 563 includes a message window 564 containing the content of the electronic message received from the source. In message window 564, the content of the text message that meets each criterion is displayed differently (e.g., highlighted) than the rest of the content. Specifically, in FIG. 5P, the content of the text message that meets each criterion is underlined, while the rest of the content is not underlined. In various embodiments, the content of the text message that meets each criterion is displayed in a color (e.g., blue) different from the rest of the content (e.g., black). In various embodiments, each criterion includes an email format requirement that the content match an email format (e.g., include characters preceding and following the at sign (“@”)). In various embodiments, each criterion includes a phone number format requirement that the content match a phone number format (e.g., include at least a threshold number of numeric characters). In various embodiments, each criterion includes a verification code format requirement that the content match a verification code format. A verification code format is one in which a numeric or alphanumeric value, such as 123456 or ab3d5f, is placed in close proximity to a keyword or short group of words that indicate the presence of a security code, such as "passcode," "authentication code," "two-factor authentication (2FA)," "your <service name> code," or "verify your account."
[0173] FIG. 5P shows contact 550N detected at the location of content displayed in message window 564 that meets the phone number format requirements.
[0174] 5Q shows user interface 500 of FIG. 5P in response to detecting contact 550N at content that meets phone number formatting requirements displayed in message window 564. In FIG. 5Q, user interface 500 includes a phone window 565A containing text indicating a phone number, a call affordance 566A that, when selected, causes device 100 to place a call to the phone number, and a cancel affordance 566B that, when selected, closes phone window 565A.
[0175] FIG. 5Q shows contact 550O detected at the location of cancellation affordance 566B.
[0176] Figure 5R shows user interface 500 of Figure 5Q in response to detecting contact 550O at the location of cancel affordance 566B. In Figure 5R, phone window 565A disappears.
[0177] FIG. 5R shows contact 550P at the location of content that meets the verification code format requirements displayed in message window 564.
[0178] Figure 5S shows user interface 500 of Figure 5R in response to detecting contact 550P at content that meets the authentication code format requirements displayed in message window 564. In Figure 5S, user interface 500 includes a verification code window 565B that includes text indicating a verification code, a copy affordance 566C that, when selected, causes device 100 to store the verification code in its cache (e.g., copy the verification code to the clipboard), and a cancel affordance 566D that, when selected, closes verification code window 565B.
[0179] FIG. 5S shows contact 550P detected at the location of copy affordance 566C.
[0180] 5T illustrates user interface 500 in response to detecting contact 550P at the location of copy affordance 566C. In FIG. 5T, verification code window 565B disappears.
[0181] FIG. 5T shows contact 550Q detected at the location of return affordance 506.
[0182] FIG. 5U1 illustrates user interface 500 in response to detecting contact 550Q at return affordance 506. In FIG. 5U1, text messenger user interface 504 has been replaced with web browser user interface 502 of FIG. 5N. Thus, FIG. 5U1 differs from FIG. 5N in that, although not shown, device 100 has received an electronic message and stored a verification code in its cache (e.g., copied the verification code to its clipboard).
[0183] Compared to FIG. 5O, FIG. 5U2 illustrates another embodiment of user interface 500 of FIG. 5N after an electronic message has been received by device 100. In response to receiving the electronic message, message notification 561B is displayed. Message notification 561B includes text indicating the source of the electronic message (e.g., the phone number “987-66”) and preview text that previews the content of the electronic message. In response to detecting electronic message content that meets respective criteria, including verification code format requirements, message notification 561B also includes copy affordance 561C that, when selected, causes device 100 to store the verification code in its cache (e.g., copy the verification code to its clipboard) and read affordance 561D that, when selected, closes message notification 561B.
[0184] FIG. 5U2 shows contact 550R detected at the location of copy affordance 561C.
[0185] Figure 5U3 shows user interface 500 of Figure 5U2 in response to detecting contact 550R at the location of copy affordance 561C. User interface 500 of Figure 5U3 is the same as user interface 500 of Figure 5U1.
[0186] FIG. 5U3 shows contact 550S detected at the location of verification code field 532G.
[0187] FIG. 5V illustrates user interface 500 of FIG. 5U3 (or, similarly, FIG. 5U1) in response to detecting contact 550S at the location of verification code field 532G. In response to detecting selection of verification code field 532G, cursor 533 is displayed within verification code field 532G. Additionally, user interface 500 includes numeric soft keyboard 503B.
[0188] In response to including text stored in the cache, e.g., text copied to the clipboard, user interface 500 includes a paste affordance 534 that, when selected, inserts the text stored in the cache into the selected field.
[0189] FIG. 5V shows contact 550T detected at the location of paste affordance 534.
[0190] Figure 5W shows the user interface 500 of Figure 5V in response to detecting contact 550T at the location of paste affordance 534. In Figure 5W, the verification code from the cache has been inserted into verification code field 532G.
[0191] FIG. 5W shows contact 550U detected at the location of continue sign-in affordance 531F.
[0192] Figure 5X shows the user interface 500 of Figure 5W in response to detecting contact 550U at the location of sign-in continue affordance 531F. In Figure 5X, address bar 521 includes the address of a content page of the service. In Figure 5X, content area 522 includes resources provided by the service protected by authentication credentials (potentially including an authentication code).
[0193] In comparison to Figure 5O, Figure 5Y illustrates another embodiment of user interface 500 of Figure 5N after an electronic message has been received by device 100. In response to receiving the electronic message, message notification 561A is displayed. Message notification 561A includes text indicating the source of the electronic message (e.g., the phone number "987-66") and preview text that previews the contents of the electronic message.
[0194] FIG. 5O shows contact 550M in the location of message notification 561A, while FIG. 5Y shows contact 550V in the location of verification code field 532G.
[0195] FIG. 5Z illustrates the user interface of FIG. 5Y in response to detecting contact 550V at the location of verification code field 532G. In response to detecting selection of verification code field 532G, cursor 533 is displayed within verification code field 532G. User interface 500 further includes a numeric soft keyboard 503B. Numeric soft keyboard 503B includes a navigation region 541 and a text suggestion region 542. Subject to respective criteria being met, text suggestion region 542 includes an insert affordance 545 that, when selected, automatically inserts the verification code within verification code field 532G. While FIG. 5Z illustrates numeric soft keyboard 503B, in various implementations, insert affordance 545 is displayed within text suggestion region 542 above soft keyboard 503A, a handwriting recognition user interface, or other user input region.
[0196] In various implementations, each criterion includes a requirement that the electronic message contain content that meets verification code format requirements. In various embodiments, each criterion includes a timing requirement that the user interface be displayed within a predetermined period of time from when the electronic message is received. Thus, in various embodiments, the insertion affordance is displayed for a limited time, e.g., three minutes, from when the electronic message is received. In various embodiments, each criterion includes a characteristic requirement that the user interface include a text input field with predetermined characteristics. In various embodiments, each criterion includes a selection requirement that a text input field be selected. For example, insertion affordance 545 is displayed when a field classified as a verification code field (e.g., based on analytics or metadata about the field provided by the service) is selected. As another example, insertion affordance 545 is displayed only when a field not classified as any other field, such as a username, password, email address, phone number, credit card number, address, or multi-line input field, is selected.
[0197] In various embodiments, insertion affordance 545 includes an indication of the application from which the electronic message was received. For example, in FIG. 5Z, insertion affordance 545 indicates a text messaging application ("Messages"). In other embodiments, the insertion affordance indicates an email application or a chat application. In various embodiments, insertion affordance 545 includes an indication of the sender of the electronic message. For example, in FIG. 5Z, the insertion affordance indicates a phone number ("987-66"). In other embodiments, the insertion affordance indicates the name of a service, e.g., "Apple Fun." In some embodiments, the application indication or the sender indication are not displayed with the other.
[0198] FIG. 5Z shows contact 550W at the location of the insert affordance within text suggestion region 542.
[0199] View AA shows user interface 500 of Figure 5Z in response to detecting contact 550W at the location of insert affordance 545. In Figure 5AA, a verification code has been inserted into verification code field 532G.
[0200] In various embodiments, user interface 500 of Figure 5AA is reached directly from the user interface of Figure 5Y without requiring selection of insert affordance 545. Thus, in various embodiments, in response to determining that the electronic message contains content that meets the respective criteria, device 100 automatically inserts the content as an authentication code in the user interface.
[0201] In comparison to Figure 5O, Figure 5AB illustrates another embodiment of user interface 500 of Figure 5N after an electronic message has been received by device 100. In contrast to Figure 5O, message notification 561A is not displayed in response to receiving the electronic message. Furthermore, device 100 automatically inserts the content as an authentication code in authentication code field 532G without displaying or selecting insertion affordance 545 in response to determining that the electronic message includes content that meets the verification code format requirements.
[0202] In comparison to Figure 5O, Figure 5AC illustrates another embodiment of the user interface 500 of Figure 5N after an electronic message has been received by device 100. In response to receiving the electronic message, a message notification 561 F Message notification 561 is displayed. F includes text indicating the source of the electronic message (e.g., contact name "Gary") and preview text that previews the content of the electronic message. In contrast to FIG. 5O, the content of the electronic message does not include content that meets the respective criteria. Specifically, the content of the electronic message does not include content that meets the verification code format requirements. Therefore, message notification 561F does not include copy affordance 561C, but instead includes reply affordance 561E for composing a text message reply to the sender of the electronic message.
[0203] FIG. 5AC shows contact 550X at the location of verification code field 532G.
[0204] FIG. 5AD illustrates the user interface 500 of FIG. 5AC in response to detecting contact 550X at the location of the verification code field 532G. In response to detecting selection of the verification code field 532G, the content region 522 includes a cursor 533 displayed within the verification code field 532G. Additionally, the user interface 500 includes a soft keyboard 503A having a plurality of character insertion affordances that, when selected, writes a character into the selected field. The soft keyboard 503A includes a navigation region 541 and a text suggestion region 542 that includes a text suggestion affordance showing suggested text and, when selected, inserts the suggested text into the selected field. In FIG. 5AD, in contrast to FIG. 5Z, the message notification 561 of FIG. 5AC F Because the electronic message displayed in does not include a verification code, text suggestion area 542 does not include an insertion affordance 545 for inserting a verification code.
[0205] 6A shows an operating environment 600 including a first electronic device 610, a second electronic device 620, and a third electronic device 630. The first electronic device 610 corresponds to a portable electronic device such as the portable electronic device 100 of FIG. 1 or the device 300 of FIG. 3. The first electronic device 610 includes a display that provides a first user interface 612. The second electronic device 620 is a media playback device connected to a display device 621 that provides a second user interface 622. The third electronic device 630 is a remote control for the second electronic device 620. The third electronic device 630 includes a touch-sensitive input device 631 for generating user input that is sent to the second electronic device 620.
[0206] The second user interface 622 includes a number of affordances that, when selected, open an application or provide media content via the second user interface 622. In Figure 6A, an application affordance 623 of the multiple affordances is selected.
[0207] FIG. 6A shows contact 650A detected on touch-sensitive input device 631 while application affordance 623 is selected.
[0208] FIG. 6B shows the operating environment 600 of FIG. 6A in response to detecting contact 650A on touch-sensitive input device 631 while application affordance 623 is selected. In FIG. 6B, second user interface 622 includes a service's home screen including an image (of an apple), sign-up affordance 624A, and sign-in affordance 624B. Sign-up affordance 624A, when selected, allows a user to register for the service, e.g., create a user account, to access resources (e.g., content) protected by the user account's authentication credentials. Sign-in affordance 624B, when selected, allows a user to provide authentication credentials to access the service's resources. In FIG. 6B, sign-in affordance 624B is selected.
[0209] FIG. 6B shows contact 650B detected on touch-sensitive input device 631 while sign-in affordance 624B is selected.
[0210] Figure 6C shows the operating environment 600 of Figure 6B in response to detecting contact 650B on touch-sensitive input device 631 while sign-in affordance 624B is selected. In Figure 6C, second user interface 622 includes a sign-in screen for the service including an image (of an apple), username field 625A for receiving text input indicating a username associated with an existing user account, and password field 625B for receiving text input indicating a password associated with the user account. Second user interface 622 includes continue sign-in affordance 624C that, when selected, requests access to resources of the service based on the authentication credential input entered in fields 625A-625B.
[0211] In FIG. 6C, the second electronic device 620 sends an indication to the first electronic device 610 that the second electronic device 620 needs authentication credentials (eg, username and password) for the service.
[0212] 6D shows the first electronic device 610 in response to receiving an indication that the second electronic device 620 requires authentication credentials for a service. In FIG. 6D, the first user interface 612 includes the device bar 501 and the application launch user interface 507. The application launch user interface 507 includes a representation of multiple applications installed on the first electronic device 610 arranged in a grid. The first user interface 612 includes a share confirmation window 640 in front of the application launch user interface 507 (or any other user interface currently displayed).
[0213] The share confirmation window 640 includes text that describes an indication that the second electronic device 620 needs authentication credentials for the service. In various implementations, the text includes an indication of the service (e.g., "Apple Fun"). In various implementations, the text generally indicates that the second electronic device 620 needs authentication credentials for the service (e.g., "Johnny's Apple TV is asking for a password"). The share confirmation window 640 includes a share confirmation affordance 641 that, when selected, enables the sharing of credentials between the first electronic device 610 and the second electronic device 620, as described further below. The share confirmation window 640 includes a share cancel affordance 642 that, when selected, denies the sharing of credentials between the first electronic device 610 and the second electronic device 620.
[0214] In various embodiments, the share confirmation window 640 is displayed on the first electronic device 610 pursuant to a determination that the first electronic device 610 is within a predetermined proximity to the second electronic device 620. In various embodiments, the predetermined proximity is a distance to the closest device. In various embodiments, the predetermined proximity is a predetermined range. In various embodiments, the share confirmation window 640 is displayed on the first electronic device 610 pursuant to a determination that the first electronic device 610 is within a predetermined proximity to the third electronic device 630 associated with the second electronic device 620. In various embodiments, the predetermined proximity is a distance to the closest device. In various embodiments, the predetermined proximity is a predetermined range.
[0215] FIG. 6D shows contact 650C detected at the location of shared confirmation affordance 641.
[0216] FIG. 6E illustrates the operating environment 600 of FIG. 6C in response to detecting contact 650C at the location of shared confirmation affordance 641. In FIG. 6E, second user interface 622 displays confirmation information, e.g., an authorization code. In FIG. 6E, first user interface 612 displays a confirmation prompt that requires first electronic device 610 to input information from second electronic device 620 (e.g., confirmation information displayed by second electronic device 620) to proceed. Specifically, the confirmation prompt is for establishing a secure connection between first electronic device 610 and second electronic device 620. The confirmation prompt includes multiple numeric character affordances for inputting information from second electronic device 620 (e.g., confirmation information displayed by second electronic device 620). In various implementations, the confirmation prompt includes a soft keyboard, such as soft keyboard 503B, or other input user interface.
[0217] FIG. 6E shows contact 650D at the location of one of the number character affordances.
[0218] 6F shows the first electronic device 610 in response to detecting contact 650D at one of the plurality of numeric character affordances and other contacts corresponding to confirmation information from the second electronic device 620. The first user interface 612 includes the device bar 501 and a service selection user interface 508. The service selection user interface 508 includes a list of service affordances 661A-661G associated with a plurality of services, user accounts for those services, and authentication credentials for those user accounts. The service selection user interface 508 includes a search field 662 for receiving text input and searching a plurality of services based on the text input.
[0219] 6F, the list of service affordances 661A-661G is sorted based at least in part on the relevance of each service. Specifically, an indication that the second electronic device 620 needs authentication credentials for a service indicates that service, and the service is listed at the top of the list of service affordances 661A-661G.
[0220] FIG. 6F shows a contact 650E detected at the location of the first service affordance 661A in the list of service affordances 661A-661G.
[0221] Figure 6G shows the operating environment 600 of Figure 6E in response to detecting contact 650E at the location of the first service affordance 661A. In Figure 6G, in the second user interface 622, the username field 625A and password field 625B are pre-filled with the authentication credentials received from the first electronic device 610. Additionally, the sign-in affordance 624C is selected. In the first user interface 612, a share complete window 643 is displayed, including a notification that the authentication credentials have been shared with the second electronic device 620.
[0222] FIG. 6G shows contact 650F detected on touch-sensitive input device 631 while continue sign-in affordance 624C is selected.
[0223] Figure 6H shows the operating environment 600 of Figure 6G in response to detecting contact 650F on touch-sensitive input device 631 while continue sign-in affordance 624C is selected. In Figure 6H, second user interface 622 includes a content screen for the service.
[0224] 7A shows application launch user interface 707 as part of user interface 700 displayed by portable multifunction device 100 (hereinafter "device 100"). In addition to application launch user interface 507, user interface 700 includes device bar 701 at the top of the display that includes an identifying name for device 100 (e.g., "iPhone"), a wireless connection indicator, the current time, and a battery indicator showing the charge level of device 100.
[0225] User interface 700 includes an application launch user interface 707 below device bar 701 and across the remainder of the display. Application launch user interface 707 includes representations of multiple applications installed on device 100, including a settings representation 710. As shown in FIG. 7A , each representation includes an icon associated with the corresponding application and text describing the application (e.g., the application's name or function). Application launch user interface 707 causes device 100 to launch an individual application in response to detecting user input at a designated location in the representation of the individual application.
[0226] 7A shows an application launching user interface 707 in the form of a home screen, in various embodiments, the application launching user interface 707 is a taskbar or a file manager. Additionally, while FIG. 7A shows only a single page of the home screen, in various embodiments, the application launching user interface 707 includes multiple pages.
[0227] FIG. 7A shows a contact 750A detected at the location of the setting representation 710.
[0228] 7B illustrates the user interface 700 of FIG. 7A in response to detecting contact 750A at the settings representation 710. In response to detecting contact 750A at the settings representation 710, the application launch user interface 707 is replaced with a general settings user interface 704. The general settings user interface 704 includes multiple settings affordances 725A-F, including a connectivity management affordance 725A, a display management affordance 725B, a sound management affordance 725C, a storage management affordance 725D, a power management affordance 725E, and a password management affordance 725F. In various implementations, the general settings user interface 704 can include additional, fewer, or other settings affordances.
[0229] FIG. 7B shows contact 750B detected at password management affordance 725F.
[0230] FIG. 7C illustrates the user interface 700 of FIG. 7B in response to detecting contact 750B at a password management affordance 725F. In response to detecting contact 750B at a password management affordance 725F, the general settings user interface 704 is replaced with a password management user interface 703. The password management user interface 703 includes a password list affordance 726A that, when selected, displays a list of user accounts each with associated authentication credentials. The password management user interface 703 includes a list of account affordances 726B-726D that, when selected, provide information and configurable settings for each user account in the list of user accounts. The password management user interface 703 includes an add account affordance 726E that, when selected, allows a user to add a user account to the list of user accounts. The password management user interface 703 includes a fetch settings affordance 726F that, when selected, allows a user to select a fetch setting for fetching data from the user accounts.
[0231] FIG. 7C shows contact 750C at the location of password restore affordance 726A.
[0232] 7D shows user interface 700 in response to detecting contact 750C at password list affordance 726A. In FIG. 7D, password management user interface 703 has been replaced with password list user interface 708. Password list user interface 708 includes a list of user account affordances 727A-727G, each associated with multiple user accounts and associated with a respective number of services and authentication credentials for those user accounts. Some of user account affordances 727A, 727C, 727G include alert markers 781 that indicate that the password associated with the respective user account is the same as a password associated with one or more other user accounts.
[0233] In various embodiments, a toggle affordance is provided that allows a user to toggle the display of alert marker 781. Additionally, in some embodiments, alert marker 781 is not shown in any of the user account affordances when two user accounts are determined to be related and share authentication credentials, even if the two user accounts have the same password. For example, if facespace.com and hotels4less.com are related, e.g., owned by the same entity and / or known to use the same authentication credentials, alert marker 781 is not shown in any of the user account affordances 727E-727F.
[0234] The password list user interface 708 includes a search field 729 for receiving text input and searching multiple user accounts based on the text input. The password list user interface 708 includes a return affordance 728A for returning to the password management user interface 703.
[0235] FIG. 7D shows contact 750D detected at the location of fourth user account affordance 727D.
[0236] 7E shows the user interface 700 in response to detecting a contact at the location of the fourth user account affordance 727D. In FIG. 7E, the password list user interface 708 is replaced with a password details user interface 709A for the first user account for the first service. The password details user interface 709A includes a username affordance 730A including text indicating a username associated with the first user account for the first service and a password affordance 730B including text indicating a password associated with the first user account. The password details user interface 709A includes text indicating a website 731A associated with the first service. The password details user interface 709A includes a return affordance 728B for returning to the password list user interface 708.
[0237] 7F shows lock screen user interface 705 as part of user interface 700 displayed by portable multifunction device 100 (hereinafter "device 100"). In addition to lock screen user interface 705, user interface 700 includes a device bar 701 at the top of the display that includes an identifying name for device 100 (e.g., "iPhone"), a wireless connection indicator, the current time, and a battery indicator showing the charge level of device 100. In various implementations, lock screen user interface 705 is displayed while device 100 is in a locked state.
[0238] FIG. 7F shows a contact 750E detected moving upward from a position near the bottom of the display.
[0239] FIG. 7G shows user interface 700 of FIG. 7F in response to detecting contact 750E moving upward from a location near the bottom of the display. In FIG. 7G, an authenticating window 741 is displayed indicating that an authentication process is being performed to authenticate the user. In various implementations, the authentication process includes receiving authentication information and authenticating the user based on the authentication information. In various implementations, the authentication information is a user biometric, such as one or more facial features or a fingerprint. Thus, in various implementations, the authentication information is received via a camera (e.g., a depth camera) or a fingerprint sensor. In various implementations, the authentication information is a passcode or password provided by the user. Thus, in various implementations, the authentication information is received and provided via the touch-sensitive surface.
[0240] 7H shows the user interface 700 of FIG. 7G in response to authenticating the user. In FIG. 7H, the authenticating window 741 has been replaced with an authenticated window 742.
[0241] 7I shows the user interface 700 of FIG. 7H after unlocking the device in response to authenticating the user (e.g., after placing the device 100 in an unlocked state). In FIG. 7I, the lock screen user interface 705 has been replaced with an application launch user interface 707.
[0242] 7I shows spoken request 751A detected by device 100. In various embodiments, spoken request 751A is displayed as part of user interface 700. In various embodiments, spoken request 751A is not displayed. In FIG. 7I, spoken request 751A is a spoken request to display password information for a first user account.
[0243] FIG. 7J illustrates the user interface 700 of FIG. 7I in response to detecting a verbal request 751A to display password information for a first user account. In FIG. 7J, an authenticating window 741 is displayed, indicating that an authentication process is being performed to authenticate the user. Thus, in various embodiments, even if device 100 is in an unlocked state, the authentication process is performed before the password information is displayed. As described above, in various embodiments, the authentication process includes receiving authentication information and authenticating the user based on the authentication information. In various embodiments, authentication information suitable for unlocking the device (e.g., a passcode) may be inappropriate for displaying password information, which may require, for example, more secure authentication information (e.g., a user biometric). However, in various embodiments, authentication information suitable for displaying password information includes a passcode (e.g., if biometric authentication fails or is not configured).
[0244] 7K shows the user interface 700 of FIG. 7J in response to authenticating the user. In FIG. 7K, the authenticating window 741 has been replaced with an authenticated window 742.
[0245] Figure 7L shows the user interface 700 of Figure 7K in response to authenticating the user and responding to the verbal request 751 A. In Figure 7L, the application launch user interface 705 has been replaced with a password details user interface 709A.
[0246] FIG. 7L shows contact 750F detected at the location of password affordance 730B.
[0247] 7M illustrates the user interface 700 of FIG. 7L in response to detecting contact 750F at password affordance 730B. In response to detecting contact 750F at password affordance 730B, user interface 700 includes a copy affordance 732A that, when selected, stores the password associated with the first user account in a cache (e.g., copies the password to a clipboard) and a share affordance 732B that, when selected, initiates a process for sharing the password (and / or other authentication credentials) associated with the first user account.
[0248] FIG. 7M shows contact 750G detected at the location of shared affordance 732B.
[0249] 7N illustrates the user interface 700 of FIG. 7M in response to detecting contact 750G at the location of share affordance 732B. In FIG. 7N, the user interface 700 includes a recipient selection card 733 that includes multiple recipient affordances 734A-734C that, when selected, initiate a process for sharing a password (and / or other authentication credentials) associated with the first user account with the respective recipient. In various embodiments, the recipient selection card 733 includes recipient affordances for nearby devices. In various embodiments, the recipient selection card 733 includes recipient affordances for contacts stored by the device 100.
[0250] In various embodiments, device 100 displays verification information (e.g., text and / or visual patterns) that must be entered into device 100 (e.g., via a keyboard or, for visual patterns, a camera) before a password (and / or other authentication credential) is shared with the recipient device. In various embodiments, the recipient device displays verification information (e.g., text and / or visual patterns) that must be entered into device 100 (e.g., via a keyboard or, for visual patterns, a camera) before a password (and / or other authentication credential) is shared with the recipient device. Examples of requiring verification information from one device to be entered into another device are described above with reference to FIGS. 6A-6H.
[0251] In comparison to Figure 7I, Figure 7O illustrates another embodiment of the user interface 700 of Figure 7H after unlocking the device in response to authenticating the user (e.g., after placing the device 100 in an unlocked state). In Figure 7O, the lock screen user interface 705 has been replaced with an application launch user interface 707.
[0252] 7O shows spoken request 751B detected by device 100. In various embodiments, spoken request 751B is displayed as part of user interface 700. In various embodiments, spoken request 751B is not displayed. In FIG. 7O, spoken request 751B is a spoken request to display password information for a second user account.
[0253] FIG. 7P shows the user interface 700 of FIG. 7O in response to authenticating the user and responding to the verbal request 751B. In FIG. 7P, the application launch user interface 705 is replaced with a password details user interface 709B for a second user account for a second service. The password details user interface 709B includes a username affordance 730C including text indicating a username associated with the second user account for the second service and a password affordance 730D including text indicating a password associated with the second user account. The password details user interface 709B includes text indicating a website 731B associated with the second service. The password details user interface 709B includes a return affordance 728B for returning to the password list user interface 708.
[0254] Password details user interface 709B includes an alert 735 indicating that the password associated with the second user account is the same as a password associated with one or more other accounts. Alert 735 includes a change password affordance 736 that, when selected, displays a resource, e.g., a web page or application, for changing the password for the second account. In various embodiments, change password affordance 736 links to a general web page / application, while in various embodiments, change password affordance 736 links to a change password user interface for the web page / application. In some embodiments, multiple services place their change password user interfaces under a commonly named path, e.g., ".well-known / change-password," and link change password affordance 736 to this path.
[0255] FIG. 7P shows contact 750H detected at the location of password change affordance 736.
[0256] 7Q shows the user interface 700 of FIG. 7P in response to detecting contact 750H at the location of password change affordance 736. In FIG. 7Q, password details user interface 709B has been replaced with a web browser user interface 702 that includes a user interface for changing the password for the second user account.
[0257] In comparison to Figure 7I, Figure 7R illustrates another embodiment of the user interface 700 of Figure 7H after unlocking the device (e.g., placing device 100 in an unlocked state) in response to user authentication. In Figure 7R, lock screen user interface 705 has been replaced with an application launch user interface 707.
[0258] 7R shows spoken request 751C detected by device 100. In various embodiments, spoken request 751C is displayed as part of user interface 700. In various embodiments, spoken request 751C is not displayed. In FIG. 7R, spoken request 751C is a spoken request to display general password information.
[0259] Figure 7S shows the user interface 700 of Figure 7O in response to authenticating the user and responding to verbal request 751C. In Figure 7S, application launch user interface 707 has been replaced with password list user interface 708 (as described in detail above with respect to Figure 7D).
[0260] In comparison to Figure 7I, Figure 7T illustrates another embodiment of the user interface 700 of Figure 7H after unlocking the device (e.g., placing device 100 in an unlocked state) in response to user authentication. In Figure 7T, lock screen user interface 705 has been replaced with an application launch user interface 707.
[0261] 7T shows spoken request 751D detected by device 100. In various embodiments, spoken request 751D is displayed as part of user interface 700. In various embodiments, spoken request 751D is not displayed. In FIG. 7T, spoken request 751D is a spoken request to display password information for a third user account.
[0262] FIG. 7U shows the user interface 700 of FIG. 7T in response to authenticating the user and responding to verbal request 751D. Because the third user account is not one of the user accounts in the list of user accounts 727A-727G, the application launch user interface 707 is replaced with the password list user interface 708 (as described above with respect to FIG. 7D) rather than the password details user interfaces 709A-709B. However, in FIG. 7U, the search field 729 is pre-populated based on the verbal request, and the list of user accounts 727A-727G is sorted based on the pre-population of the search field 729. In some embodiments, the list of user accounts is filtered based on the pre-population of the search field 729 so that user accounts that do not match the pre-population of the search field 729 are not displayed.
[0263] In comparison to FIG. 7F, FIG. 7V illustrates lock screen user interface 705 as part of user interface 700 displayed by portable multifunction device 100 (hereinafter "device 100").
[0264] 7V shows spoken request 751E detected by device 100. In various embodiments, spoken request 751E is displayed as part of user interface 700. In various embodiments, spoken request 751E is not displayed. In FIG. 7V, spoken request 751D is a spoken request to display password information for a first user account.
[0265] 7W illustrates the user interface of FIG. 7V in response to detecting a verbal request to display password information for the first user account. In FIG. 7W, an authenticating window 741 is displayed, indicating that an authentication process is being performed to authenticate the user.
[0266] Figure 7X shows the user interface 700 of Figure 7W in response to authenticating the user. In Figure 7X, the authenticating window 741 has been replaced with an authenticated window 742.
[0267] 7Y shows the user interface 700 of FIG. 7X after unlocking the device (e.g., placing the device 100 in an unlocked state) in response to authenticating the user and in response to a verbal request 751E. In FIG. 7Y, the lock screen user interface 705 has been replaced with a password details user interface 709A.
[0268] 8A-8C show a flow diagram of a method 800 for generating a new password for a user account, according to some embodiments. Method 800 is performed on an electronic device having a display device and one or more input devices (e.g., portable multifunction device 100 of FIG. 1A or device 300 of FIG. 3). In some embodiments, the display device is a touchscreen display, and one or more of the input devices are on or integrated into the display device. In some embodiments, the display device is separate from the one or more input devices. Some operations of method 800 are optionally combined, and / or the order of some operations is optionally changed.
[0269] As described below, method 800 provides an intuitive way to generate a new password for a user account. Method 800 reduces the cognitive burden on a user when generating a new password for a user account, thereby creating a more efficient human-machine interface. For battery-operated electronic devices, allowing a user to generate a new password for a user account faster and more efficiently conserves power and extends the time between battery charges.
[0270] The device displays 802 a user interface on a display device that includes a new password field. In various embodiments, the user interface includes an electronic form that includes multiple fields. For example, in FIG. 5B, device 100 displays web browser user interface 502 that includes new password field 532C.
[0271] The device detects (804) user input corresponding to selection of the new password field via one or more input devices. In various implementations, the user input includes contact at the location of the new password field, clicking while the cursor is in the location of the new password field, tabbing to the new password field, or selecting the next affordance while a field ordered before the new password field is selected. For example, in FIG. 5F , device 100 detects contact 550F at the location of new password field 532C. As another example, referring to FIG. 5F , the user input corresponding to selection of the new password field can include contact at the location of the next affordance in navigation region 541.
[0272] In some embodiments, detecting user input corresponding to selection of a new password field includes determining that the selected field is a new password field (806) based on one or more of the number of fields in the user interface or text associated with the user interface. For example, in FIG. 5F , device 100 classifies the field selected by contact 550F as a new password field based on the presence of the text "password" next to the selected field, the text "register" in address bar 521, the number of fields 532A-532D being greater than two, and / or the number of fields having the text "password" next to the field being greater than one. By determining that the selected field is a new password field (rather than a field of a different type), the user interface provides different options depending on the detection of a field of a different type, thus providing an efficient mechanism for the user to perform various different actions, thereby reducing the amount of user interaction to perform various actions. Reducing user interaction reduces wear and tear on the device. Reducing user interaction also results in faster execution of various operations, thus reducing power consumption for performing various operations and extending the device's battery life.
[0273] In response to detecting user input corresponding to the selection in the new password field (808), the device displays (810) a representation of the new automatically-generated password in the new password field on the display device. Automatically generating a new password for the user account provides an efficient mechanism for a user to generate a new password for the user account, thereby reducing the amount of user interaction required to generate the new password for the user account. Reduced user interaction reduces wear and tear on the device. Reduced user interaction also results in faster generation of the new password for the user account, thus reducing power consumption for generating the new password for the user account and extending the battery life of the device. Furthermore, automatically generating a new password for the user account provides a unique, strong, and / or secure password for the user account, increasing security for the user account.
[0274] In some embodiments, the device displays (812) the new automatically generated password. For example, in FIG. 5G1 , device 100 displays the new automatically generated password in new password field 532G. Displaying the new password provides a sense of security to the user, increases the likelihood that the user will accept the new password, and reduces user interaction to generate a different new password. Reducing user interaction reduces wear on the device, reduces power consumption, and extends the device's battery life.
[0275] In some embodiments, the device displays (814) a generic password indicator. For example, in FIG. 5G2, device 100 displays a series of asterisks (or bullets) in new password field 532C. Displaying a generic password indicator (rather than a new password) reduces user confusion during user account registration, particularly during password generation, and reduces user interaction during registration. Reducing user interaction reduces wear and tear on the device, reduces power consumption, and extends the device's battery life.
[0276] In some embodiments, the device displays a portion of the new auto-generated password and indicates that a portion of the new auto-generated password is not being displayed (816). For example, in FIG. 5G3, device 100 indicates a portion of the new auto-generated password and that a portion of the new auto-generated password is not being displayed, e.g., indicating that the new auto-generated password has faded and become less visible along its length. Displaying a portion of the new password provides the benefits of both of the above embodiments, providing a sense of security to the user while reducing user confusion, thereby reducing user interaction with the device. Reducing user interaction reduces wear and tear on the device, reduces power consumption, and extends the device's battery life.
[0277] In some embodiments, a new automatically-generated password is generated (818) based on one or more password generation constraints of the user interface. For example, in FIG. 5G1 , the new automatically-generated password includes an uppercase letter (e.g., Y), a lowercase letter (e.g., v), a number (e.g., 2), a special character (e.g., %), and at least a threshold number of characters. Automatically generating a password based on the password generation constraints of the user interface increases the likelihood that the user will accept the password, reduces the probability that the password will be rejected by the service, and ultimately reduces the amount of user interaction with the device. Reducing user interaction reduces wear and tear on the device, reduces power consumption, and extends the device's battery life. Furthermore, adhering to the password generation constraints of the user interface increases the strength of the password, providing increased security for the user account.
[0278] Additionally, in response to detecting user input corresponding to selecting the new password field (808), the device displays (820) on the display device an affordance for accepting the new auto-generated password and an affordance for declining to use the new auto-generated password. For example, in FIG. 5G3, device 100 displays acceptance affordance 543A and decline affordance 543B. Displaying an affordance for accepting the new password (and a representation of the new password) in response to detecting user input corresponding to selecting the new password field (e.g., as opposed to user input that requires the device to provide a new auto-generated password) increases the likelihood that the user will accept the new password and reduces user interaction to generate the new password. Thus, the security of the user account is increased, and the reduced user interaction reduces wear on the device, reduces power consumption, and extends the device's battery life.
[0279] In some embodiments, the device displays 822 a new password user interface that includes an affordance for accepting the new auto-generated password and an affordance for declining to use the new auto-generated password. For example, in FIG. 5G3, device 100 displays new password user interface 503C that includes acceptance affordance 543A and decline affordance 543B.
[0280] In some embodiments, the device displays (824) the new password user interface without displaying multiple character insertion affordances displayed within the soft keyboard. For example, in FIG. 5G3, device 100 displays new password user interface 503C but does not display soft keyboard 503A of FIG. 5C (or numeric soft keyboard 503B of FIG. 5E). By excluding the display of the soft keyboard, the user is more likely to accept the new password, resulting in improved security and reduced user interaction with the device. Furthermore, by excluding the display of the soft keyboard, less space is used on the screen, and therefore the same usability can be provided on smaller (and less expensive) screens.
[0281] In some embodiments, the device detects (826) user input corresponding to selection of a user identifier field via one or more input devices. In various implementations, the user identifier field includes a username field, an email address field, a phone number field, etc. For example, in FIG. 5B , device 100 detects contact 550B at username field 532A. As another example, in FIG. 5D , device 100 detects contact 550D at phone number field 532B. In some embodiments, in response to detecting user input corresponding to selection of a user identifier field, the device displays (828) a soft keyboard including multiple character insertion affordances on a display device. For example, in FIG. 5C , in response to detecting contact 550B at username field 532A, device 100 displays soft keyboard 503A. As another example, in FIG. 5E , in response to detecting contact 550D at phone number field 532B, device 100 displays numeric soft keyboard 503B. Providing different user interfaces in response to detecting different types of fields provides an efficient mechanism for a user to perform a variety of different actions, thus reducing the amount of user interaction required to perform the various actions, which reduces wear and tear on the device and extends the device's battery life.
[0282] In some embodiments, the new password user interface includes a description of the new auto-generated password and instructions for retrieving the new auto-generated password (830). For example, in FIG. 5G3, new password user interface 503C includes text 544 including a description of the new auto-generated password and instructions for retrieving the new auto-generated password. Specifically, text 544 indicates that the new auto-generated password was auto-generated and meets password strength requirements. Text 544 indicates that the new auto-generated password is stored by device 100 and can be accessed by the user, for example, via a verbal request. Including a description of the new password and instructions for retrieval increases the likelihood that the user will accept the new password and reduces user interaction to generate the new password. Thus, the security of the user account is increased, and reduced user interaction reduces wear on the device, reduces power consumption, and extends the device's battery life.
[0283] In some embodiments, the device displays (832) a second affordance for declining to use the new auto-generated password, separate from the new password user interface. For example, in FIG. 5G3, device 100 displays a secondary decline affordance 543BB for declining to use the new auto-generated password, separate from the new password user interface, specifically next to a representation of the new auto-generated password in new password field 532C. Displaying a second affordance for declining to use the new password results in a more efficient human-machine interface because the user can more easily find the mechanism for declining to use the new password. For battery-operated electronic devices, a more efficient human-machine user interface conserves power and extends the time between battery charges. Furthermore, a more efficient human-machine user interface reduces the amount of user interaction with the device, reducing wear and tear on the device.
[0284] In some embodiments, the device detects (834) user input via one or more input devices corresponding to selection of an affordance for accepting the new auto-generated password. For example, in FIG. 5I , device 100 detects contact 550H at the location of acceptance affordance 543A. In some embodiments, in response to detecting user input corresponding to selection of an affordance for accepting the new auto-generated password, the device stops displaying (836) the affordance for accepting the new auto-generated password and the affordance for declining to use the new auto-generated password. For example, in FIG. 5J , in response to detecting contact 550H at the location of acceptance affordance 543A, the device stops displaying new password user interface 503C, which includes acceptance affordance 543A and decline affordance 543B.
[0285] In some embodiments, the device detects (838) user input via one or more input devices corresponding to selection of an affordance for rejecting using the new auto-generated password. For example, in FIG. 5G3, device 100 detects contact 550G at the location of rejection affordance 543B. In some embodiments, in response to detecting user input corresponding to selection of an affordance for accepting the new auto-generated password, device replaces (840) the affordance for accepting the new auto-generated password and the affordance for rejecting using the new auto-generated password with a soft keyboard including multiple character insertion affordances. For example, in FIG. 5H, in response to detecting contact 550G at the location of rejection affordance 543B, device 100 replaces new password user interface 503C, including acceptance affordance 543A and rejection affordance 543B, with soft keyboard 503B. Replacing the new password user interface with a soft keyboard provides an efficient mechanism for a user to generate a new password, thereby reducing the amount of user interaction for generating a new password. Reduced user interaction reduces wear and tear on the device. The reduction in user interaction also results in faster generation of new passwords, thus reducing power consumption for performing storage management operations and extending the device's battery life.
[0286] It should be understood that the particular order described of the operations in FIGS. 8A-8C is merely an example, and that the described order is not intended to indicate the only order in which the operations can be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. Furthermore, it should be noted that other process details described herein with respect to other methods described herein (e.g., methods 900, 1000, and 1100) are also applicable in a similar manner to method 800 described above with respect to FIGS. 8A-8C. For example, the user interface (including fields, affordances, and responses thereof), user input, password representation, and authentication credentials described above with reference to method 800 optionally have one or more of the user interface characteristics (including fields, affordances, and responses thereof), user input, password representation, and authentication credentials described herein with reference to other methods described herein (e.g., methods 900, 1000, and 1100). For the sake of brevity, those details will not be repeated here.
[0287] 9A-9D show a flow diagram of a method 900 for writing a verification code to a user interface, according to some embodiments. Method 900 is performed on an electronic device (e.g., portable multifunction device 100 of FIG. 1A or device 300 of FIG. 3) having a display device and one or more input devices. In some embodiments, the display device is a touchscreen display, and one or more of the input devices are on or integrated into the display device. In some embodiments, the display device is separate from the one or more input devices. Some operations of method 900 are optionally combined, and / or the order of some operations is optionally changed.
[0288] As described below, method 900 provides an intuitive way to write a verification code into a user interface. Method 900 reduces the cognitive burden on a user when writing a verification code into a user interface, thereby creating a more efficient human-machine interface. For battery-operated electronic devices, allowing a user to write a verification code into a user interface faster and more efficiently conserves power and extends the time between battery charges.
[0289] The device receives (902) a request to access a resource protected by a verification code via one or more input devices. In various implementations, the authentication code is a single-use or on-demand code sent via an authorized communication channel, such as via text or email. In various implementations, the request includes selecting a login affordance or selecting a request code affordance. For example, in FIG. 5M, device 100 detects contact 550L at the location of continue sign-in affordance 531E.
[0290] After receiving the request to access the resource, the device receives (904) an electronic message at the electronic device. In various embodiments, the electronic message is an SMS text message, an email, or a chat message. For example, in FIG. 5O, device 100 displays message notification 561A indicating that a text message has been received. However, in various implementations described below, the device receives the electronic message without displaying a message notification.
[0291] In some embodiments, in response to receiving the electronic message, the device displays a message notification on a display device (906). For example, in FIG. 5O, in response to receiving the electronic message, device 100 displays message notification 561A. In some embodiments, the message notification includes a copy affordance that, when selected, copies the content to a clipboard (908). For example, in FIG. 5U2, device 100 displays message notification 561A with copy affordance 561C. The copy affordance provides an efficient mechanism for a user to write a verification code without manually writing each character of the verification code, reducing user interaction with the device. Reduced user interaction reduces wear and tear on the device. Reduced user interaction also results in faster writing of the verification code, thus reducing power consumption for writing the verification code and extending the device's battery life.
[0292] In some embodiments, the device detects (910) user input corresponding to a selection of a message notification via one or more inputs. For example, in FIG. 5O, device 100 detects contact 550M at the location of message notification 561A. In some embodiments, in response to detecting user input corresponding to a selection of a message notification, the device displays (912) on a display device an electronic message with content that matches a predetermined format highlighted (as described further below with respect to block 916). For example, in FIG. 5P, device 100 displays message window 564 including the content of the electronic message received from the source with highlighting (e.g., underlining) of the content that matches a predetermined format (e.g., verification code "03201981"). Displaying an electronic message in response to detecting a selection of a message notification provides a more efficient human-machine interface (because the user does not need to access an application launch user interface to launch an application that displays the electronic message). Furthermore, displaying the electronic message with content that matches a predetermined format highlights the content that matches the predetermined format, guiding the user to quickly find the verification code and providing a more efficient human-machine interface. For battery-operated electronic devices, a more efficient human-machine user interface conserves power and extends the time between battery charges. Additionally, a more efficient human-machine user interface reduces the amount of user interaction with the device, reducing wear and tear on the device.
[0293] In some embodiments, in response to receiving the electronic message, device 100 displays a message notification 561 on a display device in response to a determination that the electronic message does not contain content that meets the respective criteria (as described further below with respect to block 916), and withholds (or suppresses) the display of the message notification in response to a determination that the electronic message does contain content that meets the respective criteria. For example, in FIG. 5AC , in response to a determination that the received text message does not contain a verification code, device 100 displays message notification 561 F 5AB, however, in accordance with determining that the received text message includes a verification code, device 100 forgoes displaying a message notification. Forgoing displaying a message notification simplifies the process of writing the verification code, reduces the likelihood that a user will launch the application in which the electronic message was received, and increases the likelihood that a user will write the verification code using the insertion affordance. This reduces user interaction with the device, reduces wear, and extends battery life.
[0294] After receiving the electronic message, while displaying a user interface for entering a verification code on the display device, in accordance with a determination that the electronic message includes content that meets respective criteria, including a format requirement that the electronic message include content that matches a predetermined format, the device displays an insertion affordance on the display device that, when selected, automatically inserts the content that matches the predetermined format into the user interface as a verification code (916). For example, in FIG. 5Z, after receiving the text message that prompted the display of message notification 561A in FIG. 5Y, while displaying web browser user interface 502 that includes verification code field 532G, in accordance with a determination that the text message includes a verification code, device 100 displays insertion affordance 545 that, when selected, inserts the verification code into verification code field 532G. The insertion affordance provides an efficient mechanism for the user to write the verification code, thus reducing the amount of user interaction for writing the verification code. Reducing user interaction reduces wear on the device. Reducing user interaction also results in faster initiation of execution of storage management operations, thus reducing power consumption for executing storage management operations and extending the device's battery life.
[0295] In some embodiments, each criterion includes a timing requirement that the user interface for entering the verification code be displayed within a predetermined period of time from when the message is received (918). For example, in FIG. 5Z, device 100 displays insert affordance 545 pursuant to determining that verification code field 532G is selected within three minutes of receiving the text message that prompted the display of message notification 561A in FIG. 5Y. Displaying the insert affordance for a limited time increases the likelihood that a user will select the insert affordance, reduces the likelihood that the insert affordance will be displayed when the user is unlikely to select it, and saves screen space. Using less screen space allows the same usability to be provided on smaller (and less expensive) screens.
[0296] In some embodiments, each criterion includes a characteristic requirement that the user interface for entering a verification code include a text input field having predetermined characteristics (920). For example, in FIG. 5Z, device 100 displays insert affordance 545 pursuant to a determination that web browser user interface 502 includes verification code field 532G. In some embodiments, each criterion includes a selection requirement that a text input field having predetermined characteristics is selected (922). For example, in FIG. 5Z, device 100 displays insert affordance 545 pursuant to a determination that verification code field 532G is selected (e.g., by detecting contact 550V of FIG. 5Y). Displaying the insert affordance when the verification code field is selected increases the likelihood that a user will select the insert affordance and reduces the likelihood that the insert affordance will be displayed when the user is unlikely to select it, saving space on the screen. Using less space on the screen allows the same usability to be provided with a smaller (and less expensive) screen.
[0297] In some embodiments, the predetermined format is based on the text of the electronic message (924). For example, in FIG. 5Z, device 100 displays insert affordance 545 pursuant to detecting the text "code" in the text message that prompted the display of message notification 561A of FIG. 5Y. In some embodiments, the predetermined format is based on content including a string of characters meeting predetermined character criteria (926). For example, in FIG. 5Z, device 100 displays insert affordance 545 pursuant to detecting a string of characters including a series of eight numbers ("03201981").
[0298] In some embodiments, the insert affordance is displayed along with a soft keyboard that includes multiple character insertion affordances (928). For example, in FIG. 5Z, device 100 displays insert affordance 545 as part of numeric soft keyboard 503B above the multiple character insertion affordances. In some embodiments, the insert affordance is displayed within a text suggestion area (930). For example, in FIG. 5Z, device 100 displays insert affordance 545 within the text suggestion area of numeric soft keyboard 503B. In various implementations, the text suggestion area is above the soft keyboard, located on a Touch Bar, or within a pop-up menu. Displaying the insert affordance along with the soft keyboard provides a more efficient human-machine interface by offering the user different options (e.g., using the insert affordance or typing a verification code using the soft keyboard) without additional user interaction to access the different options. Reducing the amount of user interaction with the device reduces wear on the device and extends the device's battery life.
[0299] In some embodiments, the insertion affordance includes an indication of the application from which the electronic message was received (932). For example, in FIG. 5Z, insertion affordance 545 includes an indication that the verification code was received from a text messaging application. In some embodiments, the insertion affordance includes an indication of the sender of the electronic message (934). For example, in FIG. 5Z, insertion affordance 545 includes an indication that the verification code was received from the phone number "987-66." Including an indication of the application and / or sender of the electronic message increases the likelihood that a user will select the insertion affordance to effectively write the verification code and reduces user interaction with the device to otherwise write the verification code. Reducing the amount of user interaction with the device reduces wear on the device and extends the device's battery life.
[0300] In some embodiments, after receiving the electronic message, while displaying a user interface on the display device for entering a verification code, the device refrains from displaying (936) an insertion affordance in accordance with a determination that the electronic message does not contain content that meets the respective criteria. For example, in FIG. 5AD, message notification 561 in FIG. 5AC F After receiving a text message prompting the display of the confirmation code field 532G, while displaying web browser user interface 502 including confirmation code field 532G, device 100 does not display insertion affordance 545 in accordance with a determination that the text message does not include the confirmation code. In some embodiments, in accordance with a determination that the electronic message does not include content meeting the respective criteria, the device displays (938) on the display device one or more alternative insertion affordances that, when selected, automatically enter the respective words into the user interface. For example, in FIG. 5AD, device 100 displays an alternative insertion affordance in text suggestion region 542.
[0301] In some embodiments, the device detects user input corresponding to selection of the insertion affordance via one or more input devices (940). For example, in FIG. 5Z, device 100 detects contact 550W at the location of insertion affordance 545. In some embodiments, in response to detecting user input corresponding to selection of the insertion affordance, the device automatically inserts content consistent with a predetermined format as a verification code into the user interface (942). For example, in FIG. 5AA, device 100 inserts verification code "03201981" into verification code field 532G. Automatically inserting the verification code into the user interface provides an efficient human-machine interface for writing the verification code. For battery-operated electronic devices, a more efficient human-machine user interface conserves power and extends the time between battery charges. Furthermore, a more efficient human-machine user interface reduces the amount of user interaction with the device, reducing wear and tear on the device.
[0302] In some embodiments, in response to determining that the electronic message contains content that meets the respective criteria, the device automatically inserts (944) content that matches the predetermined format as a verification code within the user interface. For example, in FIG. 5AB, in response to receiving the text message, in response to receiving the prompt for message notification 561A of FIG. Y, device 100 automatically writes the verification code "03201981" into verification code field 532G. Automatically writing the verification code within the user interface provides an efficient human-machine interface for writing the verification code. For battery-operated electronic devices, a more efficient human-machine user interface conserves power and extends the time between battery charges. Furthermore, a more efficient human-machine user interface reduces the amount of user interaction with the device, reducing wear and tear on the device.
[0303] It should be understood that the particular order described for the operations in Figures 9A-9D is merely an example, and that the described order is not intended to indicate the only order in which the operations can be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. Furthermore, it should be noted that other process details described herein with respect to other methods described herein (e.g., methods 800, 1000, and 1100) are also applicable in a similar manner to method 900 described above with respect to Figures 9A-9D. For example, the user interface (including fields, affordances, and responses thereof), user inputs, notifications, and criteria described above with reference to method 900 optionally have one or more of the user interface characteristics (including fields, affordances, and responses thereof), user inputs, notifications, and criteria described herein with reference to other methods described herein (e.g., methods 800, 1000, and 1100). For the sake of brevity, those details will not be repeated here.
[0304] 10A-10C show a flow diagram of a method 1000 for sharing authentication credentials, according to some embodiments. Method 1000 is performed on a first electronic device (e.g., portable multifunction device 100 of FIG. 1A or device 300 of FIG. 3) having a display device and one or more input devices. In some embodiments, the display device is a touchscreen display, and one or more of the input devices are on or integrated into the display device. In some embodiments, the display device is separate from the one or more input devices. Some operations of method 1000 are optionally combined, and / or the order of some operations is optionally changed.
[0305] As described below, method 1000 provides an intuitive way to share authentication credentials. Method 1000 reduces the cognitive burden on users when sharing authentication credentials, thereby creating a more efficient human-machine interface. For battery-operated electronic devices, allowing users to share authentication credentials faster and more efficiently conserves power and extends the time between battery charges.
[0306] The first electronic device receives an indication at the first electronic device that the second electronic device requires authentication credentials for the service 1002. For example, in FIG. 6D , the first electronic device 610 displays a share confirmation window 640 in response to receiving the indication that the second electronic device 620 requires authentication credentials for the service.
[0307] In response to receiving an indication that the second electronic device requires authentication credentials for the service, and following a determination that the first electronic device satisfies the respective criteria, including a requirement that the first electronic device be within a predetermined proximity to the second electronic device, the first electronic device displays a confirmation prompt on a display device that requires input of confirmatory information from the second electronic device on the first electronic device to proceed so that the respective criteria are satisfied (1004). For example, in FIG. 6E , the first electronic device 610 displays a first user interface 612 on the first electronic device 610 that includes a confirmation prompt that requires input of information from the second electronic device 620 (e.g., confirmatory information displayed by the second electronic device 620) to proceed.
[0308] In some embodiments, in accordance with a determination that the first electronic device does not meet the respective criteria, the first electronic device refrains from displaying the confirmation prompt (1006). For example, in FIG. 6E, a third electronic device that does not meet the respective criteria refrains from displaying the confirmation prompt. Withholding the display of the confirmation prompt on user devices that are not in proximity to the second electronic device provides a more efficient human-machine interface, reduces the amount of user interaction to dismiss the confirmation prompt, and uses less screen space for unnecessary information. For battery-operated electronic devices, a more efficient human-machine user interface conserves power and extends the time between battery charges. Furthermore, a more efficient human-machine user interface reduces the amount of user interaction with the device and reduces wear and tear on the device. By using less space on the screen, the same usability can be provided with a smaller (and less expensive) screen.
[0309] In some embodiments, each criterion includes a requirement that the first electronic device be in proximity to a third electronic device associated with the second electronic device (1008). In some embodiments, the second electronic device is a media playback device and the third electronic device is a remote control for the second electronic device (1010). For example, in FIG. 6E, the first electronic device 610 displays a confirmation prompt according to its proximity to the third electronic device 630.
[0310] In some embodiments, the first electronic device displays (1012) on a display device a share confirmation notification including a share confirmation affordance that, when selected, causes a confirmation prompt to appear and detects user input via one or more input devices corresponding to selection of the share confirmation affordance. For example, in FIG. 6E , the first electronic device 610 displays a share confirmation window 640 including a share confirmation affordance 641 and detects contact 650C at the location of the share confirmation affordance 641. The share confirmation window reduces the likelihood of authentication credentials being accidentally shared, thus increasing the security of the user account.
[0311] In some embodiments, the confirmation information from the second electronic device is displayed by the second electronic device 1014. For example, in Figure 6E, the confirmation information from the second electronic device 620 is displayed by the second electronic device 620 on the display device 621.
[0312] While displaying the confirmation prompt, the first electronic device receives confirmation information from the second electronic device on the first electronic device via one or more input devices (1016). For example, in FIG. 6E, the first electronic device detects contact 650D (and additional contacts) corresponding to the confirmation information displayed by second electronic device 620.
[0313] In some embodiments, the confirmation prompt is for establishing a secure connection between the first electronic device and the second electronic device (1018), and receiving confirmation information from the second electronic device on the first electronic device includes receiving input that satisfies a condition for establishing the secure connection between the first electronic device and the second electronic device.
[0314] In response to receiving the confirmation information, the first electronic device initiates a process to share authentication credentials for the service from the first electronic device to the second electronic device (1020). For example, in FIG. 6F, in response to receiving the confirmation information, the first electronic device 610 displays a service selection user interface 508 including a list of service affordances 661A-661G each associated with a plurality of services, user accounts for those services, and authentication credentials for those user accounts. In FIG. 6G, in response to detecting a selection of a particular service, the first electronic device 610 shares the authentication credentials for the service from the first electronic device 610 to the second electronic device 620. Sharing authentication credentials provides an efficient mechanism for a user to enter authentication credentials on the second electronic device without other user interaction. The reduced user interaction reduces wear on the device. The reduced user interaction also results in a faster initiation of authentication credential entry on the second electronic device, thus reducing power consumption for entering authentication credentials and extending the device's battery life.
[0315] In some embodiments, the first electronic device detects 1022 a series of one or more inputs via one or more input devices to share authentication credentials for the service. For example, in FIG. 6F , the device detects contact 650E at the location of first service affordance 661A and, in response, shares authentication credentials for the first service from first electronic device 610 to second electronic device 620.
[0316] In some embodiments, the first electronic device displays 1024 on a display device a service list including a plurality of service affordances corresponding to a plurality of services, each associated with a plurality of authentication credentials. For example, in FIG. 6F , the first electronic device 610 displays 508, a service selection user interface, including a list of service affordances 661A-661G associated with a plurality of services, user accounts for those services, and authentication credentials for those user accounts.
[0317] In some embodiments, the first electronic device sorts the service list based at least in part on the relevance of each service (1026). In various implementations, the relevance of each service is based on the domain name, application name, or identifier for the service that requires authentication credentials to be provided by the second device and applied by the first device. For example, in FIG. 6F , an indication that the second electronic device 620 needs authentication credentials for a service indicates that the service is listed at the top of the list of service affordances 661A-661G. Sorting the service list provides an efficient mechanism for the user to select a service affordance associated with the intended service and increases security by reducing user interaction with the device and reducing the likelihood that a user will accidentally share authentication credentials (for another user account).
[0318] In some embodiments, the first electronic device detects (1028) user input via one or more input devices corresponding to a selection of one of a plurality of service affordances corresponding to a service associated with the authentication credentials for the service. For example, in FIG. 6F , the device detects contact 650E at the location of first service affordance 661A and, in response, shares authentication credentials for the first service from first electronic device 610 to second electronic device 620.
[0319] In some embodiments, in response to detecting a sequence of one or more inputs, the first electronic device shares authentication credentials for the service from the first electronic device to the second electronic device (1030). For example, in Figure 6G, in response to detecting contact 650E at the location of the first service affordance 661A in Figure 6F, the first electronic device 610 shares authentication credentials for the first service from the first electronic device 610 to the second electronic device 620.
[0320] In some embodiments, the first electronic device transmits authentication credentials for the service wirelessly over a secure connection from the first electronic device to the second electronic device (1032). For example, the authentication credentials may be transmitted over a peer-to-peer WiFi connection or a Bluetooth connection. In some embodiments, the first electronic device shares the authentication credentials, including a user identification name and password, from the first electronic device to the second electronic device (1034).
[0321] In some embodiments, before transmitting the authentication credentials, the first electronic device authenticates the user. Thus, in some embodiments, the first electronic device obtains (1036) authentication information via one or more input devices and authenticates (1038) the user based on the authentication information. Authenticating the user before sharing the authentication credentials increases the security of the user account by reducing the likelihood that the authentication credentials will be shared without the user's knowledge.
[0322] In some embodiments, after the process of sharing the authentication credentials for the service, the first electronic device displays a notification on a display device indicating that the process for sharing the authentication credentials for the service is complete (1040). For example, in FIG. 6G, the first electronic device 610 displays a sharing completion window 643 that includes a notification indicating that the authentication credentials have been shared with the second electronic device 620.
[0323] It should be understood that the particular order described for the operations in FIGS. 10A-10C is merely an example, and that the described order is not intended to indicate the only order in which the operations can be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. Furthermore, it should be noted that other process details described herein with respect to other methods described herein (e.g., methods 800, 900, and 1100) may also be applied in a manner similar to method 1000 described above with respect to FIGS. 10A-10C. For example, the user interface (including fields, affordances, and responses thereof), user input, electronic device, and authentication credentials described above with reference to method 1000 optionally have one or more of the characteristics of the user interface (including fields, affordances, and responses thereof), user input, electronic device, and authentication credentials described herein with reference to other methods described herein (e.g., methods 800, 900, and 1100). For the sake of brevity, those details will not be repeated here.
[0324] 11A-11C show a flow diagram of a method 1100 for displaying password information, according to some embodiments. Method 1100 is performed on an electronic device having a display device and one or more input devices (e.g., portable multifunction device 100 of FIG. 1A or device 300 of FIG. 3). In some embodiments, the display device is a touchscreen display, and one or more of the input devices are on or integrated into the display device. In some embodiments, the display device is separate from the one or more input devices. Some operations of method 1100 are optionally combined, and / or the order of some operations is optionally changed.
[0325] As described below, method 1100 provides an intuitive way to display password information. Method 1100 reduces the cognitive burden on a user when displaying password information, thereby creating a more efficient human-machine interface. For battery-operated electronic devices, allowing a user to display password information faster and more efficiently conserves power and extends the time between battery charges.
[0326] The device detects (1102) a verbal request to display password information via one or more input devices. In various implementations, the device detects the verbal request via a microphone. For example, in FIG. 7I, device 100 detects verbal request 751A to display password information. As another example, in FIG. 7O, device 100 detects verbal request 751B to display password information. As another example, in FIG. 7R, device 100 detects verbal request 751C to display password information. As another example, in FIG. 7T, device 100 detects verbal request 751D to display password information.
[0327] In response to receiving a verbal request to display password information, in accordance with a determination that the request is for a password for a first user account accessible by the device and that the user has been authenticated, the device displays (1104) the password for the first user account. For example, in FIG. 7L , in accordance with a determination that the verbal request 751A is for a password for a user account associated with the fourth user account affordance 727D of FIG. 7D and after authenticating the user (as shown in FIGS. 7J-7K), device 100 displays password affordance 730B including text indicating the password associated with the user account. As another example, in FIG. 7P , in accordance with a determination that the verbal request 751B is for a password for a user account associated with the seventh user account affordance 727G of FIG. 7D and after authenticating the user, device 100 displays password affordance 730D including text indicating the password associated with the user account. Displaying password information in response to a verbal request provides an efficient mechanism for displaying password information, thus reducing the amount of user interaction for displaying password information. Reduced user interaction reduces wear on the device. Reduced user interaction also results in earlier initiation of display of password information, thus reducing power consumption for displaying password information and extending battery life of the device.
[0328] In some embodiments, the device displays (1106) information about a first user account accessible by the device. For example, in FIG. 7L , device 100 displays password details user interface 709A, including username affordance 730A including text indicating a username associated with the user account for the service, password affordance 730B including text indicating a password associated with the user account, and text indicating a website 731A associated with the user account's service. As another example, in FIG. 7P , device 100 displays password details user interface 709B, including username affordance 730C including text indicating a username associated with the user account for the service, password affordance 730D including text indicating a password associated with the user account, and text indicating a website 731B associated with the user account's service. Providing additional information about the first user account increases a user's confidence in displaying the first password and reduces the likelihood that the user will perform further user interaction to display the first password. Reducing user interaction reduces wear on the device and extends the device's battery life.
[0329] In some embodiments, the information about the first user account accessible by the device includes password security information for the password of the first user account (1108). In some embodiments, the information about the first user account accessible by the device includes an alert indicating that the password for the first user account is the same as the password for another user account accessible by the device (1110). For example, in FIG. 7P , device 100 displays alert 735 indicating that the password associated with the second user account is the same as the password associated with one or more other accounts. In some embodiments, the password security information about the password for the first user account includes information about the strength of the password, such as whether it is easily guessed, short, has low entropy, contains common words, etc. In some embodiments, the alert includes an affordance that, when selected, displays a resource for changing the password for the first user account (1112). For example, in FIG. 7P , alert 735 includes a password change affordance 736 that, when selected, displays a resource, e.g., a web page or application, for changing the password for the user account. Providing affordances for changing weak or duplicate passwords provides an efficient mechanism for users to change passwords, thus reducing the amount of user interaction to change a password. Reduced user interaction reduces wear and tear on the device. Reduced user interaction also results in faster initiation of the password change, thus reducing power consumption to change the password and extending the device's battery life. Furthermore, providing an efficient mechanism for users to change passwords increases the likelihood that users will perform such action, increasing the security of the user account.
[0330] In response to receiving the verbal request to display password information, in accordance with a determination that the request is for a password for a second user account accessible by the device and the user has been authenticated, the device displays (1114) the password for the second user account. For example, in FIG. 7L, in accordance with a determination that the verbal request 751A is for a password for a user account associated with the fourth user account affordance 727D of FIG. 7D and after authenticating the user (as shown in FIGS. 7J-7K), device 100 displays password affordance 730B including text indicating the password associated with that user account. As another example, in FIG. 7P, in accordance with a determination that the verbal request 751B is for a password for a user account associated with the seventh user account affordance 727G of FIG. 7G and after authenticating the user, device 100 displays password affordance 730D including text indicating the password associated with that user account.
[0331] In some embodiments, in response to receiving a verbal request to display password information and following a determination that the request is for general password information, the device displays (1116) a list of password display affordances that, when selected, display the respective passwords for the respective user accounts accessible by the device. For example, in FIG. 7S, in response to receiving verbal request 751C of FIG. 7R, device 100 displays password list user interface 708, including a list of user account affordances 727A-727G, each associated with a respective plurality of services and a plurality of user accounts along with authentication credentials for those user accounts. Displaying password information in response to a verbal request provides an efficient mechanism for displaying password information, thus reducing the amount of user interaction for displaying the password information. Reduced user interaction reduces wear on the device. Reduced user interaction also results in faster initiation of displaying password information, thus reducing power consumption for displaying password information and extending the device's battery life.
[0332] In some embodiments, in response to receiving a verbal request to display password information, and following a determination that the request is for passwords of user accounts that are not accessible by the device, the device displays (1118) a list of password display affordances that, when selected, display the respective passwords of the respective user accounts that are accessible by the device. For example, in FIG. 7U, in response to receiving verbal request 751D of FIG. 7T, device 100 displays password list user interface 708, which includes a list of user account affordances 727A-727G, each associated with a plurality of user accounts along with a respective plurality of services and authentication credentials for those user accounts. In some embodiments, the device displays (1120) a pre-populated search field based on the verbal request. For example, in FIG. 7U, search field 729 is pre-populated with the word “Hotels” based on verbal request 751D of FIG. 7T.
[0333] In some embodiments, the device detects (1122) user input via one or more input devices corresponding to selection of a password for the first user account. For example, in FIG. 7L , device 100 detects contact 7520F at the location of password affordance 730B. In some embodiments, in response to detecting user input corresponding to selection of a password for the first user account, the device displays (1124) a share affordance on a display device that, when selected, initiates a process for sharing the password for the first user account. For example, in FIG. 7M , device 100 displays share affordance 732B that, when selected, initiates a process for sharing the password (and / or other authentication credentials) associated with the first user account. Thus, the user interface provides an efficient mechanism for users to share authentication credentials and reduces the amount of user interaction for sharing authentication credentials. Reduced user interaction reduces wear and tear on the device. Reduced user interaction also results in faster initiation of authentication credential sharing, thus reducing power consumption for sharing authentication credentials and extending the device's battery life.
[0334] In some embodiments, the device detects (1126) user input via one or more input devices corresponding to selection of the share affordance. For example, in FIG. 7M, device 100 detects contact 750G at the location of share affordance 732B. In some embodiments, in response to detecting user input corresponding to selection of the share affordance, the device displays (1128) on a display device a recipient selection card including one or more recipient affordances that, when selected, share the password for the first user account with the respective device. For example, in FIG. 7N, device 100 displays recipient selection card 733 including multiple recipient affordances 734A-734C that, when selected, initiate a process for sharing the password (and / or other authentication credentials) associated with the first user account with the respective recipient.
[0335] In some embodiments, in response to receiving an oral request to display password information and following a determination that the user is not authenticated, the device proceeds to authenticate the user and display the requested password information. Thus, in some embodiments, in response to receiving an oral request to display password information and following a determination that the user is not authenticated, the device obtains authentication information via one or more input devices and authenticates the user based on the authentication information (1130). For example, in FIGS. 7J-7K, in response to detecting oral request 751A, device 100 obtains authentication information via one or more input devices (as indicated by authenticated window 741 in FIG. 7J) and authenticates the user based on the authentication information (as indicated by authenticated window 742 in FIG. 7K). In some embodiments, the authentication information includes a user biometric, such as a facial feature or a fingerprint (1132). Authenticating the user increases the security of the user's account by ensuring that password information is not displayed without the user's knowledge.
[0336] In some embodiments, prior to receiving the verbal request to display the password information and while the device is locked, the device detects (1134) user input via one or more input devices requesting unlocking of the device. In response to the user input requesting unlocking of the device, the device obtains unlock information via the one or more input devices, and the device unlocks the device based on the unlock information. For example, in FIG. 7F, device 100 detects user input requesting unlocking of the device in the form of contact 750E detected moving upward from a position near the bottom of the display. In FIG. 7G, device 100 obtains the unlock information (as indicated by authenticating window 741). In FIG. 7H, device 100 unlocks device 100 based on the unlock information (as indicated by authenticated window 742).
[0337] In some embodiments, the unlock information includes a passcode, and the authentication information includes a user biometric or includes a passcode if biometric authentication fails (1136). Thus, in various implementations, the authentication information is more secure than the unlock information. However, in various implementations, the authentication information includes a passcode (e.g., if biometric authentication fails, if biometric authentication fails twice, or if not configured).
[0338] In some embodiments, the authentication information is obtained while the device is locked, and authenticating the user based on the authentication information further includes unlocking the device based on the authentication information (1138). For example, in FIG. 7W , device 100 obtains authentication information (as indicated by authenticating window 741) while the device is locked (as indicated by lock screen user interface 705). In FIG. 7Y , device 100 is unlocked based on the authentication information (as indicated by password details user interface 709A). Unlocking the device and authenticating the user based on the same information results in a more efficient human-machine interface (because the user does not have to separately unlock and authenticate the device). For battery-operated electronic devices, a more efficient human-machine user interface conserves power and extends the time between battery charges. Furthermore, a more efficient human-machine user interface reduces the amount of user interaction with the device, reducing wear and tear on the device.
[0339] It should be understood that the particular order described for the operations in FIGS. 11A-11C is merely an example, and that the described order is not intended to indicate the only order in which the operations can be performed. Those skilled in the art will recognize various ways to reorder the operations described herein. Furthermore, it should be noted that other process details described herein with respect to other methods described herein (e.g., methods 800, 900, and 1000) are also applicable to methods similar to method 1100 described above with respect to FIGS. 11A-11C. For example, the user interface (including fields, affordances, and responses thereof), user input (particularly verbal requests and commands), and authentication credentials described above with reference to method 1100 optionally comprise one or more of the user interface characteristics (including fields, affordances, and responses thereof), user input (particularly verbal requests and commands), and authentication credentials described herein with reference to other methods described herein (e.g., methods 800, 900, and 1000). For the sake of brevity, those details will not be repeated here.
[0340] The operations in the information processing methods described above are optionally performed by executing one or more functional modules within an information processing device, such as a general-purpose processor (e.g., as described above with respect to Figures 1A and 3) or an application-specific chip.
[0341] 8A-8C, 9A-9D, 10A-10C, and 11A-11C are optionally performed by the components depicted in Figures 1A-1B. For example, display operation 802, detect operation 804, display operation 810, display operation 820, receive operation 902, receive operation 904, display operation 916, receive operation 1002, display operation 1004, receive operation 1016, initiate operation 1020, detect operation 1102, display operation 1104, or display operation 1114 are optionally performed by event sorter 170, event recognizer 180, and event handler 190. Event monitor 171 of event sorter 170 detects contacts on touch-sensitive display 112, and event dispatcher module 174 delivers the event information to application 136-1. Each event recognizer 180 of application 136-1 compares the event information with a respective event definition 186 to determine whether a first contact at a first location on the touch-sensitive surface (or rotation of the device) corresponds to a predetermined event or sub-event, such as selecting an object on a user interface or rotating the device from one orientation to another. When a respective pre-defined event or sub-event is detected, event recognizer 180 activates an event handler 190 associated with the detection of that event or sub-event. Event handler 190 optionally uses or invokes data updater 176 or object updater 177 to update application internal state 192. In some embodiments, event handler 190 accesses a respective GUI updater 178 to update what is displayed by the application. Similarly, it will be apparent to one skilled in the art how other processes may be implemented based on the components depicted in FIGS. 1A-1B.
[0342] The foregoing has been described with reference to specific embodiments for purposes of explanation. However, the exemplary discussion above is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teachings. These embodiments were chosen and described in order to best explain the principles of the invention and its practical application, and thereby enable others skilled in the art to best utilize the invention and the various described embodiments with various modifications suited to the particular uses contemplated.
Claims
1. a first electronic device in communication with a display device and one or more input devices, receiving, at the first electronic device, an indication that a second electronic device requires authentication credentials for a service; In response to receiving the indication that the second electronic device requires authentication credentials for the service, displaying, via the display device, a confirmation prompt on the first electronic device requiring entry of confirmation information in order to proceed, in accordance with a determination that the first electronic device satisfies each of the criteria, including a requirement that the first electronic device be within a predetermined proximity to the second electronic device for each of the criteria to be satisfied; receiving the confirmation information on the first electronic device via the one or more input devices while displaying the confirmation prompt; In response to receiving the confirmation information, initiating a process for sharing authentication credentials for the service from the first electronic device to the second electronic device; A method comprising:
2. Initiating the process for sharing authentication credentials for the service from the first electronic device to the second electronic device; detecting a sequence of one or more inputs via the one or more input devices to share authentication credentials for the service; sharing authentication credentials for the service from the first electronic device to the second electronic device in response to detecting the series of one or more inputs; The method of claim 1 , comprising:
3. receiving the series of one or more inputs; displaying, via the display device, a service list including a plurality of service affordances corresponding to a plurality of services respectively associated with a plurality of authentication credentials; detecting, via the one or more input devices, user input corresponding to a selection of one of the plurality of service affordances corresponding to the service associated with the authentication credentials for the service; The method of claim 2 , comprising:
4. The method of claim 3 , wherein displaying the list of services includes sorting the list of services based at least in part on the relevance of the respective services.
5. 3. The method of claim 2, wherein sharing the authentication credentials for the service from the first electronic device to the second electronic device comprises transmitting the authentication credentials for the service wirelessly from the first electronic device to the second electronic device over a secure connection.
6. 3. The method of claim 2, wherein sharing the authentication credentials for the service from the first electronic device to the second electronic device includes sharing a user identification name and password from the first electronic device to the second electronic device.
7. Sharing the authentication credentials for the service from the first electronic device to the second electronic device; acquiring authentication information via the one or more input devices; authenticating the user based on the authentication information; The method of claim 2 , comprising:
8. The method of claim 1 , further comprising withholding the display of the confirmation prompt in accordance with a determination that the first electronic device does not meet the respective criteria.
9. The method of claim 1 , wherein the respective criteria include a requirement that the first electronic device be in proximity to a third electronic device associated with the second electronic device.
10. 10. The method of claim 9, wherein the second electronic device is a media playback device and the third electronic device is a remote control for the second electronic device.
11. 2. The method of claim 1, wherein the confirmation prompt is for establishing a secure connection between the first electronic device and the second electronic device, and receiving the confirmation information on the first electronic device includes receiving input that satisfies a condition for establishing the secure connection between the first electronic device and the second electronic device.
12. In response to receiving the indication that the second electronic device requires authentication credentials for the service, displaying, on the display device, a share confirmation notification that includes a share confirmation affordance that, when selected, causes the confirmation prompt to be displayed; detecting user input via the one or more input devices corresponding to a selection of the shared confirmation affordance; The method of claim 1 further comprising:
13. 10. The method of claim 1, further comprising, after the process for sharing the authentication credentials for the service, displaying on the display device a notification indicating that the process for sharing the authentication credentials for the service is complete.
14. The method of claim 1 , wherein the confirmation information is displayed by the second electronic device.
15. A display device; one or more input devices; one or more processors; a non-transient memory; one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing or causing the performance of any of the methods according to claims 1 to 14; and a first electronic device comprising:
16. 15. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs including instructions that, when executed by a first electronic device comprising a display device and one or more input devices, cause the first electronic device to perform or cause the first electronic device to perform any of the methods of claims 1 to 14.
Citation Information
Patent Citations
Information processing system, information processing device, and information processing program
JP2017168005A
Information processing apparatus, information processing program, information processing method, and information processing system
JP2018028786A
System and method for service assisted mobile pairing of password-less computer login
WO2017147346A1