Multi-participant live communication user interface
Efficient live communication methods and interfaces for multiple participants address the inefficiencies of existing technologies by optimizing user interactions and power consumption through dynamic notification updates and participant representation adjustments.
Patent Information
- Application Number
- JP2024146741
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-06-12
- Filing Date
- 2024-08-28
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2038-09-28
AI Technical Summary
Existing live communication technologies involving multiple participants are cumbersome and inefficient, often requiring complex user interfaces with multiple key presses or strokes, wasting user time and device power, particularly in battery-operated devices.
Faster and more efficient methods and interfaces for live communications are provided, including dynamic notification updates based on session activity and participant representation adjustments, such as resizing and positioning of participant representations based on activity levels and session thresholds.
These methods reduce cognitive burden, increase user satisfaction, and conserve battery power by optimizing user interface interactions and power usage in live communication sessions.
Smart Images

Figure 2024170463000001_ABST
Abstract
Description
[Technical Field]
[0001] This application is related to U.S. Provisional Patent Application No. 62 / 668,229, filed May 7, 2018, entitled "MULTI-PARTICIPANT LIVE COMMUNICATION USER INTERFACE," which is hereby incorporated by reference in its entirety.
[0002] FIELD OF THE DISCLOSURE The present disclosure relates generally to computer user interfaces, and more particularly to techniques for live communications involving multiple participants. [Background technology]
[0003] Users are increasingly using electronic devices to virtually communicate with others for personal and business reasons. Most electronic devices are capable of providing live communications between users and between multiple participants. For example, some electronic devices provide interactive interfaces for viewing and controlling live communications. Summary of the Invention [Problem to be solved by the invention]
[0004] However, some techniques for live communication involving multiple participants using electronic devices are generally cumbersome and inefficient. For example, some existing techniques use complex and time-consuming user interfaces that may involve multiple key presses or strokes. Existing techniques take more time than necessary, wasting user time and device power. This latter problem is particularly acute in battery-operated devices. [Means for solving the problem]
[0005] The present technology thus provides electronic devices with faster, more efficient methods and interfaces for live communication involving multiple participants. Such methods and interfaces optionally complement or replace other methods for live communication involving multiple participants. Such methods and interfaces reduce the cognitive burden on users and provide a more efficient human-machine interface. For battery-operated computing devices, such methods and interfaces conserve power and extend the time between battery charges.
[0006] In some embodiments, a method is performed on an electronic device with a display, the method including: displaying a messaging user interface of a messaging application, the messaging user interface including a message area including a plurality of messages in a message conversation between three or more participants; receiving first data indicating that a live communication session available to the three or more participants is active; in response to receiving the first data indicating that the live communication session between the three or more participants is active, displaying a notification indicating that the live communication session is active; receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active; and in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active, ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active.
[0007] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for displaying a messaging user interface of a messaging application including a message area including a plurality of messages in a message conversation between three or more participants, receiving first data indicating that a live communication session available to the three or more participants is active, displaying a notification indicating that the live communication session is active in response to receiving the first data indicating that the live communication session between the three or more participants is active, receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active, and ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active.
[0008] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display. The one or more programs include instructions for displaying a messaging user interface of a messaging application including a message area including a plurality of messages in a message conversation between three or more participants, and receiving first data indicating that a live communication session available to the three or more participants is active. In response to receiving the first data indicating that the live communication session between the three or more participants is active, the method may include displaying a notification indicating that the live communication session is active, receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active, and ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active.
[0009] In some embodiments, an electronic device includes a display, one or more processors, and a memory. The memory stores one or more programs configured to be executed by the one or more processors. The one or more programs include instructions for displaying a messaging user interface of a messaging application including a message area including a plurality of messages in a message conversation between three or more participants, and receiving first data indicating that a live communication session available to the three or more participants is active. In response to receiving the first data indicating that the live communication session between the three or more participants is active, the electronic device may include displaying a notification indicating that the live communication session is active, receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active, and ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active.
[0010] In some embodiments, an electronic device comprises: means for displaying a messaging user interface of a messaging application including a display; and a message area including a plurality of messages in a message conversation between three or more participants; means for receiving first data indicating that a live communication session available to the three or more participants is active; means for displaying a notification indicating that the live communication session is active in response to receiving the first data indicating that the live communication session between the three or more participants is active; means for receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active; and means for ceasing display of the notification or updating the notification to indicate that the live communication session is no longer active in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active.
[0011] In some embodiments, a method is performed on an electronic device having a display, the method including: receiving a request to display a user interface for a live communication session between two or more participants; and, in response to receiving the request to display the user interface for the live communication session between the two or more participants, displaying a live communication user interface including simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying the representations of the plurality of participants in the live communication session can include, in response to a determination that a number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than a user of the electronic device at one or more sizes greater than a respective threshold size while displaying representations of a second plurality of participants including one or more participants not included in the first plurality in an overflow area, the representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than a respective threshold size; and, in response to a determination that the number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of participants other than the user of the electronic device at one or more sizes greater than a respective threshold size without displaying representations of participants other than the user of the electronic device at one or more sizes less than a respective threshold size.
[0012] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device that includes a display. The one or more programs include instructions for receiving a request to display a user interface for a live communication session between two or more participants; and displaying a live communication user interface in response to receiving the request to display a user interface for the live communication session between two or more participants, including simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying the representations of the plurality of participants in the live communication session includes: in response to a determination that the number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes while displaying representations of a second plurality of participants including one or more participants not included in the first plurality of participants in an overflow area, with representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than their respective threshold sizes; and in response to a determination that the number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes without displaying representations of participants other than the user of the electronic device at one or more sizes less than their respective threshold sizes.
[0013] In some embodiments, a transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device that includes a display. The one or more programs include instructions for receiving a request to display a user interface for a live communication session between two or more participants; and displaying a live communication user interface in response to receiving the request to display a user interface for the live communication session between two or more participants, including simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying the representations of the plurality of participants in the live communication session includes: in response to a determination that the number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than the user of the electronic device at one or more sizes greater than a respective threshold size while displaying representations of a second plurality of participants including one or more participants not included in the first plurality of participants in an overflow area, the representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than the respective threshold sizes; and in response to a determination that the number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of participants other than the user of the electronic device at one or more sizes greater than the respective threshold sizes without displaying representations of participants other than the user of the electronic device at one or more sizes less than the respective threshold sizes.
[0014] In some embodiments, an electronic device comprises a display, one or more processors, and a memory, the memory storing one or more programs configured to be executed by the one or more processors. The one or more programs include instructions for receiving a request to display a user interface for a live communication session between two or more participants; and displaying a live communication user interface in response to receiving the request to display a user interface for the live communication session between two or more participants, including simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying the representations of the plurality of participants in the live communication session includes: in response to a determination that the number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes while displaying representations of a second plurality of participants including one or more participants not included in the first plurality of participants in an overflow area, with representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than their respective threshold sizes; and in response to a determination that the number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes without displaying representations of participants other than the user of the electronic device at one or more sizes less than their respective threshold sizes.
[0015] In some embodiments, an electronic device comprises a display; means for receiving a request to display a user interface for a live communication session between two or more participants; and means for displaying a live communication user interface in response to receiving the request to display the user interface for the live communication session between two or more participants, the live communication user interface including simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying the representations of the plurality of participants in the live communication session comprises: means for simultaneously displaying representations of a first plurality of participants other than the user of the electronic device at one or more sizes greater than a respective threshold size while displaying representations of a second plurality of participants including one or more participants not included in the first plurality of participants in an overflow area, the representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than the respective threshold sizes, in response to a determination that the number of participants in the live communication session is equal to or less than the threshold number of participants; and means for displaying representations of participants other than the user of the electronic device at one or more sizes greater than the respective threshold size without displaying representations of participants other than the user of the electronic device at one or more sizes less than the respective threshold size, in response to a determination that the number of participants in the live communication session is equal to or less than the threshold number of participants.
[0016] In some embodiments, a method is performed on an electronic device having a display, the method including: displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in the live video communication session, and a representation of a third participant in the live video communication session; receiving, while displaying the live video communication user interface, data indicating that an activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session; in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session, modifying a size and / or position of the representation of the first participant in the live video communication user interface, modifying a size and / or position of the representation of the second participant in the live video communication user interface, and modifying a size and / or position of the representation of the third participant in the live video communication user interface.
[0017] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in the live video communication session, and a representation of a third participant in the live video communication session; receiving, while displaying the live video communication user interface, data indicating that an activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session; and, in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session, modifying a size and / or position of the representation of the first participant in the live video communication user interface, modifying a size and / or position of the representation of the second participant in the live video communication user interface, and modifying a size and / or position of the representation of the third participant in the live video communication user interface.
[0018] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in the live video communication session, and a representation of a third participant in the live video communication session; receiving, while displaying the live video communication user interface, data indicating that an activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session; and, in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session, modifying a size and / or position of the representation of the first participant in the live video communication user interface, modifying a size and / or position of the representation of the second participant in the live video communication user interface, and modifying a size and / or position of the representation of the third participant in the live video communication user interface.
[0019] In some embodiments, the electronic device comprises a display, one or more processors, and a memory. The memory stores one or more programs configured to be executed by the one or more processors. The one or more programs include instructions for: displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in the live video communication session, and a representation of a third participant in the live video communication session; receiving, while displaying the live video communication user interface, data indicating that an activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session; and, in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session, modifying a size and / or position of the representation of the first participant in the live video communication user interface, modifying a size and / or position of the representation of the second participant in the live video communication user interface, and modifying a size and / or position of the representation of the third participant in the live video communication user interface.
[0020] In some embodiments, an electronic device comprises a display; means for displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in the live video communication session, and a representation of a third participant in the live video communication session; means for receiving, while displaying the live video communication user interface, data indicating that an activity level of the second participant in the live video communication session has increased beyond an activity level of the first participant in the live video communication session; and means for, in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session, changing a size and / or position of the representation of the first participant in the live video communication user interface, changing a size and / or position of the representation of the second participant in the live video communication user interface, and changing a size and / or position of the representation of the third participant in the live video communication user interface.
[0021] In some embodiments, a method is performed on an electronic device with a display. The method can include displaying a messaging user interface of a messaging application including a message area including a plurality of messages between participants in a message conversation including three or more participants and an affordance, separate from the message area, for initiating a live video communication session in a live video communication application, detecting an input corresponding to a selection of the affordance, and in response to detecting the input corresponding to the selection of the affordance, initiating a process to initiate a live video communication session in the live video communication application, the live video communication session including the participants in the message conversation.
[0022] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for displaying a messaging user interface of a messaging application including a message area including a plurality of messages between participants in a message conversation including three or more participants and an affordance, separate from the message area, for initiating a live video communication session in a live video communication application; detecting input corresponding to selection of the affordance; and in response to detecting the input corresponding to selection of the affordance, initiating processing in the live video communication application to initiate a live video communication session including the participants in the message conversation.
[0023] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for displaying a messaging user interface of a messaging application including a message area including a plurality of messages between participants in a message conversation including three or more participants and an affordance, separate from the message area, for initiating a live video communication session in a live video communication application; detecting input corresponding to selection of the affordance; and in response to detecting the input corresponding to selection of the affordance, initiating processing in the live video communication application to initiate a live video communication session including the participants in the message conversation.
[0024] In some embodiments, an electronic device includes a display, one or more processors, and a memory. The memory stores one or more programs configured to be executed by the one or more processors. The one or more programs include instructions for displaying a messaging user interface of a messaging application including a message area including a plurality of messages between participants in a message conversation including three or more participants and an affordance, separate from the message area, for initiating a live video communication session in a live video communication application; detecting input corresponding to selection of the affordance; and in response to detecting the input corresponding to selection of the affordance, initiating processing in the live video communication application to initiate a live video communication session including the participants in the message conversation.
[0025] In some embodiments, the electronic device comprises a display; means for displaying a messaging user interface of a messaging application, the messaging user interface including a message area including a plurality of messages between participants in a message conversation including three or more participants, and an affordance, separate from the message area, for initiating a live video communication session in the live video communication application; means for detecting an input corresponding to a selection of the affordance; and means for initiating a process in the live video communication application to initiate a live video communication session including the participants in the message conversation in response to detecting the input corresponding to the selection of the affordance.
[0026] In some embodiments, a method is performed on an electronic device having a display. The method can include displaying a user interface of a live video communication application, the user interface including a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants, and a new session affordance for starting a new live video communication session; detecting an input corresponding to a request to initiate a process to start the new live video communication session; in response to detecting the input, wherein the input corresponds to a selection of the first participant affordance, initiating a process to start the new live video communication session including the group of three or more participants; and in response to the input corresponding to a selection of the new session affordance, initiating a process to select two or more participants, and starting the new live video communication session including the participant associated with the device and the two or more selected participants.
[0027] In some embodiments, a non-transitory computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying a live video communication user interface of a live video communication application, the live video communication user interface including a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants, and a new session affordance for starting a new live video communication session; detecting an input corresponding to a request to initiate a process to start the new live video communication session; in response to detecting the input, initiating a process to start the new live video communication session including the group of three or more participants when the input corresponds to a selection of the first participant affordance; initiating a process to select two or more participants when the input corresponds to a selection of the new session affordance; and starting the new live video communication session including the participant associated with the device and the two or more selected participants.
[0028] In some embodiments, a temporary computer-readable storage medium stores one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for: displaying a live video communication user interface of a live video communication application, the live video communication user interface including a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants, and a new session affordance for starting a new live video communication session; detecting an input corresponding to a request to initiate a process to start the new live video communication session; in response to detecting the input, initiating a process to start the new live video communication session including the group of three or more participants when the input corresponds to a selection of the first participant affordance; initiating a process to select two or more participants when the input corresponds to a selection of the new session affordance; and starting the new live video communication session including the participant associated with the device and the two or more selected participants.
[0029] In some embodiments, the electronic device comprises a display, one or more processors, and a memory. The memory stores one or more programs configured to be executed by the one or more processors. The one or more programs include instructions for: displaying a live video communication user interface of a live video communication application, the live video communication user interface including a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants, and a new session affordance for starting a new live video communication session; detecting an input corresponding to a request to initiate a process to start the new live video communication session; and, in response to detecting the input, initiating a process to start the new live video communication session including the group of three or more participants when the input corresponds to a selection of the first participant affordance; initiating a process to select two or more participants when the input corresponds to a selection of the new session affordance; and starting the new live video communication session including the participant associated with the device and the two or more selected participants.
[0030] In some embodiments, the electronic device comprises: a display; means for displaying a live video communication user interface of a live video communication application, the live video communication user interface including a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants, and a new session affordance for starting a new live video communication session; means for detecting an input corresponding to a request to initiate a process to start a new live video communication session; and means for, in response to detecting the input, initiating a process to start a new live video communication session including the group of three or more participants when the input corresponds to a selection of the first participant affordance, initiating a process to select two or more participants when the input corresponds to a selection of the new session affordance, and starting a new live video communication session including the participant associated with the device and the two or more selected participants.
[0031] Executable instructions to perform these functions are optionally contained in a non-transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors. Executable instructions to perform these functions are optionally contained in a transitory computer-readable storage medium or other computer program product configured to be executed by one or more processors.
[0032] Thus, electronic devices are provided with faster, more efficient methods and interfaces for live communication involving multiple participants, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices, which methods and interfaces may complement or replace other methods for live communication involving multiple participants.
[0033] For a better understanding of the various described embodiments, reference should be made to the following detailed description in conjunction with the following drawings, in which like reference numerals refer to corresponding parts throughout the drawings, in which: [Brief explanation of the drawings]
[0034] [Figure 1A] 1 is a block diagram illustrating a portable multifunction device with a touch-sensitive display according to some embodiments. [Figure 1B] FIG. 1 is a block diagram illustrating exemplary components for event processing, according to some embodiments. [Figure 2] 1 illustrates a portable multifunction device with a touch screen according to some embodiments. [Figure 3] FIG. 1 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface in accordance with some embodiments. [Figure 4A] FIG. 1 illustrates an exemplary user interface for a menu of applications on a portable multifunction device, in accordance with some embodiments. [Figure 4B] 1 illustrates an exemplary user interface for a multifunction device with a touch-sensitive surface that is separate from the display, in accordance with some embodiments. [Figure 5A] FIG. 1 illustrates a personal electronic device according to some embodiments. [Figure 5B] FIG. 1 is a block diagram illustrating a personal electronic device, according to some embodiments. [Figure 5C] FIG. 1 illustrates exemplary components of a personal electronic device having a touch-sensitive display and intensity sensor, according to some embodiments. [Figure 5D] FIG. 1 illustrates exemplary components of a personal electronic device having a touch-sensitive display and intensity sensor, according to some embodiments. [Figure 5E] FIG. 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 5F] FIG. 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 5G] FIG. 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 5H] FIG. 1 illustrates exemplary components and a user interface of a personal electronic device, according to some embodiments. [Figure 6A] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6B] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6C] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6D] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6E] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6F] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6G] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6H] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6I] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6J] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6K] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6L] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6M]FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6N] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6O] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6P] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6Q] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6R] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6S] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6T] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6U] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6V] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6W] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6X] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6Y] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6Z] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6AA] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6AB] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6AC] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6AD] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6AE] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 6AF] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 7A] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 7B] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 7C] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 7D] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 7E] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 7F] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 8A] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8B] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8C] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8D] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8E] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8F] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8G] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8H] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8I]FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8J] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8K] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8L] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8M] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8N] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8O] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8P] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8Q] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8R] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8S] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8T] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8U] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8V] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8W] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8X] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8Y] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8Z] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AA] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AB] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AC] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AD] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AE] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AF] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AG] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AH] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AI] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AJ] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AK] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AL] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AM] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AN] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AO] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AP]FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AQ] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AR] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AS] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AT] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AU] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AV] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AW] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AX] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AY] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8AZ] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BA] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BB] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BC] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BD] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BE] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BF] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BG] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BH] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BI] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BJ] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 8BK] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 9A] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9B] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9C] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9D] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9E] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9F] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9G] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9H] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9I] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9J] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 9K] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 10A] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10B] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10C] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10D] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10E] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10F] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10G] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10H] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10I] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10J] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10K] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10L] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10M] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10N] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10O] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10P] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10Q] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10R] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 10S]FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 11A] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 11B] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 11C] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 11D] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 11E] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 11F] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 12A] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12B] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12C] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12D] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12E] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12F] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12G] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12H] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12I] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12J] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12K] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12L] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12M] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 12N] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 13A] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 13B] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 13C] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 13D] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 14A] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14B] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14C] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14D] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14E] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14F] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14G] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14H] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 14I] FIG. 1 illustrates an exemplary user interface, according to some embodiments. [Figure 15A] FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 15B]FIG. 1 illustrates an exemplary method, according to some embodiments. [Figure 15C] FIG. 1 illustrates an exemplary method, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0035] In the following description, example methods, parameters, etc. are set forth. However, it is to be understood that the purpose of such description is not to limit the scope of the present disclosure, but rather to provide a description of example embodiments.
[0036] There is a need for electronic devices that provide efficient methods and interfaces for live communications involving multiple participants. Such techniques can reduce the cognitive burden on users participating in live communications involving multiple participants, thereby increasing productivity. Furthermore, such techniques can reduce processor and battery power that would otherwise be wasted on redundant user input.
[0037] The following Figures 1A-1B, 2, 3, 4A-4B, and 5A-5H provide descriptions of example devices for performing techniques for live communication sessions between multiple participants. Figures 6A-6AF illustrate example user interfaces for managing event notifications. Figures 7A-7F are flow diagrams illustrating methods for live communication sessions between multiple participants, according to some embodiments. The user interfaces of Figures 6A-6AF are used to illustrate the processes described below, including the processes of Figures 7A-7F.
[0038] 8A-8BK illustrate exemplary user interfaces for a live communication session between multiple participants. Figures 9A-9K are flow diagrams illustrating a method for conducting a live communication session between multiple participants, according to some embodiments. The user interfaces of Figures 8A-8BK are used to illustrate the processes described below, including the processes of Figures 9A-9K.
[0039] 10A-10S illustrate exemplary user interfaces for a live communication session between multiple participants. 11A-11F are flow diagrams illustrating a method for conducting a live communication session between multiple participants, according to some embodiments. The user interfaces of FIGS. 10A-10S are used to illustrate the processes described below, including the processes of FIGS. 11A-11F.
[0040]
[0023] Figures 12A-12N illustrate exemplary user interfaces for a live communication session between multiple participants. Figures 13A-13D are flow diagrams illustrating a method for conducting a live communication session between multiple participants, according to some embodiments. The user interfaces of Figures 12A-12N are used to illustrate the processes described below, including the processes of Figures 13A-13D.
[0041] 14A-14I illustrate exemplary user interfaces for a live communication session between multiple participants. Figures 15A-15C are flow diagrams illustrating a method for conducting a live communication session between multiple participants, according to some embodiments. The user interfaces of Figures 14A-14I are used to illustrate the processes described below, including the processes of Figures 15A-15C.
[0042] In the following description, terms such as "first" and "second" are used to describe various elements, but these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first touch can be referred to as a second touch, and similarly, a second touch can be referred to as a first touch, without departing from the scope of the various embodiments described. A first touch and a second touch are both touches, but are not the same touch.
[0043] The terminology used in the description of the various embodiments set forth herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various embodiments set forth and in the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly dictates otherwise. As used herein, the term "and / or" should also be understood to refer to and include any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and / or "comprising," as used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0044] Optionally, the term "if" is interpreted to mean "when," "upon," "in response to determining," or "in response to detecting," depending on the context. Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" are optionally interpreted to mean "upon determining," "in response to determining," "upon detecting [the stated condition or event]," or "in response to detecting [the stated condition or event]," depending on the context.
[0045] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile telephone, that also includes other functions, such as PDA and / or music player functions. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, California. Other portable electronic devices, such as laptops or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads), are optionally used. It should also be understood that in some embodiments, the device is not a portable communication device, but rather a desktop computer with a touch-sensitive surface (e.g., touchscreen displays and / or touchpads).
[0046] In the following discussion, electronic devices are described that include a display and a touch-sensitive surface, but it should be understood that the electronic device optionally includes one or more other physical user interface devices, such as a physical keyboard, a mouse, and / or a joystick.
[0047] 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.
[0048] Various applications running on the device optionally use at least one common physical user interface device, such as a touch-sensitive surface. One or more features of the touch-sensitive surface and corresponding information displayed on the device are optionally adjusted and / or changed for each application and / or within each application. In this way, the common physical architecture (such as the touch-sensitive surface) of the device optionally supports various applications with user interfaces that are intuitive and transparent to the user.
[0049] Attention now turns to embodiments of portable devices with touch-sensitive displays. FIG. 1A is a block diagram illustrating portable multifunction device 100 with touch-sensitive display system 112, according to some embodiments. Touch-sensitive display 112 may be conveniently referred to as a “touch screen,” and may also be known or referred to as a “touch-sensitive display system.” Device 100 includes memory 102 (optionally including one or more computer-readable storage media), memory controller 122, one or more processing units (CPUs) 120, peripherals interface 118, RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, input / output (I / O) subsystem 106, other input control devices 116, and external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on device 100 (e.g., a touch-sensitive surface, such as touch-sensitive display system 112 of device 100). Device 100 optionally includes one or more tactile output generators 167 for generating tactile output on device 100 (e.g., generating tactile output on a touch-sensitive surface, such as touch-sensitive display system 112 of device 100 or touchpad 355 of device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0050] As used herein and in the claims, the term “intensity” of a contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of a contact (e.g., a finger contact) on the touch-sensitive surface, or a surrogate (proxy) for the force or pressure of a contact on the touch-sensitive surface. The intensity of a contact has a value range that includes at least four different values and more typically includes hundreds (e.g., at least 256) different values. The intensity of a contact is optionally determined (or measured) using various techniques and various sensors or combinations of sensors. For example, one or more force sensors under or adjacent to the touch-sensitive surface are optionally used to measure force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted average) to determine an estimate of the force of the contact. Similarly, a pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Instead, the size and / or change in the contact area detected on the touch-sensitive surface, the capacitance and / or change in the capacitance of the touch-sensitive surface proximate the contact, and / or the resistance and / or change in the capacitance of the touch-sensitive surface proximate the contact are optionally used as proxies for the force or pressure of the contact on the touch-sensitive surface. In some implementations, the proxy measure for the force or pressure of the contact is used directly to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is described in units corresponding to the proxy measure). In some implementations, the proxy measure for the force or pressure of the contact is converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). Using the intensity of contact as an attribute of user input allows a user to access additional device functionality that may not otherwise be accessible by the user on a reduced-size device that has limited area for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical control such as a knob or button).
[0051] As used herein and in the claims, the term “tactile output” refers to a physical displacement of a device relative to its previous position, a physical displacement of a component of the device (e.g., the touch-sensitive surface) relative to another component of the device (e.g., the 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 the device is in contact with a touch-sensitive user surface (e.g., the user's finger, palm, or other part of the hand), the tactile output produced by the physical displacement is interpreted by the user as a tactile sensation that corresponds to a perceived change in a physical property of the device or a component of the device. For example, movement of the touch-sensitive surface (e.g., a touch-sensitive display or trackpad) is optionally interpreted by the user as a “downclick” or “upclick” of a physical actuator button. In some cases, a user will feel a tactile sensation such as a “downclick” or “upclick” even when no movement of a physical actuator button associated with the touch-sensitive surface 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., an "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.
[0052] It should be understood that device 100 is only one example of a portable multifunction device, and that device 100 optionally has more or fewer components than those shown, optionally combines two or more components, or optionally has a different configuration or arrangement of components. The various components shown in Figure 1A are implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0053] Memory 102 optionally includes high-speed random access memory, and optionally also includes non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.
[0054] A peripheral interface 118 can be used to couple input and output peripherals of the device to the CPU 120 and memory 102. The one or more processors 120 operate or execute various software programs and / or instruction sets stored in memory 102 to perform various functions for device 100 and to process data. In some embodiments, the peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.
[0055] The radio frequency (RF) circuitry 108 transmits and receives RF signals, also called electromagnetic signals. The RF circuitry 108 converts electrical signals to electromagnetic signals or electromagnetic signals to electrical signals and communicates with communication networks and other communication devices via electromagnetic signals. The RF circuitry 108 optionally includes well-known circuitry for performing these functions, including, but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, a Subscriber Identification Module (SIM) card, memory, etc. The 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 other devices. The RF circuitry 108 optionally includes well-known circuitry for detecting near field communication (NFC) fields, such as near field communication radios. The wireless communication optionally uses any of a plurality of communication standards, protocols, and technologies, including Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPA), long term evolution (LTE), near field communication (NFC), wideband code division multiple access (WDMA), and the like.Wireless technology may include wireless LANs, wireless LANs, and wireless LANs, including wireless LANs with a WAN-based standard, wireless LANs, wireless LANs with a WAN-based standard ... Such communication protocols include, but are not limited to, SIMPLE (Simple Message Extensions), Instant Messaging and Presence Service (IMPS), and / or Short Message Service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document.
[0056] Audio circuit 110, speaker 111, and microphone 113 provide an audio interface between a user and device 100. Audio circuit 110 receives audio data from peripherals interface 118, converts the audio data into electrical signals, and transmits the electrical signals to speaker 111. Speaker 111 converts the electrical signals into sound waves audible to humans. Audio circuit 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuit 110 converts the electrical signals into audio data and transmits the audio data to peripherals interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to memory 102 and / or RF circuit 108 by peripherals interface 118. In some embodiments, audio circuit 110 further comprises a headset jack (e.g., 212 in FIG. 2 ). The headset jack provides an interface between audio circuitry 110 and a removable audio input / output peripheral, such as an output-only headphone or a headset with both an output (e.g., single or double ear headphones) and an input (e.g., a microphone).
[0057] I / O subsystem 106 couples input / output peripherals of device 100, such as touchscreen 112 and other input control devices 116, to peripheral interface 118. I / O subsystem 106 optionally includes one or more input controllers 160 for display controller 156, light sensor controller 158, depth camera controller 169, intensity sensor controller 159, haptic feedback controller 161, and other input or control devices. One or more input controllers 160 receive / send electrical signals from / to other input control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, input controller(s) 160 are optionally coupled to any (or none) of a keyboard, infrared port, USB port, and pointer device such as a mouse. The one or more buttons (e.g., 208 in FIG. 2) optionally include up / down buttons for adjusting the volume of the speaker 111 and / or microphone 113. The one or more buttons optionally include a push button (e.g., 206 in FIG. 2).
[0058] A quick press of a push button optionally unlocks the touchscreen 112 or optionally initiates a process of using gestures on the touchscreen to unlock the device, as described in U.S. Patent Application No. 11 / 322,549, filed December 23, 2005, U.S. Patent No. 7,657,849, entitled "Unlocking a Device by Performing Gestures on an Unlock Image," which is incorporated herein by reference in its entirety. A longer press of a push button (e.g., 206) optionally powers the device 100 on or off. The functions of one or more of the buttons are optionally user-customizable. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0059] Touch-sensitive display 112 provides an input and output interface between the device and a user. Display controller 156 receives and / or sends electrical signals to touchscreen 112. Touchscreen 112 displays visual output to the user. The visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively referred to as "graphics"). In some embodiments, optionally, some or all of the visual output corresponds to user interface objects.
[0060] Touchscreen 112 has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on haptic and / or tactile contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction sets in memory 102) detects contacts (and any movement or cessation of contact) on touchscreen 112 and translates the detected contacts into interactions with user interface objects (e.g., one or more softkeys, icons, web pages, or images) displayed on touchscreen 112. In an exemplary embodiment, the point of contact between touchscreen 112 and the user corresponds to the user's finger.
[0061] Touchscreen 112 optionally uses LCD (liquid crystal display), LPD (light emitting polymer display), or LED (light emitting diode) technology, although other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally detect contact and any movement or cessation thereof using any of a number of now known or later developed touch sensing technologies, including, but not limited to, capacitive, resistive, infrared, and surface ultrasonic technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touchscreen 112. In an exemplary embodiment, projected mutual capacitance sensing technology is used, such as that found in the iPhone® and iPod Touch® by Apple Inc. of Cupertino, California.
[0062] The touch-sensitive display in some embodiments of touchscreen 112 is optionally similar to the multi-touch-sensing touchpad described in U.S. Pat. Nos. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and / or 6,677,932 (Westerman), and / or U.S. Patent Application Publication No. 2002 / 0015024 A1, which are incorporated by reference herein in their entireties. However, touchscreen 112 displays visual output from device 100, whereas touch-sensitive touchpads do not provide visual output.
[0063] Touch-sensitive displays in some embodiments of touchscreen 112 are described in the following applications: (1) U.S. Patent Application No. 11 / 381,313, filed May 2, 2006, entitled "Multipoint Touch Surface Controller"; (2) U.S. Patent Application No. 10 / 840,862, filed May 6, 2004, entitled "Multipoint Touchscreen"; (3) U.S. Patent Application No. 10 / 903,964, filed July 30, 2004, entitled "Gestures For Touch Sensitive Input Devices"; (4) U.S. Patent Application No. 11 / 048,264, filed January 31, 2005, entitled "Gestures For Touch Sensitive Input Devices"; (5) U.S. Patent Application No. 11 / 038,590, filed January 18, 2005, entitled "Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices"; (6) U.S. Patent Application No. 11 / 228,758, filed September 16, 2005, entitled "Virtual Input Device Placement On A Touch Screen User Interface"; (7) US Patent No. 11 / 228,700, filed September 16, 2005, entitled "Operation Of A Computer With A Touch Screen Interface," (8) US Patent No. 11 / 228,737, filed September 16, 2005, entitled "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard," and (9) US Patent No. 11 / 367,749, filed March 3, 2006, entitled "Multi-Functional Hand-Held Device," all of which are incorporated herein by reference in their entirety.
[0064] Touchscreen 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. A user optionally contacts touchscreen 112 using any suitable object or appendage, such as a stylus, finger, or the like. In some embodiments, the user interface is designed to function primarily through finger-based contact and gestures, which may be less precise than stylus-based input due to the large contact area of a finger on the touchscreen. In some embodiments, the device translates coarse finger-based input into precise pointer / cursor positions or commands to perform the user's desired actions.
[0065] In some embodiments, in addition to a touchscreen, device 100 optionally includes a touchpad for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touchscreen, does not display visual output. The touchpad is optionally a touch-sensitive surface separate from touchscreen 112 or an extension of the touch-sensitive surface formed by the touchscreen.
[0066] Device 100 also includes a power system 162 for providing power to the various components. Power system 162 optionally includes a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, power failure detection circuitry, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components associated with generating, managing, and distributing electrical power within a portable device.
[0067] 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 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. Light sensor 164 receives light from the environment, projected through one or more lenses, and converts the light into data representing an image. In conjunction with imaging module 143 (also referred to as a camera module), light sensor 164 optionally captures still images or video. In some embodiments, the light sensor is located on the back of device 100, opposite touchscreen display 112 on the front of the device, to enable the touchscreen display as a viewfinder for still and / or video image acquisition. In some embodiments, the light sensor is located on the front of the device to optionally obtain an image of the user for a videoconference while the user views other videoconference participants on the touchscreen display. In some embodiments, the position of the optical sensor 164 can be changed by the user (e.g., by rotating the lens and sensor within the device housing) so that a single optical sensor 164 is used in conjunction with a touchscreen display for both video conferencing and capturing still and / or video images.
[0068] Device 100 also optionally includes one or more depth camera sensors 175. FIG. 1A shows a depth camera sensor coupled to depth camera controller 169 in I / O subsystem 106. Depth camera sensor 175 receives data from the environment to create a three-dimensional model of an object (e.g., a face) in a scene from a viewpoint (e.g., the depth camera sensor). In some embodiments, in conjunction with imaging module 143 (also referred to as a camera module), depth camera sensor 175 is optionally used to determine a depth map of different portions of an image captured by imaging module 143. In some embodiments, a depth camera sensor is located on the front of device 100 to optionally obtain an image of a user with depth information for videoconferences while the user views other videoconference participants on a touchscreen display, and to capture selfie images with depth map data. In some embodiments, depth camera sensor 175 is located on the back of the device, or on the back and front of device 100. In some embodiments, the position of the depth camera sensor 175 can be changed by the user (e.g., by rotating the lens and sensor within the device housing) so that a single depth camera sensor 175 is used in conjunction with a touchscreen display for both video conferencing and capturing still and / or video images.
[0069] In some embodiments, a depth map (e.g., a depth map image) contains information (e.g., values) about the distance of objects in a scene from a viewpoint (e.g., a camera, light sensor, depth camera sensor). In one embodiment of a depth map, each depth pixel defines where a corresponding two-dimensional pixel is located on the z-axis of the viewpoint. In some embodiments, a depth map is composed of pixels, each defined by a value (e.g., 0 to 255). For example, a value of "0" represents the pixel located furthest away in a "three-dimensional" scene, and a value of "255" represents the pixel located closest to the viewpoint (e.g., a camera, light sensor, depth camera sensor) in the "three-dimensional" scene. In other embodiments, a depth map represents the distance between an object in a scene and the plane of the viewpoint. In some embodiments, a depth map contains information about the relative depth of various features of an object of interest in the view from a depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, a depth map contains information that enables a device to determine the z-direction contour of an object of interest.
[0070] Device 100 also optionally includes one or more contact intensity sensors 165. FIG. 1A shows a contact intensity sensor coupled to intensity sensor controller 159 in I / O subsystem 106. Contact intensity sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, piezoelectric force sensors, optical force sensors, capacitive touch-sensitive surfaces, or other intensity sensors (e.g., sensors used to measure the force (or pressure) of a contact on a touch-sensitive surface). Contact intensity sensor 165 receives contact intensity information (e.g., pressure information or a proxy for pressure information) from the surrounding environment. In some embodiments, at least one contact intensity sensor is located on or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact intensity sensor is located on the back of device 100, opposite touchscreen display 112, which is located on the front of device 100.
[0071] Device 100 also optionally includes one or more proximity sensors 166. FIG. 1A shows proximity sensor 166 coupled to peripheral interface 118. Alternatively, proximity sensor 166 is optionally coupled to input controller 160 within I / O subsystem 106. Proximity sensor 166 optionally functions as described in U.S. patent application Ser. Nos. 11 / 241,839, "Proximity Detector In Handheld Device," 11 / 240,788, "Proximity Detector In Handheld Device," 11 / 620,702, "Using Ambient Light Sensor To Augment Proximity Sensor Output," 11 / 586,862, "Automated Response To And Sensing Of User Activity In Portable Devices," and 11 / 638,251, "Methods And Systems For Automatic Configuration Of Peripherals," which are incorporated herein by reference. In some embodiments, the proximity sensor turns off and disables touchscreen 112 when the multifunction device is placed near the user's ear (eg, when the user is making a call).
[0072] Device 100 also optionally includes one or more tactile output generators 167. FIG. 1A shows tactile output generators coupled to haptic feedback controller 161 in I / O subsystem 106. Tactile output generator 167 optionally includes one or more electroacoustic devices, such as speakers or other audio components, and / or electromechanical devices that convert energy into linear motion, such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other tactile output generating components (e.g., components that convert electrical signals into tactile output on the device). Contact intensity sensor 165 receives tactile feedback generation instructions from tactile feedback module 133 and generates a tactile output on device 100 that can be sensed by a user of device 100. In some embodiments, at least one tactile output generator is disposed on or proximate to the touch-sensitive surface (e.g., touch-sensitive display system 112) and, optionally, generates a tactile output by moving the touch-sensitive surface vertically (e.g., in / out of the surface of device 100) or laterally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is disposed on the back of device 100, opposite touchscreen display 112, which is disposed on the front of device 100.
[0073] Device 100 also optionally includes one or more accelerometers 168. FIG. 1A shows accelerometer 168 coupled to peripherals interface 118. Alternatively, accelerometer 168 is optionally coupled to input controller 160 in I / O subsystem 106. Accelerometer 168 optionally functions as described in U.S. Patent Application Publication Nos. 20050190059, "Acceleration-based Theft Detection System for Portable Electronic Devices," and 20060017692, "Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer," both of which are incorporated by reference herein in their entireties. In some embodiments, information is displayed on a touchscreen display in portrait or landscape orientation based on an analysis of data received from the one or more accelerometers. In addition to accelerometer(s) 168, device 100 optionally includes a magnetometer and a GPS (or GLONASS or other global navigation system) receiver for obtaining information about the location and orientation (e.g., portrait or landscape) of device 100.
[0074] In some embodiments, the software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a touch / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a text input module (or instruction set) 134, a Global Positioning System (GPS) module (or instruction set) 135, and applications (or instruction sets) 136. Additionally, in some embodiments, as shown in FIGS. 1A and 3, memory 102 (FIG. 1A) or memory 370 (FIG. 3) stores device / global internal state 157. Device / global internal state 157 includes one or more of the following: an active application state, which indicates which applications, if any, are currently active; a display state, which indicates which applications, views, or other information occupy various regions of touchscreen display 112; a sensor state, which includes information obtained from the device's various sensors and input control devices 116; and location information regarding the device's position and / or orientation.
[0075] Operating system 126 (e.g., an embedded operating system such as Darwin®, RTXC®, LINUX®, UNIX®, OS X®, iOS®, WINDOWS®, or VxWorks®) includes various software components and / or drivers for controlling and managing common system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communication between various hardware and software components.
[0076] Communications module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by RF circuitry 108 and / or external port 124. External port 124 (e.g., Universal Serial Bus (USB), FIREWIRE®, etc.) is adapted to couple to other devices directly or indirectly through a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector the same as or similar to, and / or compatible with, the 30-pin connector used on iPod® (trademark of Apple Inc.) devices.
[0077] Contact / motion module 130 (in cooperation with display controller 156) optionally detects contact with touch screen 112 and other touch-sensing devices (e.g., a touchpad or physical click wheel). Contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether contact 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 contact movement and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-drag events), and determining whether the contact has ceased (e.g., detecting a finger-up event or cessation of contact). Contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of a contact point represented by the set of contact data optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point. These actions are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, contact / motion module 130 and display controller 156 detect contacts on the touchpad.
[0078] In some embodiments, contact / motion module 130 uses a set of one or more intensity thresholds for determining whether an action has been taken by a user (e.g., whether a user has “clicked” on an icon). In some embodiments, at least a subset of the intensity thresholds are determined according to software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a particular physical actuator and may be adjusted without modifying the physical hardware of device 100). For example, the mouse “click” threshold of a trackpad or touchscreen display can be set to any of a wide range of predetermined thresholds without modifying the trackpad or touchscreen display hardware. Additionally, in some implementations, a device user is provided with a software setting for adjusting one or more of the set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or by adjusting multiple intensity thresholds at once with a system-level click “intensity” parameter).
[0079] Contact / motion module 130 optionally detects gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different movements, timing, and / or intensity of the detected contact). Thus, gestures are optionally detected by detecting a particular contact pattern. For example, detecting a finger tap gesture includes detecting a finger down event (e.g., at the location of an icon), followed by detecting a finger lift (lift-off) event at the same location (or substantially the same location) as the finger down event. As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger down event, followed by detecting one or more finger drag events, followed by detecting a finger lift (lift-off) event.
[0080] Graphics module 132 includes various known software components for rendering and displaying graphics on touchscreen 112 or other display, including components for modifying the visual effects (e.g., brightness, transparency, saturation, contrast, or other visual characteristics) of the displayed graphics. As used herein, the term "graphics" includes any object that can be displayed to a user, including, but not limited to, text, web pages, icons (such as user interface objects including soft keys), digital images, video, and animation.
[0081] 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.
[0082] The tactile feedback module 133 includes various software components for generating instructions used by the tactile output generator(s) 167 to generate tactile outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0083] 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).
[0084] The GPS module 135 determines the location of the device and provides this information for use by 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).
[0085] The application 136 optionally includes the following modules (or sets of instructions), or a subset or superset thereof: • a contacts module 137 (sometimes called an address book or contact list); ●Telephone module 138, ●Videoconferencing module 139, ● an email client module 140; ● Instant messaging (IM) module 141; ●Training support module 142, a camera module 143 for still and / or video images, ● Image management module 144; ●Video player module, ●Music player module, ● Browser module 147, ●Calendar module 148, A widget module 149, optionally including one or more of a weather widget 149-1, a stock price widget 149-2, a calculator widget 149-3, an alarm clock widget 149-4, a dictionary widget 149-5 and other widgets obtained by the user, and a user-created widget 149-6; a widget creation module 150 for creating user-created widgets 149-6; ● Search module 151, A video and music player module 152 that integrates a video player module and a music player module; ● Memo module 153, Map module 154 and / or ●Online video module 155.
[0086] 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.
[0087] The contacts module 137, along with the touch screen 112, the display controller 156, the contact / motion module 130, the graphics module 132, and the text input module 134, is optionally used to manage an address book or contact list (e.g., stored in the memory 102 or in the application internal state 192 of the contacts module 137 in the memory 370), including adding a name(s) to the address book, deleting a name(s) from the address book, associating phone number(s), email address(es), street address(es), or other information with a name, associating an image with a name, categorizing and sorting names, providing phone numbers or email addresses to initiate and / or facilitate communication by telephone 138, videoconferencing module 139, email 140, or IM 141, and the like.
[0088] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, telephone module 138 is optionally used to enter a series of characters corresponding to a telephone number, access one or more telephone numbers in contacts module 137, modify an entered telephone number, dial the corresponding telephone number, conduct a conversation, and disconnect or hang up when the conversation is completed. As previously mentioned, wireless communication optionally uses any of a number of communication standards, protocols, and technologies.
[0089] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touch screen 112, display controller 156, light sensor 164, light sensor controller 158, touch / motion module 130, graphics module 132, text input module 134, contacts module 137, and telephone module 138, videoconferencing module 139 includes executable instructions for initiating, conducting, and terminating videoconferences between a user and one or more other participants in accordance with the user's instructions.
[0090] In cooperation with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, email client module 140 contains executable instructions for composing, sending, receiving, and managing emails in response to user instructions. In cooperation with image management module 144, email client module 140 makes it very easy to compose and send emails with still or video images captured by camera module 143.
[0091] In cooperation with RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions for entering text corresponding to an instant message, modifying entered text, sending the corresponding instant message (e.g., using Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for telephone-based instant messaging, or using XMPP, SIMPLE, or IMPS for Internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, sent and / or received instant messages optionally include graphics, photos, audio files, video files, and / or other attachments, such as those supported by MMS and / or Enhanced Messaging Service (EMS). As used herein, "instant messaging" refers to both telephone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0092] In conjunction with the RF circuitry 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 includes executable instructions for creating workouts (e.g., with time, distance, and / or calorie burn goals), communicating with training sensors (sports devices), receiving training sensor data, calibrating sensors used to monitor workouts, selecting and playing music for workouts, and displaying, storing, and transmitting workout data.
[0093] In cooperation with touch screen 112, display controller 156, light sensor(s) 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, camera module 143 contains executable instructions to capture still images or video (including video streams) and store them in memory 102, modify characteristics of the still images or video, or delete the still images or video from memory 102.
[0094] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, image management module 144 includes executable instructions for arranging, modifying (e.g., editing) or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slide show or album), and storing still and / or video images.
[0095] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, browser module 147 contains executable instructions for browsing the Internet according to user instructions, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0096] In conjunction with RF circuitry 108, touch screen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 contains executable instructions for creating, displaying, modifying, and storing calendars and data associated with calendars (e.g., calendar entries, to-do lists, etc.) in accordance with user instructions.
[0097] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget module 149 is a mini-application (e.g., weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5) that is optionally downloaded and used by a user, or a mini-application (e.g., user-created widget 149-6) created by a user. In some embodiments, a widget includes a Hypertext Markup Language (HTML) file, a Cascading Style Sheets (CSS) file, and a JavaScript file. In some embodiments, a widget includes an Extensible Markup Language (XML) file and a JavaScript file (e.g., Yahoo! Widgets).
[0098] In conjunction with RF circuitry 108, touch screen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, and browser module 147, widget creation module 150 is optionally used by a user to create widgets (e.g., turn user-specified portions of a web page into widgets).
[0099] In cooperation with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, search module 151 contains executable instructions for searching memory 102 for text, music, sound, images, video, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms) in accordance with a user's instructions.
[0100] In conjunction with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 contains executable instructions that enable a user to download and play pre-recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, as well as executable instructions for displaying, presenting, or otherwise playing videos (on touchscreen 112 or on an external display connected via external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).
[0101] In conjunction with touch screen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, notes module 153 contains executable instructions for creating and managing notes, to-do lists, and the like, in accordance with user instructions.
[0102] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, touch / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 is used to receive, display, modify, and store maps and data associated with maps (e.g., driving directions, data for businesses and other points of interest at or near a particular location, and other location-based data), optionally in accordance with user instructions.
[0103] In cooperation with touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 contains instructions that enable a user to access, view, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124), and send and otherwise manage emails containing links to particular online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141 is used to send links to particular online videos, rather than email client module 140. Additional description of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, filed June 20, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," and U.S. Patent Application No. 11 / 968,067, filed December 31, 2007, entitled "Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos," the contents of which are incorporated herein by reference in their entireties.
[0104] Each of the above-identified modules and applications corresponds to an executable set of instructions and methods described herein (e.g., computer-implemented methods and other information processing methods described herein) for performing one or more of the above functions. These modules (e.g., sets of instructions) need not be implemented as separate software program procedures or modules; thus, in various embodiments, various subsets of these modules are optionally combined or otherwise rearranged. For example, a video player module is optionally combined with a music player module into a single module (e.g., video and music player module 152 of FIG. 1A). In some embodiments, memory 102 optionally stores a subset of the above-identified modules and data structures. Additionally, memory 102 optionally stores additional modules and data structures not previously described.
[0105] In some embodiments, device 100 is a device in which operation of a predetermined set of functions on the device is performed exclusively through a touchscreen and / or touchpad. By using the touchscreen and / or touchpad as the primary input control device for operation of device 100, the number of physical input control devices (pushbuttons, dials, etc.) on device 100 is optionally reduced.
[0106] The predetermined set of functions performed exclusively through the touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 to a main menu, home menu, or root menu from any user interface displayed on device 100. In such embodiments, a "menu button" is implemented using the touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device instead of a touchpad.
[0107] 1B is a block diagram illustrating exemplary components for event processing, according to some embodiments. In some embodiments, memory 102 (FIG. 1A) or memory 370 (FIG. 3) includes event sorter 170 (e.g., in operating system 126) and corresponding application 136-1 (e.g., any of applications 137-151, 155, 380-390 described above).
[0108] Event sorter 170 receives the event information and determines application 136-1 and application view 191 of application 136-1 to which the event information should be delivered. Event sorter 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192 that indicates the current application view(s) that are displayed on touch-sensitive display 112 when the application is active or running. In some embodiments, device / global internal state 157 is used by event sorter 170 to determine which application is currently active, and application internal state 192 is used by event sorter 170 to determine which application is currently active, and application view 191 to which the event information should be delivered.
[0109] In some embodiments, application internal state 192 includes additional information such as one or more of resume information used when application 136-1 resumes execution, user interface state information indicating information being displayed or prepared for display by application 136-1, a state queue to allow the user to return to a previous state or view of application 136-1, and a redo / undo queue of previous actions taken by the user.
[0110] Event monitor 171 receives event information from peripherals interface 118. The event information includes information about sub-events (e.g., a user touch on touch-sensitive display 112 as part of a multi-touch gesture). Peripherals interface 118 transmits information it receives from I / O subsystem 106 or sensors such as proximity sensor 166, accelerometer(s) 168, and / or microphone 113 (through audio circuitry 110). Information that peripherals interface 118 receives from I / O subsystem 106 includes information from touch-sensitive display 112 or a touch-sensitive surface.
[0111] In some embodiments, event monitor 171 sends requests to peripherals interface 118 at predetermined intervals. In response, peripherals interface 118 transmits event information. In other embodiments, peripherals interface 118 transmits event information only when there is a significant event (e.g., receiving an input above a predetermined noise threshold and / or for longer than a predetermined duration).
[0112] In some embodiments, event sorter 170 also includes a hit view determination module 172 and / or an active event recognizer determination module 173 .
[0113] Hit view determination module 172 provides software procedures for determining where a sub-event occurred within one or more views when touch-sensitive display 112 displays one or more views. A view consists of controls and other elements that a user can see on the display.
[0114] Another aspect of a user interface associated with an application is a set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application views (of the respective applications) in which touches are detected optionally correspond to programmatic levels within the application's programmatic or view hierarchy. For example, the lowest-level view in which a touch is detected is optionally referred to as a hit view, and the set of events that are recognized as appropriate inputs is optionally determined based at least in part on the hit view of the initial touch that initiates the touch-based gesture.
[0115] Hit view determination module 172 receives information related to sub-events of a touch-based gesture. When an application has multiple views organized in a hierarchy, hit view determination module 172 identifies the hit view as the lowest view in the hierarchy that should process the sub-events. In most situations, the hit view is the lowest-level view in which the first sub-event occurs (e.g., the first sub-event in a sequence of sub-events that form an event or potential event). Once a hit view is identified by hit view determination module 172, the hit view typically receives all sub-events related to the same touch or input source for which it was identified as the hit view.
[0116] Active event recognizer determination module 173 determines which view(s) in the view hierarchy should receive a particular sequence of sub-events. In some embodiments, active event recognizer determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, active event recognizer determination module 173 determines that all views that contain the physical location of the sub-events are actively participating views, and therefore determines that all actively participating views should receive a particular sequence of sub-events. In other embodiments, even if a touch sub-event is completely confined to the region associated with one particular view, views higher in the hierarchy remain actively participating views.
[0117] Event dispatcher module 174 dispatches event information to event recognizers (e.g., event recognizer 180). In embodiments that include active event recognizer determination module 173, event dispatcher module 174 delivers event information to the event recognizers determined by active event recognizer determination module 173. In some embodiments, event dispatcher module 174 stores event information obtained by corresponding event receivers 182 in an event queue.
[0118] In some embodiments, operating system 126 includes event sorter 170. Alternatively, application 136-1 includes event sorter 170. In still other embodiments, event sorter 170 is a stand-alone module or part of another module stored in memory 102, such as contact / motion module 130.
[0119] In some embodiments, application 136-1 includes multiple event handlers 190 and one or more application views 191, each containing instructions for processing touch events that occur within a corresponding view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognizers 180. Typically, a corresponding application view 191 includes multiple event recognizers 180. In other embodiments, one or more of event recognizers 180 are part of a separate module, such as a user interface kit or a higher-level object, from which application 136-1 inherits methods and other properties. In some embodiments, a corresponding event handler 190 includes one or more of data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. Event handler 190 optionally utilizes or invokes data updater 176, object updater 177, or GUI updater 178 to update application internal state 192. Alternatively, one or more of the application views 191 include one or more corresponding 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 the corresponding application view 191.
[0120] A corresponding event recognizer 180 receives event information (e.g., event data 179) from event sorter 170 and identifies an event from the event information. Event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, event recognizer 180 also includes metadata 183 and at least a subset of event delivery instructions 188 (optionally including sub-event delivery instructions).
[0121] Event receiver 182 receives event information from event sorter 170. The event information includes information about a sub-event, e.g., a touch or touch movement. Depending on the sub-event, the event information also includes additional information, such as the location of the sub-event. When the sub-event involves touch movement, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, the event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape or vice versa), and the event information includes corresponding information about the device's current orientation (also called the device's attitude).
[0122] The event comparator 184 compares the event information with predetermined event or sub-event definitions and determines the event or sub-event, or determines or updates the state of the event or sub-event, based on the comparison. In some embodiments, the event comparator 184 includes an event definition 186. The event definition 186 includes a definition of an event (e.g., a predetermined series of sub-events), such as Event 1 (187-1), Event 2 (187-2), etc. In some embodiments, the sub-events in the event (187) include, for example, a touch start, a touch end, a touch movement, a touch stop, and multiple touches. In one example, the definition of Event 1 (187-1) is a double tap on a displayed object. The double tap includes, for example, a first touch on the displayed object at a predetermined stage (touch start), a first lift-off (touch end) at the predetermined stage, a second touch on the displayed object at the predetermined stage (touch start), and a second lift-off (touch end) at the predetermined stage. In another example, a definition of event 2 (187-2) is a drag operation on a displayed object, including, for example, a touch (or contact) on the displayed object at a predetermined stage, a movement of the touch across the touch-sensitive display 112, and a lift-off of the touch (end of the touch). In some embodiments, the event also includes information about one or more associated event handlers 190.
[0123] In some embodiments, event definitions 187 include definitions of events for each user interface object. In some embodiments, event comparator 184 performs a hit test to determine which user interface object is associated with a sub-event. For example, in an application view in which three user interface objects are displayed on touch-sensitive display 112, if a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a corresponding event handler 190, event comparator 184 uses the results of the hit test to determine which event handler 190 should be activated. For example, event comparator 184 selects an event handler associated with the object and a sub-event that triggers the hit test.
[0124] In some embodiments, the definition of the corresponding event (187) also includes a delay action that delays delivery of the event information until after it has been determined whether the set of sub-events corresponds to the event recognizer's event type.
[0125] When the corresponding event recognizer 180 determines that the sequence of sub-events does not match any of the events in the event definition 186, the corresponding event recognizer 180 enters an event disabled, event failed, or event finished state and thereafter ignores the sub-events of the subsequent touch-based gesture. In this situation, other event recognizers, if any, that remain active for the hit view continue to track and process the sub-events of the ongoing touch-based gesture.
[0126] In some embodiments, corresponding event recognizers 180 include metadata 183 with configurable properties, flags, and / or lists that indicate to actively participating event recognizers how the event delivery system should handle sub-event delivery. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate how event recognizers interact or are enabled to interact with each other. In some embodiments, metadata 183 includes configurable properties, flags, and / or lists that indicate whether sub-events are delivered to various levels in the view or programmatic hierarchy.
[0127] 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 action.
[0128] 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 to an actively participating view receives the event information and performs predetermined processing.
[0129] In some embodiments, data updater 176 creates and updates data used by application 136-1. For example, data updater 176 updates phone numbers used by contacts module 137 or stores video files used by a video player module. In some embodiments, object updater 177 creates and updates objects used by application 136-1. For example, object updater 177 creates new user interface objects or updates the positions of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends the display information to graphics module 132 for display on the touch-sensitive display.
[0130] 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.
[0131] It should be understood that the foregoing discussion regarding event processing of a user's touch on a touch-sensitive display also applies to other forms of user input for operating multifunction device 100 with input devices, not all of which are initiated on the touchscreen. For example, mouse movements and mouse button presses, optionally adapted to single or multiple keyboard presses or holds, touch movements such as tapping, dragging, scrolling on a touchpad, pen stylus input, device movements, verbal commands, detected eye movements, biometric input, and / or any combination thereof, are optionally utilized as inputs corresponding to sub-events that define the event to be recognized.
[0132] FIG. 2 illustrates portable multifunction device 100 having touchscreen 112, according to some embodiments. The touchscreen optionally displays one or more graphics within user interface (UI) 200. In this embodiment, as well as other embodiments described below, a user can select one or more of the graphics by making a gesture on the graphics, for example, with one or more fingers 202 (not drawn to scale) or one or more styluses 203 (not drawn to scale). In some embodiments, selection of one or more graphics occurs when the user loses contact with the one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, upward and / or downward), and / or rolling of a finger in contact with device 100 (right to left, left to right, upward and / or downward). In some implementations or situations, accidental contact with a graphic does not select the graphic. For example, a swipe gesture sweeping over an application icon optionally does not select the corresponding application when the gesture corresponding to selection is a tap.
[0133] Device 100 also optionally includes one or more physical buttons, such as a "home" or menu button 204. As mentioned above, menu button 204 is optionally used for navigation to any application 136 within a set of applications optionally running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on touchscreen 112.
[0134] In some embodiments, device 100 includes touchscreen 112, menu button 204, pushbutton 206 for turning power to the device on / off and locking the device, volume control button(s) 208, subscriber identity module (SIM) card slot 210, headset jack 212, and external docking / charging port 124. Pushbutton 206 is optionally used to turn power on / off on the device by pressing and holding the button down for a predetermined period of time, lock the device by pressing and releasing the button before the predetermined period of time has elapsed, and / or unlock the device or initiate an unlocking process. In an alternative embodiment, device 100 also accepts verbal input for activating or deactivating certain functions through microphone 113. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of a contact on touchscreen 112 and / or one or more tactile output generators 167 for generating a tactile output for a user of device 100.
[0135] FIG. 3 is a block diagram of an exemplary multifunction device with a display and a touch-sensitive surface, according to some embodiments. Device 300 need not be portable. In some embodiments, device 300 is a laptop computer, a desktop computer, a tablet computer, a multimedia module device, a navigation device, an educational device (such as a child's learning toy), a gaming system, or a control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 for interconnecting these components. Communication bus 320 optionally includes circuitry (sometimes called a chipset) that interconnects and controls communication between system components. Device 300 includes input / output (I / O) interfaces 330, including a display 340, which is typically a touchscreen display. I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350 and a touchpad 355, a tactile output generator 357 (e.g., similar to tactile output generator(s) 167 described above with reference to FIG. 1A ) for generating tactile output on device 300, sensors 359 (e.g., optical sensors, acceleration sensors, proximity sensors, touch-sensitive sensors, and / or contact intensity sensors similar to contact intensity sensor(s) 165 described above with reference to FIG. 1A ). Memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory 370 optionally includes one or more storage devices located remotely from CPU(s) 310.In some embodiments, memory 370 stores programs, modules, and data structures similar to, or a subset of, the programs, modules, and data structures stored in memory 102 of portable multifunction device 100 (FIG. 1A). Additionally, memory 370 optionally stores additional programs, modules, and data structures not present in memory 102 of portable multifunction device 100. For example, memory 370 of device 300 optionally stores drawing module 380, presentation module 382, word processing module 384, website creation module 386, disk authoring module 388, and / or spreadsheet module 390, while memory 102 of portable multifunction device 100 (FIG. 1A) optionally does not store these modules.
[0136] 3 are optionally stored in one or more of the memory devices mentioned above. Each of the above-identified modules corresponds to an instruction set that performs the functions described above. The above-identified modules or programs (e.g., instruction sets) need not be implemented as separate software programs, procedures, or modules; thus, in various embodiments, various subsets of these modules are combined or optionally rearranged in other manners. 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.
[0137] Attention is now directed to embodiments of user interfaces that are optionally implemented on portable multifunction device 100, for example.
[0138] 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 audiomail messages; an icon 418 for the email client module 140, labeled "Mail," optionally including an indicator 410 of the number of unread emails; ○ An icon 420 for the browser module 147, labeled "Browser", and ○ An icon 422 labeled "iPod" for the video and music player module 152, also referred to as the iPod (trademark of Apple Inc.) module 152; and ●Icons for other applications such as: ○ Icon 424 for IM module 141, labeled "Messages"; ○ Icon 426 for the calendar module 148, labeled "Calendar" ○ Icon 428 for the image management module 144, labeled "Photos" ○ An icon 430 for the camera module 143, labeled "camera"; ○ Icon 432 for the online video module 155, labeled "Online Video" Icon 434 for stock price widget 149-2, labeled "Stock Prices" ○ Icon 436 for map module 154, labeled "Map" ○ Icon 438 for weather widget 149-1, labeled "Weather" ○ Icon 440 for alarm clock widget 149-4, labeled "Clock" ○ Icon 442 for Training Support Module 142, labeled "Training Support"; ○ An icon 444 for the notes module 153, labeled "Notes," and An icon 446 for a settings application or module, labeled "Settings," that provides access to settings related to the device 100 and its various applications 136.
[0139] 4A are merely exemplary. For example, icon 422 for video and music player module 152 is labeled "Music" or "Music Player." Other labels are optionally used for the various application icons. In some embodiments, the label of each application icon includes the name of the application corresponding to the respective application icon. In some embodiments, the label of a particular application icon is different from the name of the application corresponding to the particular application icon.
[0140] 4B shows an exemplary user interface on a device (e.g., device 300 of FIG. 3) that includes a touch-sensitive surface 451 (e.g., tablet or touchpad 355 of FIG. 3) that is separate from display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) for detecting the intensity of a contact on touch-sensitive surface 451 and / or one or more tactile output generators 357 for generating a tactile output for a user of device 300.
[0141] Although some of the following examples are described 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 that is separate from the display, as shown in FIG. 4B . In some embodiments, this touch-sensitive surface (e.g., 451 in FIG. 4B ) has a major axis (e.g., 452 in FIG. 4B ) that corresponds to a major axis (e.g., 453 in FIG. 4B ) on the display (e.g., 450). According to these embodiments, the device detects contact with touch-sensitive surface 451 (e.g., 460 and 462 in FIG. 4B ) at locations that correspond to respective locations on the display (e.g., in FIG. 4B , 460 corresponds to 468 and 462 corresponds to 470). In this manner, when the touch-sensitive surface is separate from the display, user input (e.g., contacts 460 and 462 and their movement) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4B ) is used by the device to operate a user interface on the display (e.g., 450 in FIG. 4B ) of the multifunction device. It should be understood that similar methods are optionally used for the other user interfaces described herein.
[0142] Furthermore, while the following examples are described primarily with reference to finger input (e.g., finger contacts, finger tap gestures, finger swipe gestures), it should be understood that in some embodiments, one or more of the finger inputs are replaced with input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture is optionally replaced with a mouse click (e.g., instead of a contact), followed by cursor movement along the path of the swipe (e.g., instead of a contact movement). As another example, a tap gesture is optionally replaced with a mouse click while the cursor is positioned over the location of the tap gesture (e.g., instead of a contact detection followed by cessation of contact detection). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice are optionally used simultaneously, or a mouse and finger contacts are optionally used simultaneously.
[0143] FIG. 5A shows an exemplary personal electronic device 500. Device 500 includes a main body 502. In some embodiments, device 500 may include some or all of the features described with respect to devices 100 and 300 (e.g., FIGS. 1A-4B ). In some embodiments, device 500 has a touch-sensitive display screen 504 (hereinafter, touch screen 504). Instead of, or in addition to, touch screen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touch screen 504 (or the touch-sensitive surface) optionally includes one or more intensity sensors for detecting the intensity of an applied contact (e.g., a touch). The one or more intensity sensors in touch screen 504 (or the touch-sensitive surface) can provide output data representing the intensity of the touch. A user interface of device 500 can respond to a touch based on the intensity of the touch, meaning that touches of different intensities can invoke different user interface actions on device 500.
[0144] Exemplary techniques for detecting and processing touch intensity can be found, for example, in related applications, International Patent Application No. PCT / US2013 / 040061, filed May 8, 2013, entitled "Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application" (published as WO 2013 / 169849), and International Patent Application No. PCT / US2013 / 069483, filed November 11, 2013, entitled "Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships" (published as WO 2014 / 105276), each of which is incorporated herein by reference in its entirety.
[0145] In some embodiments, device 500 has one or more input mechanisms 506 and 508. Input mechanisms 506 and 508, if included, can be physical. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, allow device 500 to be attached to, for example, hats, eyewear, earrings, necklaces, shirts, jackets, bracelets, watch bands, chains, pants, belts, shoes, wallets, backpacks, etc. These attachment mechanisms allow device 500 to be worn by a user.
[0146] FIG. 5B illustrates an exemplary personal electronic device 500. In some embodiments, device 500 may include some or all of the components described with respect to FIGS. 1A, 1B, and 3. Device 500 has a bus 512 operably coupling I / O unit 514 to one or more computer processors 516 and memory 518. I / O unit 514 may be connected to a display 504, which may have touch-sensing components 522 and, optionally, an intensity sensor 524 (e.g., a contact intensity sensor). Additionally, I / O unit 514 may connect to a communication unit 530 for receiving application and operating system data using Wi-Fi, Bluetooth, near-field communication (NFC), cellular, and / or other wireless communication technologies. Device 500 may include input mechanisms 506 and / or 508. Input mechanism 506 is optionally a rotatable input device or a depressible and rotatable input device, for example. Input mechanism 508 is optionally, in some examples, a button.
[0147] The input mechanism 508 is optionally, in some examples, a microphone. The personal electronic device 500 optionally includes various sensors, such as a GPS sensor 532, an accelerometer 534, an orientation sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or combinations thereof, all of which may be operably connected to the I / O section 514.
[0148] The memory 518 of the personal electronic device 500 may include one or more non-transitory computer-readable storage media for storing computer-executable instructions that, when executed by one or more computer processors 516, may cause the computer processors to perform, for example, the techniques described below, including processes 700, 900, 1100, 1300, and 1500 (FIGS. 7A-7F, 9A-9K, 11A-11F, 13A-13D, and 15A-15C). A computer-readable storage medium may be any medium that can tangibly contain or store computer-executable instructions for use by or in connection with an instruction execution system, apparatus, or device. In some examples, the storage medium is a transient computer-readable storage medium. In some examples, the storage medium is a non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may include, but are not limited to, magnetic, optical, and / or semiconductor storage devices. Examples of such storage devices include magnetic disks, optical disks based on CD, DVD, or Blu-ray technology, and persistent solid-state memory such as flash, solid-state drives, etc. Personal electronic device 500 is not limited to the components and configuration of Figure 5B and may include other or additional components in multiple configurations.
[0149] As used herein, the term "affordance" refers to a user-interactive graphical user interface object that is optionally displayed on a display screen of device 100, 300, and / or 500 (FIGS. 1, 3, and 5A-5B). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each optionally constitute an affordance.
[0150] As used herein, the term “focus selector” refers to an input element that indicates the current portion of a user interface with which a user is interacting. In some implementations involving a cursor or other position marker, the cursor acts as the “focus selector,” and 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 112 in FIG. 4A ) that allows direct interaction with user interface elements on the touchscreen display, contact detected on the touchscreen acts as the “focus selector,” such that when input (e.g., a press input by contact) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one region of the user interface to another region of the user interface (e.g., by using the tab key or arrow keys to move focus from one button to another) without corresponding cursor movement or contact movement on the touchscreen display, and in those implementations, the focus selector moves to follow the movement of focus between different regions of the user interface. Regardless of the specific form taken by the focus selector, the focus selector is generally a user interface element (or contact on a touchscreen display) that is controlled by the user to communicate the user's intended interaction with the user interface (e.g., by indicating to the device the element of the user interface that the user intends to interact with).For example, when a press input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen), the position of a focus selector (e.g., a cursor, contact, or selection box) over a corresponding button indicates that the user intends to activate the corresponding button (rather than other user interface elements shown on the device's display).
[0151] As used herein and in the claims, the term "characteristic intensity" of a contact refers to a characteristic of the contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on a plurality of intensity samples. The characteristic intensity is optionally based on a predetermined number of intensity samples or a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) for a predetermined event (e.g., after detecting the contact, before detecting lift-off of the contact, before or after detecting the start of contact movement, before detecting the end of the contact, before or after detecting an increase in the intensity of the contact, and / or before or after detecting a decrease in the intensity of the contact). The characteristic intensity of the contact is optionally based on one or more of the maximum intensity of the contact, the mean value of the intensity of the contact, the average value of the intensity of the contact, the top 10% of the intensity values of the contact, half the maximum intensity value of the contact, 90% of the maximum intensity value of the contact, etc. In some embodiments, the duration of the contact is used to determine the characteristic intensity (e.g., when the characteristic intensity is an average of the intensity of the contact over time). In some embodiments, the characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an operation was performed by the user. For example, the set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, a contact having a characteristic intensity that does not exceed the first threshold results in a first action, a contact having a characteristic intensity that exceeds the first intensity threshold but not the second intensity threshold results in a second action, and a contact having a characteristic intensity that exceeds the second threshold results in a third action. In some embodiments, the comparison between the characteristic intensity and the one or more thresholds is not used to determine whether to perform the first or second action, but rather to determine whether to perform one or more actions (e.g., whether to perform each action or to forgo performing each action).
[0152] FIG. 5C illustrates the detection of multiple contacts 552A-552E on touch-sensitive display screen 504 by multiple intensity sensors 524A-524D. FIG. 5C additionally includes an intensity diagram illustrating the current intensity measurements of intensity sensors 524A-524D relative to intensity units. In this example, intensity sensors 524A and 524D each measure 9 intensity units, and intensity sensors 524B and 524C each measure 7 intensity units. In some implementations, the total intensity is the sum of the intensity measurements of multiple intensity sensors 524A-524D, which in this example is 32 intensity units. In some embodiments, each contact is assigned a respective intensity that is a fraction of the total intensity. FIG. 5D illustrates the assignment of total intensity to contacts 552A-552E based on the distance of contacts 552A-552E from center of force 554. In this example, contacts 552A, 552B, and 552E are each assigned a contact intensity of 8 intensity units of the total intensity, and contacts 552C and 552D are each assigned a contact intensity of 4 intensity units of the total intensity. More generally, in some implementations, each contact j is assigned a respective intensity Ij, which is a portion of the total intensity A, according to a predetermined mathematical function Ij=A·(Dj / ΣDi), where Dj is the distance from the center of force to the respective contact j, and ΣDi is the sum of the distances from the center of force to all respective contacts (e.g., from i=1 to the end). The operations described with reference to FIGS. 5C-5D can be performed using electronic devices similar to or identical to device 100, 300, or 500. In some embodiments, the characteristic intensity of a contact is based on one or more intensities of the contact. In some embodiments, an intensity sensor is used to determine a single characteristic intensity (e.g., a single characteristic intensity of a single contact). Note that the intensity plots are not part of the displayed user interface, but are included in FIGS. 5C-5D for the reader's convenience.
[0153] In some embodiments, portions of the gesture are identified for purposes of determining the characteristic intensity. For example, the touch-sensitive surface optionally receives successive swipe contacts that transition from a start position to an end position, where the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end position is optionally based on only a portion of the swipe contacts (e.g., only the portion of the swipe contact at the end position), rather than the entire successive swipe contacts. In some embodiments, a smoothing algorithm is optionally applied to the intensity of the swipe contacts before determining the characteristic intensity of the contact. For example, the smoothing algorithm optionally includes one or more of an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, the smoothing algorithms remove small increases or decreases in the intensity of the swipe contacts for purposes of determining the characteristic intensity.
[0154] The intensity of the contact on the touch-sensitive surface is optionally characterized relative to one or more intensity thresholds, such as a contact-detection intensity threshold, a light pressure intensity threshold, a deep pressure intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light pressure intensity threshold corresponds to an intensity at which the device performs an operation typically associated with clicking a physical mouse button or trackpad. In some embodiments, the deep pressure intensity threshold corresponds to an intensity at which the device performs an operation different from an operation typically associated with clicking a physical mouse button or trackpad. In some embodiments, if the contact is detected with a characteristic intensity below the light pressure intensity threshold (e.g., and above a slight contact-detection intensity threshold below which the contact is not detected), the device moves the focus selector according to the movement of the contact on the touch-sensitive surface without performing any action associated with the light pressure intensity threshold or the deep pressure intensity threshold. Generally, unless otherwise specified, these intensity thresholds are consistent across different sets of user interface diagrams.
[0155] An increase in the characteristic intensity of a contact from an intensity below the light pressure intensity threshold to an intensity between the light pressure intensity threshold and the deep pressure intensity threshold may be referred to as a "light press" input. An increase in the characteristic intensity of a contact from an intensity below the deep pressure intensity threshold to an intensity above the deep pressure intensity threshold may be referred to as a "deep press" input. An increase in the characteristic intensity of a contact from an intensity below the contact-detection intensity threshold to an intensity between the contact-detection intensity threshold and the light pressure intensity threshold may be referred to as detecting a contact on the touch surface. A decrease in the characteristic intensity of a contact from an intensity above the contact-detection intensity threshold to an intensity below the contact-detection intensity threshold may be referred to as detecting a lift-off of the contact from the touch surface. In some embodiments, the contact-detection intensity threshold is zero. In some embodiments, the contact-detection intensity threshold is greater than zero.
[0156] In some embodiments described herein, one or more operations are performed in response to detecting a gesture including the respective pressure input, or in response to detecting the respective pressure input made with the respective contact (or contacts), where the respective pressure inputs are detected based at least in part on detecting an increase in intensity of the contact (or contacts) above a pressure input intensity threshold. In some embodiments, the respective actions are performed in response to detecting an increase in intensity of the respective contact (e.g., a "downstroke" of the respective pressure input) above the pressure input intensity threshold. In some embodiments, the pressure input includes an increase in intensity of the respective contact above the pressure input intensity threshold and a subsequent decrease in intensity of the contact below the pressure input intensity threshold, where the respective actions are performed in response to detecting a subsequent decrease in intensity of the respective contact below the pressure input intensity threshold (e.g., an "upstroke" of the respective pressure input).
[0157] Figures 5E to 5H show the results of the light pressure intensity threshold (e.g., "IT" in Figure 5E). L " ) to the deep press intensity threshold (e.g., "IT D5 illustrates the detection of a gesture including a press input corresponding to an increase in the intensity of contact 562 to an intensity above a deep pressure intensity threshold (e.g., "IT D ") and reaches a peak. Contact 562 is maintained on touch-sensitive surface 560. Upon detecting the gesture, and during the gesture, a deep pressure intensity threshold (e.g., "IT D "), display reduced representations 578A-578C (e.g., thumbnails) of recently opened documents for app2, as shown in FIGS. 5F-5H. In some embodiments, the intensity that is compared to one or more intensity thresholds is a characteristic intensity of the contact. Note that the intensity diagram of contact 562 is not part of the displayed user interface, but is included in FIGS. 5E-5H for the reader's benefit.
[0158] In some embodiments, the display of representations 578A-578C includes animation. For example, representation 578A is initially displayed near application icon 572B, as shown in FIG. 5F. As the animation progresses, representation 578A moves up, displaying representation 578B near application icon 572B, as shown in FIG. 5G. Then, as shown in FIG. 5H, representation 578A moves up, and representation 578B moves up toward representation 578A, displaying representation 578C near application icon 572B. Representations 578A-578C form an array above icon 572B. In some embodiments, the animation progresses as a function of the intensity of contact 562, as shown in FIGS. 5F-5G, where the intensity of contact 562 exceeds a deep pressure intensity threshold (e.g., "ITD Representations 578A-578C appear and move upward as the intensity increases toward "0." In some embodiments, the intensity on which the animation progression is based is a characteristic intensity of the contact. The operations described with reference to FIGS. 5E-5H can be performed using electronic devices similar to or identical to device 100, 300, or 500.
[0159] In some embodiments, the device employs intensity hysteresis to avoid accidental inputs, sometimes referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold having a predetermined relationship to the pressure input intensity threshold (e.g., the hysteresis intensity threshold is X intensity units below the pressure input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the pressure input intensity threshold). Thus, in some embodiments, the pressure input includes a corresponding increase in the intensity of the contact above the pressure input intensity threshold and a subsequent decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold, and a corresponding action is taken in response to detecting a subsequent decrease in the intensity of the corresponding contact below the hysteresis intensity threshold (e.g., an “upstroke” of the corresponding pressure input). Similarly, in some embodiments, a pressure input is detected only when the device detects an increase in the intensity of the contact from an intensity below the hysteresis intensity threshold to an intensity above the pressure input intensity threshold, and optionally a subsequent decrease in the intensity of the contact to an intensity below the hysteresis intensity, and a corresponding action is taken in response to detecting the pressure input (e.g., an increase in the intensity of the contact or a decrease in the intensity of the contact, as the case may be).
[0160] For ease of explanation, actions described as being performed in response to a pressure input associated with a pressure input intensity threshold or in response to a gesture including the pressure input are optionally triggered in response to detecting any of an increase in the intensity of the contact above the pressure input intensity threshold, an increase in the intensity of the contact from an intensity below a hysteresis intensity threshold to an intensity above the pressure input intensity threshold, a decrease in the intensity of the contact below the pressure input intensity threshold, and / or a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to the pressure input intensity threshold. Additionally, in examples described as performing an action in response to detecting a decrease in the intensity of the contact below a pressure input intensity threshold, the action is optionally performed in response to detecting a decrease in the intensity of the contact below a hysteresis intensity threshold corresponding to and lower than the pressure input intensity threshold.
[0161] As used herein, an "installed application" refers to a software application that has been downloaded to an electronic device (e.g., device 100, 300, and / or 500) and is ready to be launched (e.g., opened) on that device. In some embodiments, a downloaded application becomes an installed application by an installation program that extracts program portions from a downloaded package and integrates the extracted portions with the computer system's operating system.
[0162] As used herein, the terms "open application" or "running application" refer to a software application for which state information is maintained (e.g., as part of device / global internal state 157 and / or application internal state 192). An open or running application is, optionally, any one of the following types of application: ● The active application currently displayed on the display screen of the device on which the application is being used; Background applications (or processes) that are not currently displayed, but whose associated tasks are being processed by one or more processors; and A stopped or hibernated application that is not running but has state information stored in memory (volatile and / or non-volatile, respectively) that can be used to resume execution of that application.
[0163] As used herein, the term "closed application" refers to a software application for which no state information is maintained (e.g., no state information about a closed application is stored in the device's memory). Thus, closing an application includes stopping and / or removing application processing for that application and removing state information about that application from the device's memory. Generally, opening a second application while a first application is running does not close the first application. Once the second application is displayed and the first application ceases to be displayed, the first application becomes a background application.
[0164] Attention is now directed to embodiments of user interfaces (“UIs”) and associated processes implemented on electronic devices such as portable multifunction device 100, device 300, or device 500.
[0165] Figures 6A-6AF illustrate exemplary user interfaces for initiating and joining a live communication session (e.g., from a messaging application) according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes of Figures 7A-7F.
[0166] 6A illustrates a device 600 with a touch-sensitive display 602. In some embodiments, device 600 includes one or more features of devices 100, 300, and 500. In some embodiments, device 600 also includes a camera 603, which includes an image sensor capable of capturing data representing at least a portion of the light spectrum (e.g., visible light, infrared light, or ultraviolet light). In some embodiments, camera 603 includes multiple image sensors and / or other types of sensors. In addition to capturing data representing sensed light, in some embodiments, camera 603 can capture other types of data, such as depth data. For example, in some embodiments, camera 603 also captures depth data using speckle, time-of-flight, parallax, or focus-based techniques. Image data that device 600 captures using camera 603 includes data corresponding to a portion of the light spectrum for a scene within the camera's field of view. Additionally, in some embodiments, the captured image data also includes depth data for the light data. In some other embodiments, the captured image data includes sufficient data to determine or generate depth data for a portion of the light spectrum.
[0167] In some examples, electronic device 600 includes a depth camera (e.g., as part of camera 603), such as an infrared camera, a thermographic camera, or a combination thereof. In some examples, the device further includes a light emitting device (e.g., a light projector), such as an infrared floodlight, a structured light projector, or a combination thereof. The light emitting device is optionally used to illuminate the subject during image capture by the visible light camera and the depth camera (e.g., the IR camera), and information from the depth camera and the visible light camera is used to determine a depth map of different portions of the subject captured by the visible light camera. In some embodiments, the depth map (e.g., a depth map image) includes information (e.g., values) about the distance from the viewpoint (e.g., the camera) to objects in the scene. In one depth map embodiment, each depth pixel defines a location in the Z-axis of the viewpoint where a corresponding two-dimensional pixel is located. In some examples, the depth map is composed of pixels, each pixel defined by a value (e.g., 0 to 255). For example, a value of "0" represents a pixel located farthest in a "3D" scene, and a value of "255" represents a pixel located closest in a "3D" scene to the viewpoint (e.g., camera). In other examples, the depth map represents the distance between an object in a scene and the plane of the viewpoint.) In some embodiments, the depth map includes information about the relative depth of various features of an object of interest in the view from the depth camera (e.g., the relative depth of the eyes, nose, mouth, and ears on a user's face). In some embodiments, the depth map includes information that enables a device to determine the z-direction contour of the object of interest. In some embodiments, the lighting effects described herein are displayed using disparity information from two cameras (e.g., two visible light cameras) for the rear image and depth information from the depth camera combined with image data from the visible light camera for the front image (e.g., a selfie image).In some embodiments, the same user interface is used when determining depth information using two visible-light cameras and when determining depth information using a depth camera, providing a consistent experience to the user even when entirely different techniques are used to determine the information used when generating lighting effects. In some embodiments, while applying one of the lighting effects and displaying the camera user interface, the device detects selection of a camera switch affordance and switches from the front camera (e.g., a depth camera and a visible-light camera) to the rear camera (e.g., two visible-light cameras spaced apart) (or vice versa), while maintaining display of the user interface controllers for applying the lighting effects and replacing the display of the front camera's field of view with the rear camera's field of view (or vice versa).
[0168] 6A, device 600 displays a messaging user interface 604 of a messaging application. Messaging user interface 604 includes a message area 606 that includes messages 608A-608D in a message conversation between a group of participants ("The Dream Team") that includes three or more participants.
[0169] While displaying messaging user interface 604, device 600 receives data (e.g., an invitation to join the live communication session) indicating that a live communication session is available to participants of group The Dream Team and that the live communication session is active. In some embodiments, the live communication session is an audio communication session or an audio / video communication session.
[0170] In response to receiving data indicating that the live communication session is active, device 600 displays a notification indicating that the live communication session is active. As shown in FIG. 6B , the notification includes notification 614 in message area 606 as a message from participant Pablo indicating that Pablo has started the live communication session. Notification 614 indicates the type of live communication session with the text “Video” and a video camera icon. Notification 614 also indicates the number of currently active participants in the live communication session (“1 active”). In some embodiments, notification 614 also indicates the names of one or more of the currently active participants in the live communication session. Notification 614 also includes live communication join affordance 614A, which, when selected, causes device 600 to begin a process to join the live communication session represented by notification 614. Techniques for joining a live communication session are described in more detail below.
[0171] Optionally, in response to receiving data indicating that a live communication session is active, device 600 generates an audio output indicating that a live communication session is active. In some embodiments, the audio output is distinct from audio output associated with a messaging application (e.g., an incoming message notification) and audio output associated with a phone application (e.g., a ringtone). In some embodiments, the audio output is a hybrid of audio associated with a message notification and audio associated with an incoming call notification. In some embodiments, the audio output shares audio characteristics (e.g., a common tone quality, timbre, rhythm) with the audio output of both a call and a message notification.
[0172] In response to receiving data indicating that a live communication session is active, device 600 also displays live communication affordance 610. In some embodiments, live communication affordance 610 is displayed (e.g., grayed out) before the live communication session begins and is visually emphasized (e.g., highlighted) or modified (e.g., ungrayed out) once the live communication session begins. In some embodiments, selection of live communication affordance 610 or option affordance 612 initiates the process of joining the live communication session. In some embodiments, notification 614 and / or live communication affordance 610 are displayed without any audio and / or haptic output (e.g., an incoming phone call output) (e.g., because they are displayed in an active messaging conversation that the user is likely already focusing on).
[0173] 6C , as additional messages are added to a message conversation in the message area 606, the notification 614 moves up to a different location in the message area 606. In some embodiments, the device 600 moves the notification 614 to a location outside the message area (e.g., the notification 614 transitions from a message to a banner at the top of the display 602, outside the message area 606).
[0174] In some embodiments, device 600 moves notification 614 in response to notification relocation criteria being met. In some embodiments, the notification relocation criteria include one or more criteria selected from the group consisting of a predetermined amount of time passing (e.g., passing after notification 614 is displayed), ceasing to display messaging user interface 604, the messaging application being closed, and / or all or a portion of notification 614 being obscured within message area 606 (e.g., by a new incoming message occupying message area 606). In some embodiments, notification 614 is moved to the bottom, right, or left side of display 602. In some embodiments, notification 614 is a banner notification that is displayed near the top of display 612 directly in response to receiving data indicating that a live communication session is available.
[0175] In some embodiments, device 600 receives reminder data indicating a reminder to join the live communication session (e.g., a reminder sent by a participant during the conversation or after a predetermined time). As shown in FIG. 6D , in response to receiving the data indicating the reminder to join the live communication session, device 600 displays full-screen notification 616 and outputs audio output 618. In some embodiments, audio output 618 is distinct from audio output associated with a messaging application (e.g., an incoming message notification) and audio output associated with a phone application (e.g., a ringtone). In some embodiments, audio output 618 is a hybrid of audio associated with a message notification and audio associated with an incoming call notification. In some embodiments, audio output 618 is shorter than audio output associated with a phone application (e.g., a ringtone) and longer than audio output associated with a messaging application (e.g., an incoming message notification). In some embodiments, a ringtone includes multiple reproductions of the corresponding audio output, and audio output 618 is a single reproduction of the corresponding audio output. In some embodiments, audio output 618 shares audio characteristics (e.g., a common tone, timbre, rhythm) with the audio output of both the call and message notifications. In some embodiments, device 600 outputs a haptic output. As shown in Figure 6D, full-screen notification 616 includes the name of the group ("THE DREAM TEAM"), the names of the currently active participants in the live communication session ("PABLO, STEPHEN"), and the name of the participant who originally started the live communication session or issued the reminder ("PABLO"). In some embodiments, full-screen notification 616 includes the names of the participants invited to join the live communication session (e.g., in the order in which they joined the group).The fullscreen notification 616 also includes an answer affordance 620 to join the live communication session (e.g., join the live communication session immediately or display a menu with options for joining the live communication session), a "later" affordance 622 to decline the fullscreen notification 616, and a message affordance 624 to return to the messaging user interface 604 or send a message to the Dream Team group. The fullscreen notification also includes an image (e.g., video of the user of device 600 from camera 603) (e.g., as a preview of what the other participants in the live communication session will see if the user joins).
[0176] 6D, device 600 receives (e.g., detects) user input 650A (e.g., a tap) corresponding to selection of “later” affordance 622. As shown in FIG. 6E, in response to user input 650A, device 600 ceases displaying full-screen notification 616 and returns to messaging user interface 604.
[0177] 6E, device 600 receives (e.g., detects) user input 650B (e.g., a tap) corresponding to selection of option affordance 612. In response to receiving user input 650B, device 600 expands the header of messaging user interface 604 to include audio affordance 626A, video join affordance 626B, and group details affordance 626C.
[0178] 6F , device 600 receives (e.g., detects) user input 650C (e.g., a tap) corresponding to selection of video join affordance 626B. In some embodiments, device 600 joins the live communication session directly in response to receiving user input 650B (e.g., without requiring additional input). In some embodiments, device 600 joins the live communication session and transmits both video and audio. In some embodiments, device 600 joins the live communication session and transmits only audio (without transmitting video). In some embodiments, in response to selection of audio affordance 626A, device 600 joins the live communication session audio-only or initiates a separate conference call with group participants.
[0179] 6G, in response to receiving user input 650C, device 600 displays a live communication interface 628 of a live communication application. Live communication interface 628 includes a representation of the group ("THE DREAM TEAM"), an image (e.g., video of the user of device 600 from a front-facing camera (e.g., camera 603) of device 600), a representation of participants currently active in the live communication session ("PABLO, STEPHEN"), a representation of the participant who initiated the live communication session ("Video call from PABLO"), and a call control menu 630. Call control menu 630 includes a handle affordance 631, an effect affordance 632, a call affordance 634, and a menu affordance 636.
[0180] As shown in FIG. 6G, device 600 receives (e.g., detects) user input 650D on menu affordance 636. As shown in FIG. 6H, in response to user input 650D, device 600 expands call control menu 630 to display additional information and controls related to the live communication session. In some embodiments, device 600 expands call control menu 630 in response to an upward swipe beginning near handle affordance 631. When expanded, call control menu 630 further includes audio on / off affordance 638, audio source menu affordance 640, video on / off affordance 642, group name 644 (with an indication of the number of participants in the group), group message affordance 646, list 648 including affordances 648A-648E corresponding to group participants, and add participant affordance 652. In some embodiments, in response to receiving a selection of the group message affordance 646, the device 600 launches and / or displays a messaging user interface 604 (e.g., FIG. 6F) for sending a message to group participants.
[0181] As shown in FIG. 6H , the affordances of the participants in list 648 include an indication of the communication status of each participant with respect to the live communication session. Representation 648A indicates that participant Pablo is connected to the live communication session and is providing video data (e.g., a live media stream including video and audio data). Representation 648B indicates that participant Stephen is connected and is providing audio data (e.g., no video). Representations 648C and 648D indicate that participants Marcel and Allison, respectively, are not connected to the live communication session (e.g., are not providing video or audio data). Participants who are not connected have either never participated in the live communication session or previously participated in the live communication session but have left the session. Exemplary participant communication status types include audio-only (e.g., the participant is communicating using audio only), video (e.g., the participant is talking using video and audio), video paused (e.g., the participant's video is paused), undecoded video (e.g., the participant's video stream cannot be processed due to latency issues, video stream format issues, etc.), left (e.g., the participant has left the live communication session), and waiting to join (e.g., the participant has been invited to the live communication session but has not yet joined the live communication session).
[0182] In some embodiments, participants in a live video communication include group participants who are currently connected to the communication session and group participants who are not currently connected to the live video communication session. That is, all group participants, regardless of connection status, are considered participants in the live communication session. When a live communication session is active, participants can join (connect) or leave (disconnect) the live communication session.
[0183] As shown in Figure 6I, device 600 receives (e.g., detects) user input 650E (e.g., a tap) corresponding to selection of video on / off affordance 642. As shown in Figure 6J, in response to receiving user input 650E, device 600 modifies video on / off affordance 642 to indicate a video off state and modifies call affordance 634 to indicate an audio-only state by modifying the representation of the video camera in Figure 6I to the representation of a phone in Figure 6J. In the audio-only state, device 600 participates in a live communication session audio-only (e.g., device 600 does not provide video data).
[0184] As shown in FIG. 6J, device 600 receives (e.g., detects) user input 650F (e.g., a tap) corresponding to selection of call affordance 634. As shown in FIG. 6K, in response to receiving user input 650F, device 600 initiates a connection to join a live communication session in audio-only mode. As shown in FIG. 6K, device 600 ceases displaying expanded call control menu 630 (e.g., device 600 collapses call control menu 630) and displays connection screen 654. In some embodiments, device 600 initiates a connection to join a live communication session and displays connection screen 654 in response to user input 650C on video join affordance 626B. In some embodiments, notification 614 includes an affordance (e.g., a “join” icon on notification 614 or the entire notification 614 is selectable). In some embodiments, device 600 initiates a connection to join a live communication session and displays connection screen 654 in response to selection of notification 614.
[0185] As shown in FIG. 6L , after device 600 joins the live communication session, device 600 displays live communication user interface 656, including representation 658 of the user of device 600, representation 670A of participant Pablo (e.g., the participant who initiated the live communication session), and representation 670B of participant Stephen. According to the communication status shown in list 648, representation 670A of participant Pablo includes a live video stream. Because participant Stephen is only providing audio data, representation 670B of participant Pablo includes an avatar. In some embodiments, the layout of the representations on live communication user interface 656 is based on the number of participants currently connected to the live communication session (e.g., two participants and the user of device 600). The layout shown in FIG. 6L is referred to as a two-to-one layout, with a first position corresponding to the position of representation 670A and a second position corresponding to the position of representation 670B.
[0186] In some embodiments, when device 600 joins a live communication session, device 600 determines whether the number of participants (e.g., either active or full (active and invited)) exceeds a predetermined threshold number. Upon determining that the number of participants exceeds the threshold, device 600 displays an overflow region with an overflow representation (e.g., thumbnails), as described in more detail below. Alternatively, upon determining that the number of participants does not exceed the threshold, device 600 does not display an overflow region with an overflow representation.
[0187] When device 600 joins a live communication session, device 600 transmits live media streams to other participants (e.g., participants participating in the live communication session). When a participant associated with another device joins the live communication session and device 600 also joins, device 600 receives the media stream corresponding to that participant.
[0188] As shown in Figure 6L, while displaying live communication user interface 656, device 600 receives (e.g., detects) user input 650G (e.g., a tap) on display 602. As shown in Figure 6M, in response to receiving user input 650G, device 600 displays call control menu 630. Representations 670A and 670B are reduced in size, and representations 670B and 658 are moved upward on display 602 so that call control menu 630 does not overlap them. In contrast to the configuration shown in Figure 6L, in which representations 670A and 670B are one above the other and do not overlap, when call control menu 630 is displayed in Figure 6M, representations 670A and 670B are offset from one another and overlap.
[0189] As shown in FIG. 6N, device 600 receives (e.g., detects) user input 650H (e.g., a tap) on menu affordance 636 within call control affordance 630. As shown in FIG. 6O, in response to receiving user input 650H, device 600 expands call control menu 630 (e.g., as described with respect to FIG. 6H). In some embodiments, device 600 displays reminder affordances on representations of participants who are not connected to the live communication session in call control menu 630. As shown in FIG. 6O, list 648 indicates that participants Marcel and Allison are not connected to the live communication session. Because participants Marcel and Allison (e.g., devices associated with participants Marcel and Allison) are not connected to the live communication session, the expanded call control menu 630 includes place-call affordances 662, 664 on representations 648C and 648D of participants Marcel and Allison, respectively, in list 648. In response to selecting origination affordance 662 or 664, device 600 causes a notification (e.g., an audio output, such as a call or a call) to be provided on a device associated with the participant corresponding to the selected origination affordance. In some embodiments, the notification is a new notification that is different from any previous notification sent to the participant. In some embodiments, the new notification is more intrusive than the previous notification (e.g., an audio ringtone, a haptic output, or a full-screen notification, as compared to a banner notification without audio or haptic output). In this way, a user can remind participants not participating in a live communication session that the live communication session is active and available for them to join (e.g., similar to how the full-screen notification shown in FIG. 6D reminds the user of device 600).
[0190] As shown in FIG. 6O, device 600 receives (e.g., detects) user input 650I (e.g., a tap) corresponding to selection of video on / off affordance 642. In response to receiving user input 650I, device 600 provides a live video stream (e.g., from a camera on device 600) to the live communication session and modifies video on / off affordance 642 to indicate that video is on, as shown in FIG. 6P. In FIG. 6Q, device 600 receives (e.g., detects) user input 650J (e.g., a downward swipe) on display 602 to collapse call control menu 630. As shown in FIG. 6R, when call control menu 630 is collapsed, representation 658 corresponding to the user of device 600 includes video from camera 603 of device 600.
[0191] As shown in FIG. 6S, the device 600 receives (e.g., detects) a user input 650K (e.g., a tap) corresponding to the selection of the call affordance 634. In response to the user input 650K, the device 600 disconnects from the live communication session. FIG. 6T illustrates an embodiment of a messaging user interface 604 of a messaging application that is displayed after the device 600 disconnects from the live communication session. Although the device 600 has disconnected from the live communication session, the live communication session remains active. In some embodiments, even if a participant who initiated the live video communication session leaves the session, the live communication session remains active as long as at least one of the participants remains connected. As shown in FIG. 6T, the device 600 continues to display the notification 614 and the live communication affordance 610 to indicate that the live communication session is active. The notification 614 is updated to indicate the duration of the live communication session (e.g., 3 minutes and 42 seconds, which corresponds to the time since the live communication session began).
[0192] While displaying notification 614 indicating that the live communication session is active, device 600 receives data indicating that the live communication session is no longer active (e.g., has ended). In some embodiments, the live communication session ends when no participants are connected to the live communication session (e.g., no participants who started or joined the live communication session are connected). In response to receiving the data indicating that the live communication session is no longer active, device 600 ceases displaying notification 614 and / or updates notification 614 to indicate that the live communication session is no longer active. FIG. 6U illustrates an embodiment of a messaging user interface 604 of a messaging application that is displayed after the live communication session has ended (e.g., in response to receiving data indicating that the live communication session is no longer active). As shown in FIG. 6U, notification 614 is updated to include an indication that the live communication session is no longer active (e.g., the text "Call Ended"), and live communication affordance 610 is removed. In some embodiments, live communication affordance 610 and / or notification 614 are grayed out to indicate that the live communication session is no longer active. In some embodiments, notification 614 becomes non-selectable after a live communication session ends. In some embodiments, notification 614 remains selectable after a live communication session ends and can be selected to start a new live communication session with the group. In some embodiments, if device 600 did not participate in the live communication session, device 600 updates notification 614 to indicate that the user missed the live communication session (e.g., "Missed Call").
[0193] As shown in FIG. 6U, device 600 receives (e.g., detects) user input 650L (e.g., a tap) corresponding to selection of back affordance 611. As shown in FIG. 6V, in response to receiving user input 650L, device 600 displays a messaging application user interface 671, which includes a list 673 of affordances 673A-673G for accessing respective message conversations. Affordance 673D corresponds to a message conversation between a group of three participants (Matthew, Danielle, and the user of device 600). Affordance 673D includes a live communication indicator 675, which indicates that there is an active live communication session for this group. In contrast, affordance 673A corresponding to The Dream Team does not include a live communication indicator 675 because no live communication session is active for The Dream Team.
[0194] Turning to FIG. 6W, device 600 is shown displaying an interface other than messaging user interface 604. In FIG. 6W, device 600 displays lock screen 668, which indicates that device 600 is in a locked state. Lock screen 668 includes notifications 677A and 677B. Notification 677A indicates that a message from user John Appleseed was received five minutes ago. Notification 677B represents a live communication session that can no longer be joined (e.g., a missed video call). The missed video call notification includes an indication of the invited participants (John, Amy, Rodrigo), the state of the live communication session ("Missed"), and either the time the live communication session started or ended ("1 hour ago"). In the locked state, device 600 does not display active applications.
[0195] While in the locked state, the device 600 receives data indicating that a live communication session is available to join. In some embodiments, the device 600's response to receiving the data indicating that a live communication session is available to join depends on the context of the device 600, the available live communication sessions, or other factor(s). In some embodiments, in response to a live communication session being available between two participants (e.g., a one-to-one communication session), the device 600 displays a first type of notification. As shown in FIG. 6X, the first type of notification includes a full-screen notification 672 and an audio output 674. In some embodiments, the audio output 674 is different from the audio output associated with the call notification and the audio output associated with the message notification. In some embodiments, the audio output 674 shares audio characteristics (e.g., a common sound quality, timbre, rhythm) with the audio output of both the call and message notification. Alternatively, in response to a live communication session being available between three or more participants (e.g., a group live communication session), the device 600 displays a second type of notification. As shown in FIG. 6Y, the second type of notification includes a banner notification 676 (e.g., not full screen) and a haptic output 678 (e.g., no audio output). In some embodiments, upon receipt of a live communication session being available between three or more participants (e.g., a group live communication session), the device 600 first displays a full-screen notification (e.g., similar to the full-screen notification 616 shown in FIG. 6E) and then displays (e.g., transitions to) the banner notification 676. In some embodiments, the notification 676 includes an affordance that, when selected, initiates a process to join the corresponding live communication session (e.g., as described above with reference to FIGS. 6F-6L).
[0196] In contrast to notification 677B, which corresponds to a missed video call, notification 676 corresponds to an active live communication session. Notification 676 includes an indication of the group (The Dream Team), the participant (Pablo) who took the action that triggered the presentation of the notification, and the time the live communication session began ("Now"). In some embodiments, notification 676 is updated to accurately reflect the time the live communication session began and the state of the live communication session. In some embodiments, when the live communication session represented by notification 676 ends, the text of notification 676 is updated from "Joined video call from PABLO" to "Missed video call from PABLO."
[0197] In some embodiments, upon determining that no active application is displayed (as in FIG. 6W), device 600 displays a full-screen notification in response to receiving data indicating that there is a live communication session available to participate in. In some embodiments, upon determining that no active application (e.g., a messaging application) is displayed, device 600 displays a non-full-screen notification (e.g., a banner notification).
[0198] In some embodiments, in response to a determination to alert the user of device 600, device 600 outputs an alert (e.g., a notification or an audio or haptic output), and in response to a determination not to alert the user's device 600, device 600 refrains from outputting an alert. In some embodiments, the determination to alert the user is based on disturbance criteria (e.g., whether the device is locked or unlocked). In some embodiments, in response to device 600 being locked (e.g., as shown in FIG. 6Y), the device outputs an alert (e.g., haptic output 678), and in response to device 600 being unlocked (e.g., as shown in FIG. 6Z), the device 600 displays a notification (e.g., banner notification 676) and refrains from providing an alert (e.g., no haptic output).
[0199] In some embodiments, the disturbance criteria indicates whether the user is looking at the device 600 (e.g., based on data from a sensor on the front of the device 600). FIG. 6AA shows a user 684 holding the device 600. The user's gaze 680 is not directed toward the device 600. The device 600 determines whether the user 684 is not looking at the device 600, and upon determining that the user 684 is not looking at the device 600, the device 600 provides a non-visual notification 682 (e.g., a haptic or audio output). As shown in FIG. 6AB, the user's gaze 680 is directed toward the device 600. Upon determining that the user 684 is looking at the device 600, the device 600 refrains from providing a non-visual notification (e.g., the device 600 displays a banner notification without a haptic or audio output). In some embodiments, the device 600 determines whether the user is looking at the device 600 using an image sensor configured to identify the user's face.
[0200] 6AC-6AF, device 600A includes a display 602A (e.g., a touch-sensitive display), a rotatable input mechanism 601A, and mechanical buttons 601B. In some embodiments, device 600A includes features of devices 100, 300, 500, and 600. In some embodiments, device 600A communicates with device 600 (e.g., via two-way wireless communication). In some embodiments, device 600A is paired with device 600.
[0201] In some embodiments, device 600A receives data (e.g., from device 600) indicating that a live communication session available to three or more of its participants is active. As shown in FIG. 6AC , in response to receiving the data indicating that the live communication session is active, device 600A displays user interface 604A, which includes notification 605, live communication join affordance 607, and decline affordance 609. In some embodiments, notification 605 includes features of notification 614 described above (e.g., participant name, number of participants, name of the participant who triggered the notification). In some embodiments, device 600A generates audio and / or haptic output in response to receiving the data indicating that the live communication session is active. In some embodiments, device 600A generates audio and / or haptic output that is different from the audio and / or haptic output generated by device 600 in response to receiving the data indicating that the live communication session is active. In some embodiments, in response to receiving initial data indicating that a live communication session is active, a notification (e.g., a visual, audio, and / or tactile output) indicating that the live communication session is active is provided at device 600 (e.g., rather than device 600A), and in response to receiving reminder data indicating a reminder that the live communication session is active, a notification is provided at both device 600 and device 600A. In some embodiments, in response to receiving initial data indicating that a live communication session is active, a notification (e.g., a visual, audio, and / or tactile output) indicating that the live communication session is active is provided at both device 600 and device 600A, and in response to receiving reminder data indicating a reminder that the live communication session is active, a notification is provided at device 600 (e.g., rather than device 600A).
[0202] In some embodiments, device 600A receives user input (e.g., a tap on live communication affordance 617) corresponding to a selection of join live communication affordance 607. In response to receiving the selection of join live communication affordance 607, device 600A causes device 600 and / or device 600A to join the live communication session or initiate a process to join the live communication session. In some embodiments, in response to receiving the selection of live communication affordance 607, device 600A causes live communication user interface 628 (FIG. 6G), 654 (FIG. 6K), or 656 (FIG. 6L) to be displayed on device 600.
[0203] 6AD shows a user interface 604A displayed on device 600A after joining a live communication session. In some embodiments, device 600A includes a microphone for a user to provide audio input to the live communication session via device 600A. In FIG. 6AD, user interface 604A includes a volume controller 611, an indication 613 of the participants in the live communication session ("PABLO and 2 others") and duration ("9 minutes 45 seconds"), an end call affordance 615, an audio on / off affordance 617, and a menu affordance 619.
[0204] In FIG. 6AE, device 600A receives (e.g., detects) user input 650M (e.g., an upward swipe gesture initiated at or near menu affordance 619). As shown in FIG. 6AF, in response to receiving user input 650M, device 600A modifies display 613 (“Party of 4”) and displays keypad affordance 621, audio source affordance 623 (e.g., for joining a live communication session using device 600), and list 625 of participants (e.g., joined and / or invited participants) of the live communication session. In some embodiments, device 604A displays list 625 in response to receiving user input 650M on user interface 604 of FIG. 6AC (e.g., prior to joining the live communication session). In some embodiments, list 625 includes an indication of the communication status of participants. In some embodiments, list 625 includes a reminder affordance that can be selected to send a reminder notification to participants not participating in the live communication session.
[0205] 7A-7F are flow diagrams illustrating a method according to some embodiments. Method 700 is performed on a device (e.g., 100, 300, 500, or 600) that includes a display. Some operations of method 700 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0206] As described below, method 700 provides, among other things, an intuitive way to provide interactive notifications (e.g., 614, 672, 676) for live communication sessions between multiple participants. This method creates a more efficient human-machine interface by reducing the cognitive burden on users using innovative techniques to provide notifications of live communication sessions between multiple participants. For battery-operated computing devices, being able to quickly interact with notifications of live communication sessions between multiple participants is faster and more efficient, thereby conserving power and extending the time between battery charges.
[0207] In block 702, the device displays a messaging user interface (e.g., 604) of a messaging application. The messaging user interface (e.g., 604) includes a message area (e.g., 606). The message area includes multiple messages (e.g., 608A-608D) in a message conversation between three or more participants.
[0208] In block 704, the device receives first data indicating that a live communication session (e.g., an audio communication session or an audio / video communication session) available to the three or more participants is active. In some embodiments, participants in the live communication session have a state of "currently participating" (e.g., providing a live media stream to other participants, also referred to as "connected" or "active") or "currently not participating" (e.g., a participant who has never joined the session or a participant who previously joined the session but has left the session, also referred to as "not connected" or "invited"). In some embodiments, participants in the live communication session include participants who are currently participating in the live communication session and participants who are not currently participating in the live communication session (e.g., 648A-648D). When a live communication session is active, participants can join (connect) or leave (disconnect) the live communication session. When a participant associated with another device joins the live communication session, the device receives a media stream corresponding to that participant. When a user of a device joins a live communication session, the device transmits the live media stream to the other participants (e.g., participants participating in the live communication session). In some embodiments, the live communication session remains active as long as at least one of the participants is connected (e.g., even if the participant who initiated the live communication session leaves the session).
[0209] At block 706, in response to receiving first data indicating that a live communication session between three or more participants is active, the device displays a notification (e.g., 614) indicating that the live communication session is active. In some embodiments, the notification indicating that the live communication session is active includes a live communication join affordance (e.g., 614A). In some embodiments, the notification includes an indication of the number of participants in the live communication session (e.g., the number of active participants in the session, the number of participants invited to the session). In some embodiments, the notification includes an indication (e.g., name, initials, photo, or avatar) of a participant who took an action on the display that triggered presentation of the notification (e.g., the participant who initiated the live communication session or selected a “call again” button, etc., to remind the device user to join the live communication session). In some embodiments, in response to receiving first data indicating that a live communication session between three or more participants is active, the device generates, via one or more audio output devices of the device, an audio output (e.g., 618) indicating that the live communication session is active, the audio output indicating that the live communication session is active being distinct from the audio output associated with an incoming call notification and the audio output associated with a message notification. In some embodiments, the audio output indicating that a live communication session is active shares audio characteristics (e.g., common tone quality, timbre, rhythm) with the audio output of both the incoming call and message notifications. Displaying a notification (e.g., 614) and / or generating an audio output (e.g., 618) indicating that a live communication session is active provides the user with feedback regarding the current state of the live communication session, and provides the user with visual feedback indicating that a particular action related to the notification and / or live communication session will occur if the user activates the notification (e.g., when the notification includes a join affordance).Providing improved visual feedback to the user enhances the usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0210] Optionally, at block 704, the device displays a notification indicating that the live communication session is active in a first position of the message area (e.g., 606). In some embodiments, the notification indicating that the live communication session is active (e.g., 614) includes a live communication join affordance (e.g., 614A).
[0211] In block 710, while displaying a notification (e.g., 614) indicating that the live communication session is active, the device receives second data indicating that the live communication session between the three or more participants is no longer active.
[0212] Optionally, at block 712, the device moves a notification indicating that a live communication session is active from a first position (e.g., at the bottom of the message area 606) to a second position (e.g., to the center or top of the message area 606, or to the top, bottom, right, and / or left side of the display (602)). In some embodiments, the movement of the notification (e.g., 614) occurs in response to notification relocation criteria being met. In some embodiments, the notification relocation criteria include one or more criteria such as a predetermined amount of time passing (e.g., passing after the notification is displayed), ceasing to display the messaging user interface (e.g., 604), the messaging application being closed, or a new incoming message occupying the message area (e.g., 606) such that the entire notification (e.g., 614) or a portion of the notification (e.g., 614) is obscured within the message area (e.g., 606). Moving the notification indicating that a live communication session is active provides the user with feedback regarding the current state of the live communication session and provides the user with visual feedback indicating that a particular action related to the notification and / or live communication session will occur if selected, reducing the number of inputs required to perform the action. Providing the user with improved visual feedback enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as allowing the user to use the device more quickly and efficiently, thereby reducing device power usage and improving battery life. Additionally, reducing the number of inputs required to perform the action further enhances device usability and makes the user-device interface more efficient (e.g., by providing the user with more accessible inputs and reducing the number of inputs), as well as allowing the user to use the device more quickly and efficiently, thereby reducing device power usage and improving battery life.
[0213] Optionally, in blocks 714 and 716, the device receives a first user input (e.g., 650C) corresponding to a selection of a join live communication affordance (e.g., 614A or 626B). In response to receiving the first user input corresponding to a selection of the join live communication affordance, the device joins the live communication session (e.g., joins the live communication session and transmits both video and audio from the electronic device, and / or joins the live communication session and transmits only audio (without transmitting video) from the electronic device). Joining the live communication in response to receiving a selection of the join live communication affordance included in the notification reduces the number of inputs required to perform the operation of joining the live communication session. Reducing the number of inputs required to perform the operation further enhances device usability and makes the user-device interface more efficient (e.g., by providing the user with more accessible inputs and reducing the number of inputs required to join the live communication session), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0214] Optionally, at blocks 718 and 720, the device receives reminder data (e.g., FIG. 6D ) indicating a reminder to join the live communication session (e.g., a reminder sent by a participant during the conversation or after a predetermined time). In response to receiving the reminder data indicating a reminder to join the live communication session (e.g., a reminder sent by a participant in the conversation), the device generates, via one or more audio output devices of the device, an audio output (e.g., 618) (e.g., a ringtone output) indicating that the live communication session is active. In some embodiments, the audio output (e.g., 618) is generated in coordination with the redisplay of the notification (e.g., 616). In some embodiments, the display of the notification is in progress when the reminder data is received. In some embodiments, the audio output indicating that the live communication session is active is different from the audio output associated with an incoming call notification and the audio output associated with a message notification. In some embodiments, the audio output indicating that the live communication session is active shares audio characteristics (e.g., a common tone quality, timbre, rhythm) with the audio output of both the incoming call notification and the message notification. In some embodiments, the initial audio output indicating that a live communication session is active is different (e.g., shorter, quieter, or weaker) than the reminder audio output indicating that a live communication session is active (e.g., audio output generated based on a participant selecting the "Call Call" affordance). In some embodiments, the initial audio output indicating that a live communication session is active is a single repetition of the repeated audio output used for incoming phone calls, and the reminder audio output indicating that a live communication session is active is multiple repetitions of the repeated audio output used for incoming phone calls, or is the same as the audio output used for incoming phone calls. In some embodiments, in response to receiving reminder data indicating a reminder to join a live communication session, the device displays an indication (e.g., name, initials, photo, or avatar) of the participant in the live communication session that initiated the reminder.Generating a reminder that includes an audio output when a predetermined condition is met allows a user to quickly recognize that a live communication session is available in case they miss the visual notification (e.g., 614). Taking optimized action when a set of conditions is met without requiring further user input enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0215] Optionally, at blocks 722 and 724, in embodiments in which the notification includes a menu access affordance (e.g., 626B), the device receives a second user input (e.g., 650C) corresponding to a selection of the menu access affordance. In response to receiving the second user input corresponding to a selection of the menu access affordance, the device displays a menu (e.g., 630) including a video join option (e.g., 634) (e.g., affordance, drop-down menu, check box) and an audio-only option (e.g., 642) (e.g., affordance, drop-down, check box). Displaying a menu including different options for joining the live communication session in response to receiving a selection of the menu access affordance provides additional control options without cluttering the UI with additional displayed controllers. Providing additional control options without cluttering the UI with additional displayed controllers enhances usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces power usage and improves battery life of the device by allowing the user to use the device more quickly and efficiently.
[0216] Optionally, at blocks 726 and 728, the device receives a third user input while displaying the menu (e.g., 630). Upon receiving the third user input (e.g., 650F) corresponding to the selection of the join video option (e.g., 634), the device joins the live communication session using audio and video transmitted from the electronic device. In some embodiments, the device prompts the user to confirm whether they want to join audio-only and / or video-only (e.g., "Do you want to join with video?"). By joining the live communication session using audio and video transmitted from the electronic device when a predetermined condition is met (e.g., in response to the join video option being selected), the user can join the live communication session using audio and video without the user having to select or modify additional inputs and outputs of the device (e.g., turning on the camera and / or turning on the microphone). By performing optimized operations without requiring further user input when a set of conditions are met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, the device's power usage is reduced and battery life is improved by allowing the user to use the device more quickly and efficiently.
[0217] Optionally, at block 730, in response to a third user input corresponding to a selection of an audio-only join option (e.g., 642), the device joins the live communication session using audio transmitted from the electronic device (e.g., audio recorded by one or more microphones of the device) without transmitting video data from the electronic device. In some embodiments, the device displays an indicator (e.g., 658 in FIG. 6L ) indicating that the user has joined the live communication using audio only. This provides the user with peace of mind that video is not being shared. By joining the live communication session using audio transmitted from the electronic device when predetermined conditions are met, the user can join the live communication session using audio only without the user having to select or modify additional inputs and outputs of the device (e.g., turning off the camera and / or turning on the microphone). By performing optimized operations without requiring further user input when a set of conditions are met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, the device's power usage is reduced and battery life is improved by allowing the user to use the device more quickly and efficiently.
[0218] At block 732, in response to receiving second data indicating that the live communication session between the three or more participants is no longer active, the device either ceases displaying the notification (e.g., 614) or updates the notification to indicate that the live communication session is no longer active. In some embodiments, while the live communication session is active, the notification is updated to indicate the current duration of the live communication session. In some embodiments, when the live communication session is no longer active, the notification ceases displaying the session duration and displays a notification that the session has ended (e.g., "call ended"). By ceasing to display the notification in response to receiving data indicating that the live communication session is no longer active, visual feedback is provided to the user indicating that the notification and / or particular action related to the live communication session is no longer available. Providing improved visual feedback to the user enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently. Additionally, by ceasing to display the notification in response to receiving data indicating that the live communication session is no longer active, an action is taken automatically without further user input when a set of conditions are met. Taking an optimized action without requiring further user input when a set of conditions are met enhances device usability and makes the user-device interface more efficient (e.g., by reducing unnecessary elements on the user interface, assisting the user in providing appropriate inputs when operating / interacting with the device, and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0219] Optionally, at blocks 736, 738, and 740, the device receives third data indicating that a second live communication session is available between two or more participants. In response to the second live communication session being available between the two participants, the device displays a first type of notification (e.g., 672) (e.g., a full-screen notification) indicating that the second live communication is active. In some embodiments, the first type of notification (e.g., 672) includes a menu (e.g., 630) with video (e.g., 634), audio-only (e.g., 643), and / or decline (e.g., 622) options. In response to the second live communication session being available between three or more participants, the device displays a second type of notification (e.g., 676), different from the first type of notification, indicating that the second live communication is active. In some embodiments, the second type of notification is a banner notification (e.g., 676) that is not full-screen or is not persistent full-screen. Optionally, in block 742, the device initially displays the second type of notification in a first state (e.g., full-screen state 672). Optionally, in step 744, the device transitions the second type of notification (e.g., 672) to a second state (e.g., 676) (e.g., a non-persistent full-screen state (e.g., a persistent banner located at the top edge of the display). Displaying a particular type of notification that a live communication session is active based on when a predetermined condition is met allows the user to quickly recognize that a live communication session is available (e.g., displaying a full-screen notification when there is a live communication session available between two participants and displaying a banner when there is a live communication session available between two participants) while causing more and / or less distraction to the user based on the predetermined condition.By performing optimized operations without requiring further user input when a set of conditions are met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, the device's power usage is reduced and battery life is improved by allowing the user to use the device more quickly and efficiently.
[0220] Optionally, at blocks 746, 748, 750, and 752, the device receives fourth data indicating that a third live communication session is available. In response to receiving the fourth data indicating that a third live communication session is available, and upon determining that an active application (e.g., an application (e.g., in place of the device's lock screen (e.g., 668) or home screen (e.g., 1400)), such as a messaging application or a third-party application provided by an application developer other than the operating system developer) is displayed, the device displays a notification (e.g., 614 or 676) of a third type (e.g., a non-full screen state (e.g., a banner located at the top edge of the display)) indicating that the third live communication session is available. In response to receiving the fourth data indicating that a third live communication session is available, and upon determining that an active application is not displayed (e.g., FIG. 6W), the device provides a fourth type notification (e.g., 678 or a full screen notification (e.g., 616)) indicating that the third live communication session is available. Displaying a particular type of notification of a live communication session based on when a predetermined condition is met allows the user to be quickly made aware that a live communication session is available while resulting in more and / or less reduced scrutiny of the user based on the predetermined condition (e.g., displaying a full-screen notification when the device is displaying an application and displaying a banner when the device is not displaying an application). Taking optimized action when a set of conditions is met without requiring further user input enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0221] Optionally, at blocks 754, 756, 758, and 760, the device receives fifth data indicating that a fourth live communication session is available. In response to receiving the fifth data indicating that a fourth live communication session is available, and upon determining that a current state of the electronic device (e.g., a current operating mode of the device (e.g., whether the device is in do-not-disturb (DND) mode, whether a particular application or hardware is operationally active, whether the device is locked or unlocked, whether one or more sensors on the device detect that the user is looking at the display) meets the alerting criteria, the device displays a notification (e.g., 676) that a fourth live communication session is available while providing a non-visual notification (e.g., 678) (e.g., audio or haptic output) that a fourth live communication session is available. In some embodiments, the output or alert corresponds to the notification (e.g., 614). In response to receiving the fifth data indicating that a fourth live communication session is available, and upon determining that a current state of the electronic device does not meet the alerting criteria, the device displays a notification (e.g., 676) that a fourth live communication session is available while providing a non-visual notification (e.g., 678) (e.g., audio or haptic output) that a fourth live communication session is available. In some embodiments, the output or alert corresponds to the notification (e.g., 614). In response to the determination, the device displays a notification (e.g., 614) that a fourth live communication session is available without providing a non-visual notification (e.g., 678) that a fourth live communication session is available. In some embodiments, the first type of alert is not announced, while a second type of alert (e.g., a visual alert such as a banner notification (e.g., 676)) is announced. In some embodiments, the relevant status of the device is whether the device is in a locked or unlocked state. In some embodiments, when the device is locked, the first type of alert (e.g., audio or haptic output) is announced, and when the device is unlocked (e.g., when the user is actively operating / interacting with the device), the alert is not announced (e.g., suppressed). In some embodiments, the relevant status of the device is whether the device detects (e.g., via one or more sensors (e.g., camera, infrared sensor)) that a user is looking at the display.In some embodiments, a first type of alert (e.g., audio or haptic output) is announced when the device is locked. In some embodiments, a first type of alert (e.g., 682) is generated when the device detects that the user is not looking at the display (e.g., FIG. 6AA). In some embodiments, a first type of alert is not generated (e.g., suppressed) when the user is actively operating / interacting with the device (e.g., FIG. 6AB).
[0222] In some embodiments, the alert notification criteria include a requirement that the device be locked for the alert notification criteria to be met. In some embodiments, the alert notification criteria include a requirement that the device not detect user attention on the device for the alert notification criteria to be met. (e.g., based on user input detected by an input device of the electronic device, based on the user's gaze (e.g., 680) detected by eye tracking, face tracking, etc.) Determining whether to display a notification (e.g., 614) and provide a non-visual notification based on when predetermined conditions are met allows the user to be quickly made aware that a live communication is available while providing more and / or less interruption based on predetermined conditions. Taking optimized action without requiring further user input when a set of conditions is met enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0223] It should be noted that the details of the processes described above with respect to method 700 (e.g., FIGS. 7A-7F) are also applicable in an analogous manner to the methods described below. For example, method 700 optionally includes one or more features of the various methods described below with respect to methods 900, 1100, 1300, and 1500. For example, method 700 may launch a live communication session using methods 1300 and 1500, and the initiation and execution of the live communication session may include methods 900 and 1100. For the sake of brevity, these details will not be repeated below.
[0224] Figures 8A-8BK illustrate exemplary user interfaces for a live communication session, according to some embodiments. The user interfaces in these figures are used to illustrate the processes described below, including the processes of Figures 9A-9K.
[0225] 8A shows device 600 displaying messaging user interface 604 for a message conversation between group The Dream Team. No live communication session between group participants is active (e.g., as indicated by the absence of live communication affordance 610). As shown in FIG. 8A, the header of messaging user interface 604 is expanded to show video join affordance 626B (as described above). As shown in FIG. 8A, device 600 receives user input 850A (e.g., a tap on video join affordance 626B) corresponding to a request to display a user interface for a live communication session between participants in participant group The Dream Team. As shown in FIG. 8A, the request includes a request to start a new live video communication session. In some embodiments, the request includes a request to join an existing live communication session (e.g., as described above with respect to FIG. 6F).
[0226] In response to user input 650A, device 600 displays a message 800 in message area 606 and an indication 802 that a live communication session is starting. In some embodiments, message 800 includes some of the aforementioned characteristics of notification 614. Once the live communication session is started, device 600 displays a live communication user interface 804, which simultaneously includes representations of multiple participants in the live communication session.
[0227] Upon determining that the number of participants in the live communication session is greater than a threshold number of participants (e.g., greater than five participants including the user of device 600), device 600 simultaneously displays representations of a first plurality of participants other than the user of device 600 at one or more sizes (e.g., three different sizes) greater than their respective threshold sizes, while displaying representations of a second plurality of participants in an overflow area, including one or more participants not included in the first plurality, and the representations of the one or more other participants displayed in the overflow area are displayed at sizes smaller than their respective threshold sizes.
[0228] 8A-8BK, the threshold number of participants is five participants (including the user of device 600). Because group The Dream Team includes 15 participants, device 600 determines that the number of participants in the live communication session is greater than the threshold number of participants. As shown in FIG. 8C, in response to this determination, live communication user interface 804 includes a four-to-one layout of four primary representations 810A-810D (collectively 810) of four respective participants other than the user of device 600 displayed in canvas area 811, a user representation 806 of the view of the camera of device 600 (corresponding to the user of device 600), and an overflow area 820 with overflow representations 822A-822J (collectively 822) corresponding to participants in the live communication session other than the user of device 600 and the participants represented in canvas area 811, a subset of which (e.g., 822A-822D) are always displayed. In some embodiments, the layout is one of a number of predefined layouts in which representations of participants are fixed at different locations on the user interface 804. Figure 8AW illustrates another embodiment of the user interface 804. In the embodiment illustrated in Figure 8AW, the overflow area 820 includes overflow representations of all participants in the live communication session other than the user of the device 600, and participants represented in the canvas area 811 are also represented in the overflow area 820.
[0229] If the number of group participants is five or less, upon determining that the number of participants in the live communication session is five or less, device 600 displays the primary representations of the participants and a representation of the user of device 600 without displaying overflow representations in the overflow area.
[0230] Each primary representation 810 is displayed in one of three predetermined representation sizes (small, medium, and large). Primary representation 810A is displayed in a small size, primary representation 810B is displayed in a large size, and primary representations 810C and 810D are displayed in medium sizes. In FIG. 8C , each primary representation 810 overlaps at least one other primary representation. All overflow representations 822 are displayed in the same size, which is smaller than the small representation size associated with primary representation 810. In the illustrated embodiment, each of the above-mentioned threshold sizes is larger than the size of overflow representation 822 and smaller than the small representation size of primary representation 810. User representation 806 is the same size as overflow representation 822 and is aligned with or displayed within overflow region 820.
[0231] As shown in FIG. 8C , the live communication session user interface 804 displays three full overflow representations and one partial overflow representation at a time. The remaining overflow representations are hidden and can be displayed by scrolling the overflow region 820 (e.g., in response to either user input or a detected event, such as a participant actively joining by speaking or moving). In FIG. 8C , the overflow representation 820D is partially shaded to indicate that there are more overflow representations and / or that the overflow region 820 can be scrolled. In some embodiments, the order of the overflow representations 822 in the overflow region 820 depends on the order in which participants join the live communication session. In some embodiments, the order of the overflow representations 822 in the overflow region 820 changes over time (e.g., as participants join or leave the live communication session, or as participants enter and leave the canvas region 811, e.g., due to user selection of an overflow representation or active participation by a participant represented in the overflow region, as described in more detail below). In some embodiments, the order of the overflow representations in the overflow area 820 is fixed (e.g., the order in which the overflow representations are displayed does not change over time). In some embodiments, the order of the overflow representations is based on the order of the list associated with the group (e.g., the order in which participants were added to the group when the group was created). In some embodiments, the display of the main representation 810 (e.g., a live video feed) is updated at a higher rate than the display of the overflow representation 822.
[0232] 8C illustrates the live communication session interface 804 immediately after starting a live communication session and before any participants (other than the participant associated with device 600) have joined the live communication session. As shown in FIG. 8C, the main representation 810 and the overflow representation 822 include placeholders for participants who are not connected to the live communication session. As shown in FIG. 8C, the placeholders include representations with a representation of the participant's name (e.g., first name, or first and last initial) and a colored object. In some embodiments, the color and / or pattern of each of the colored objects is different or selected from a set of predetermined colors and / or patterns. Optionally, the placeholders include a status indicator indicating that the participant is waiting to connect to the live communication session and a reminder affordance (“Call Out”) for sending a reminder to the corresponding participant that the live communication session is available. In some embodiments, the reminder affordance is not initially included in the placeholder and is displayed after a predetermined time following a determination that the corresponding participant is not participating in the live communication session.
[0233] As shown in Figure 8C, device 600 receives (e.g., detects) user input 850A (e.g., a tap) corresponding to selection of primary representation 810C. As shown in Figure 8D, in response to receiving user input 850A, device 600 modifies primary representation 810C to include additional identifying information (e.g., the participant's name, Marcel) and a reminder affordance 808A to send a reminder to the corresponding participant that a live communication session is available.
[0234] FIG. 8D also illustrates that the participant corresponding to primary representation 810B has joined the live communication session. In some embodiments, device 600 receives data indicating that the participant corresponding to primary representation 822B has joined the live communication session. As shown in FIG. 8D, in response to the participant corresponding to primary representation 822B joining the live communication session, device 600 replaces a placeholder in primary representation 822B with live video data from the corresponding participant. In some embodiments (e.g., FIG. 8AX), device 600 replaces overflow representation 822B corresponding to the participant with live video data from the participant. As used herein, the phrase “live video data from a participant” (or its equivalent) includes live video data transmitted by a device associated with the participant (e.g., a smartphone, laptop computer, desktop computer, or tablet computer) or a device associated with an account (e.g., an email account or cloud storage account) associated with the participant.
[0235] 8D , device 600 receives (e.g., detects) user input 850B (e.g., a tap) corresponding to selection of reminder affordance 808. In response to input 850B, device 600 sends instructions to cause a new notification (e.g., a phone call, a ringtone, etc.) to occur at a device associated with the corresponding participant indicating that a live communication session is available, where the new notification is different from any previous notification sent to the participant. In some embodiments, the new notification is more intrusive than the previous notification (e.g., an audio call, a haptic output, or a full-screen notification, etc., compared to a banner notification without audio or haptic output). 8D, device 600 also displays reminder affordance 808B on primary representation 810D to indicate that the participant corresponding to primary representation 810D is currently reminded that a live communication session is available (e.g., by a reminder sent by another participant currently connected to the live communication session, such as the participant represented by primary representation 810B, or by a reminder previously sent by the user of device 600). Device 600 also modifies reminder affordance 808A to indicate that the corresponding participant has been notified (e.g., by replacing "calling" with "calling," as shown in FIG. 8E).
[0236] 8E , upon determining that a predetermined amount of time has elapsed since the start of the live communication session, device 600 ceases displaying overflow representation 822 and increases the size of user representation 806. In some embodiments, main representation 810 is resized and / or moved when overflow representation 822 is removed. In the illustrated embodiment, main representation 810D is moved down. In some embodiments, device 600 ceases displaying overflow representation 822 upon determining that the number of participants currently participating in the live communication session is less than or equal to a threshold number of participants (e.g., five participants including the user of device 600).
[0237] At a time corresponding to Figure 8E, two participants have joined the live communication session. In some embodiments, after a further time, the device 600 ceases displaying one of the primary representations 810 and changes the layout of the live communication user interface 804 to a 3:1 layout. In some embodiments, the 4:1 layout and the 3:1 layout are included in a set of predetermined layouts that have similar relative placements of the primary representations 810. In some embodiments, having relatively similar placements of the primary representations includes placements where the primary representations remain in similar positions on the user display 602 when there is a transition between layouts in the set (e.g., the position of a representation in one layout overlaps the position of a representation in another layout of the same set).
[0238] In some embodiments, the device 600 determines which primary representation to remove based on whether the corresponding participant is participating in the live communication session (e.g., the representation is not removed if the corresponding participant is participating), whether the participant is being reminded (e.g., the representation of a reminded participant is not removed for a predetermined time after selecting the corresponding reminder affordance), the placement of the participant in the participant list (e.g., representations of participants earlier in the list are removed before representations of participants later in the list), and the placement of the representations on the live communication user interface 804 (e.g., representations closer to the top of the display 602 are removed before representations lower on the display 602). As shown in FIG. 8F , device 600 stops displaying primary representation 810A and moves primary representation 810B up (e.g., to reduce the overlap between representations 810B and 810C) while maintaining the relative vertical order of the remaining representations (e.g., representation 810B is larger than and above representation 810C, which is above and the same size as representation 810D). FIG. 8F also shows reminder affordance 808A being modified to “Resend,” indicating that the corresponding participant has been reminded at least once and is not currently being reminded. Reminder affordance 808B is also modified (e.g., from “Calling” to “Calling,” and a different color) to indicate that the corresponding participant has been reminded previously, but not by the user of device 600.
[0239] At the time corresponding to FIG. 8F, only two participants remain in the live communication session. In some embodiments, after a further time, the device 600 stops displaying the other primary representation 810 and changes the layout of the live communication user interface 804 to a 2:1 layout (e.g., in the same set of predetermined layouts as the 4:1 and 3:1 layouts shown in FIGS. 8E-8F). As shown in FIG. 8G, the device 600 stops displaying primary representation 810D and enlarges primary representations 810B and 810C. FIG. 8G illustrates a three-participant (e.g., 2:1) layout in which the primary representations of two participants other than the user of the device 600 are equally sized and arranged one above the other. The vertical order of primary representations 810B and 810C is maintained, with primary representation 810B above primary representation 810C. In the layout of FIG. 8F, there is no overlap between the primary representations, and the user representation 806 overlaps primary representation 810C.
[0240] At the time corresponding to Figure 8G, only two participants remain in the live communication session. In some embodiments, after a further time, the device 600 stops displaying the alternative primary representation and changes the layout of the live communication user interface 804 to a one-to-one layout. As shown in Figure 8H, the device 600 stops displaying the primary representation 810C and expands the primary representation 810B to full screen size. In some embodiments, the device 600 changes from the layout of Figure 8G to the layout of Figure 8H a predetermined time after selection of the reminder affordance 808A. Figure 8H is a two-participant (e.g., one-to-one) layout in which the remaining primary representation 810B is displayed full screen and is overlaid by the user representation 806. As shown in FIG. 8H, the remaining primary representation 810B and user representation 806 are vertically rectangular (e.g., in profile orientation) compared to the square-shaped primary representation 810 and user representation 806 in the 4:1, 3:1, and 2:1 layouts shown in FIGS. 8E-8G, respectively.
[0241] Turning to FIG. 8I , a third participant, Stephen, joins the live communication session. As shown in FIG. 8I , in response to participant Stephen joining the live communication session, device 600 transitions from displaying the one-to-one layout of FIG. 8H to a two-to-one layout in which a primary representation 810E of the most recently joined participant is above participants in representations 810B of existing participants (other than the user of device 600). In some embodiments, device 600 displays a notification 812 and / or generates an audio or haptic output indicating that the participant has joined the live communication session, as shown in FIG. 8I . In some embodiments, because a new primary representation is displayed when participant Stephen joins the live communication session, device 600 refrains from displaying notification 812 or generating an audio or haptic output so that primary representation 810E serves as an indication that a participant has joined the live communication session.
[0242] Participant Stephen joins the live communication session in audio-only mode, providing live audio data without video. Participant Stephen's audio-only communication status is indicated by main representation 810E and notification 812. Main representation 810E indicates the audio-only communication status by displaying the participant's name and an avatar associated with the participant. Notification 812 indicates the communication status with text ("Joined this call with audio"). As shown in FIG. 8J, device 600 stops displaying notification 812 (e.g., a predetermined time after participant Stephen joins the live communication session).
[0243] In some embodiments, in response to receiving data indicating that an audio-only participant is actively participating (e.g., speaking), device 600 displays a visual indication on the representation of the speaking participant. In Figure 8J, a representative image (e.g., an avatar) in primary representation 810E is animated (e.g., in a "voice circle") to indicate that participant Stephen is speaking.
[0244] Turning to Figure 8K, a fourth participant, Marcel, joins the live communication session. As shown in Figure 8K, in response to the fourth participant joining the live communication session, device 600 transitions from displaying a two-to-one layout to a three-to-one layout (e.g., as shown in Figure 8F) in which a primary representation 810F of the most recently joined participant is above primary representations 810B and 810E of existing participants (other than the user of device 600).
[0245] Participant Marcel joins the live communication session in video mode and provides live video and audio data. Participant Marcel's video communication status is indicated by main representation 810F. Main representation 810F indicates the video communication status by displaying a live video stream. As shown in FIG. 8K, device 600 does not immediately display a notification that participant Marcel has joined the live communication session.
[0246] Turning to FIG. 8L , a fifth participant, Hoan, joins the live communication session. As shown in FIG. 8L , in response to participant Hoan joining the live communication session, device 600 transitions from a 3:1 layout to a 4:1 layout in which the primary representation 810G of the most recently joined participant is the smallest primary representation and is positioned above and to the right of primary representation 810F. In some embodiments, upon determining that participants Marcel and Hoan have both joined the live communication session within a predetermined grace period, device 600 displays a combined notification 816 indicating that participants Marcel and Hoan have joined the live communication session, as shown in FIG. 8L . In some embodiments, combined notification 816 is displayed upon determining that the participants joined with the same communication state (e.g., video).
[0247] As shown by the live video stream displayed in main representation 810G and the video camera representation 816A in notification 816, participant Hoan joins the live communication session in video mode such that device 600 receives live video and audio data related to participant Hoan.
[0248] As shown in Figure 8L, device 600 receives (e.g., detects) user input 850C (e.g., a double tap) at the location of primary representation 810F on display 602. In some embodiments, as shown in Figure 8M, in response to receiving user input 850C, device 600 expands primary representation 810F to its largest representation size and reduces primary representation 810E to a medium size (while maintaining the 4:1 layout). As shown in Figure 8M, device 600 ceases displaying notification 816 (e.g., a predetermined time after participant Hoan joins the live communication session).
[0249] In some embodiments, the configuration of the layout is dynamically changed in response to receiving data indicating that participants are actively participating in the live communication session. In FIG. 8M, device 600 receives data indicating that participant Hoan, corresponding to primary representation 810G, is actively participating. As shown in FIG. 8M, in response to receiving data indicating that participant Hoan, corresponding to primary representation 810G, is actively participating, device 600 enlarges primary representation 810G from a small representation size to a medium representation size and reduces primary representation 810B from a medium representation size to a small representation size. In this way, the 4:1 layout maintains one small representation, two medium representations, and one large representation.
[0250] As shown in Figure 8M, device 600 receives (e.g., detects) user input 850D (e.g., a double tap) at the location of primary representation 810G on display 602. In some embodiments, as shown in Figure 8N, in response to receiving user input 850D, device 600 enlarges primary representation 810G, pushing primary representation 810G in front of other displayed primary representations. The background behind enlarged primary representation 810G is grayed out, except for user representation 806.
[0251] As shown in Figure 8O, device 600 receives (e.g., detects) user input 850E (e.g., a tap) on cancel affordance 818. As shown in Figure 8P, in response to receiving user input 850E, device 600 reduces the size of primary representation 810G and returns the display to the 4:1 layout that was displayed prior to user input 850D, except that primary representation 810G occupies the large primary representation instead of primary representation 801F, which has been reduced to a medium representation size.
[0252] 8Q , a sixth participant joins the live communication session. As shown in FIG. 8Q , in response to the sixth participant joining the live communication session and in response to the number of connected participants exceeding the predetermined threshold of five participants, device 600 displays an overflow representation 822A of the sixth participant in overflow area 820 and moves user representation 806 into overflow area 820 so that overflow representation 822A is to the left of user representation 806. As shown in FIG. 8Q , overflow representation 822A and user representation 806 are aligned in the center of overflow area 820. In some embodiments, device 600 replaces the smallest primary representation (e.g., 810B) with the representation of the newly joined participant (e.g., the sixth participant) and displays the replaced participant's overflow representation in overflow area 820 (e.g., representation 810B is reduced in size and moved to the position of overflow representation 822A in overflow area 820). In some embodiments, in response to a sixth participant joining the live communication session and the number of connected participants exceeding a predetermined threshold of five participants, the device 600 displays an overflow representation of the currently joined participants or all participants (currently joined participants and invited participants) in the overflow area, as shown, for example, in FIG. 8AY.
[0253] As shown in FIG. 8Q, overflow region 820 and primary representation 810 do not overlap. In some embodiments, to make room for the overflow region, device 600 reduces the size and / or translates vertically one or more of the primary representations. In some embodiments, device 600 reduces the size of the medium-sized primary representation and maintains the size of the small and large-sized primary representations. In some embodiments, device 600 reduces the vertical gap between the primary representations and / or increases the vertical overlap.
[0254] Turning to FIG. 8R, a seventh participant joins the live communication session. In response to the seventh participant joining the live communication session, device 600 adds overflow representation 822B of the seventh participant to the left of overflow representation 822A in overflow area 820. As shown in FIG. 8R, overflow representation 822A and user representation 806 are moved to the right (relative to FIG. 8Q) so that overflow representations 822A and 822B and user representation 806 are aligned in the center of overflow area 820. In some embodiments, overflow representation 822B of the seventh participant is added to the right of overflow representation 822A, between overflow representation 822A and user representation 806. In the embodiment shown in FIG. 8AZ, in response to the seventh participant joining the live communication session, device 600 replaces the smallest primary representation (e.g., 810H in FIG. 8AY) with primary representation 810I and changes overflow representation 822F corresponding to participant Pablo from a placeholder to a live video stream.
[0255] As shown in Figure 8S, an eighth participant has joined the live communication session. In response to the eighth participant joining the live communication session, device 600 adds overflow representation 822C of the eighth participant to the left of overflow representation 822B in overflow area 820. As shown in Figure 8S, overflow representations 822A and 822B and user representation 806 are moved to the right (relative to Figure 8Q) so that overflow representations 822A, 822B, and 822C and user representation 806 are aligned with the center of overflow area 820.
[0256] Turning to FIG. 8T , a ninth participant has joined the live communication session. In response to the ninth participant joining the live communication session, device 600 adds overflow representation 822D of the ninth participant to the left of overflow representation 822C in overflow area 820. As shown in FIG. 8T , overflow representations 822D, 822C, and 822B and user representation 806 are fully displayed. Overflow representation 822A is partially displayed, with user representation 806 overlapping its right-hand portion. Overflow representation 822A is shaded (e.g., with a shading effect) where overflow representation 822A meets user representation 806. In the illustrated embodiment, the sizes of overflow representation 822 and user representation 806 remain the same as when the seventh, eighth, and ninth participants joined the live communication session. 8T shows that device 600 displays a combined notification 824 indicating that participants Mary, Mick, John, and Tom (represented by overflow representations 822A, 822B, 822C, and 822D, respectively) have joined the live communication. In some embodiments, as additional participants (e.g., beyond the ninth participant) join the live communication session, the existing overflow representations shift to the right within overflow region 820 to make room for the new overflow representations, with user representation 806 remaining fully displayed on the right side of overflow region 820, and the overflow representation of the newly joined participant being added to the left end of the existing overflow representations (e.g., the existing overflow representations are scrolled to the right, "below" user representation 806). In some embodiments, the overflow representation of the newly joined participant is added to the right end of the existing overflow representations, with user representation 806 remaining fully displayed on the right side of overflow region 820. In some embodiments, if the overflow area is fully occupied, a representation of a newly joined participant that is added to the right edge of an existing overflow representation is not immediately displayed (e.g., the new overflow representation is displayed in response to scrolling the overflow representation to the left).
[0257] 8U , device 600 receives data indicating that a participant corresponding to overflow representation 822B is actively participating in the live communication session. In some embodiments, device 600 replaces the primary representation with a representation of the actively participating participant in response to determining that the activity level of the actively participating participant has risen above the activity level of the participant represented by the primary representation. In the illustrated embodiment, in response to receiving data indicating that a participant corresponding to overflow representation 822B is actively participating in the live communication session, device 600 replaces the smallest primary representation with a representation of the actively participating participant and displays an overflow representation of the participant corresponding to the replaced primary representation. 8U, primary representation 810B (the smallest primary representation) begins to shade or fade, overflow representations 822B of actively participating participants begin to shade or fade out and reduce in size, and overflow representations 822C and 822D are shifted to the right as a new overflow representation 822E corresponding to the participant in primary representation 810B (the replacing primary representation) enters overflow region 820 from the left edge of display 602 to the left of overflow representation 822D. In some embodiments, primary representation 810B is enlarged slightly (e.g., to emphasize that it is being replaced). As shown in Figures 8V-8W, primary representation 810B is replaced by primary representation 810H of the actively participating participant, overflow representation 822B continues to shrink until it is deleted, and overflow representations 822C and 822D continue to shift to the right until overflow representation 822E is fully displayed and overflow representation 822C occupies the position in overflow region 820 previously occupied by deleted overflow representation 822B. In Figures 8U-8W, overflow representation 822A and user representation 806 remain in the same positions.
[0258] In some embodiments, in response to the active participation of the user of device 600, device 600 visually distinguishes user representation 806. In the embodiment shown in Figures AZ, device 600 displays a thick border around user representation 806 and highlights an initial bar below user representation 806.
[0259] Turning to FIG. 8X, the device 600 is rotated from a portrait (vertical) orientation to a landscape (horizontal) orientation. As shown in FIG. 8X, as the device 600 is rotated, the device 600 maintains the representations in their respective areas of the display 602 that were occupied prior to the device 600 rotation (e.g., the user representation and each of the main and overflow representations occupy the same area on the display 602 before and after the device 600 rotation). The images in the representations are rotated so that the participant is upright relative to the landscape orientation. In some embodiments, the device 600 displays an animated rotation of the main representation or an image in the main representation (e.g., 90 degrees opposite to the direction of the device 600 rotation). In some embodiments in which the overflow representations are not square, as the device 600 is rotated, the participant's video data is cropped and / or translated to include (e.g., center) the user's face in each overflow representation. In some embodiments where the primary representations are not square, when device 600 is rotated, the participants' video data is cropped and / or translated to center the user's face in their respective primary representations. In some embodiments, the participants' video data is cropped to include the user's face (whether or not device 600 is rotated, e.g., when the received video data has a different aspect ratio or format than the displayed representation).
[0260] As shown in Figure 8X, the participant corresponding to primary representation 810H begins actively participating. In response, device 600 enlarges primary representation 810H and reduces the size of primary representation 810E, as shown in Figure 8Y. In the embodiment shown in Figures 8BA-8BB, device 600 visually distinguishes overflow representation 822F corresponding to the active participant (e.g., by an emphasized initial bar).
[0261] In some embodiments, in response to a participant joining the live communication session, device 600 replaces the existing primary representation with the primary representation of the newly joined participant and moves the replaced participant to overflow area 820. Turning to FIG. 8Z, participant Pablo joins the live communication session. In response, device 600 replaces the smallest primary representation 810E (Stephen) with the primary representation 810I of the newly joined participant Pablo and displays overflow representation 822F (Stephen) in overflow area 820. To make room for overflow representation 822F, overflow representations 822A, 822C, 822D, and 822E are scrolled (e.g., upward, depending on the orientation of device 600 shown in FIG. 8Z). As shown in FIG. 8Z, overflow representation 822A is no longer visible and overflow representation 822C is partially obscured by user representation 806.
[0262] 8AA, device 600 is rotated from a landscape (horizontal) orientation to a portrait (vertical) orientation. In response, device 600 rotates the images of the participants in the representations while preserving the area on the display occupied by each representation (e.g., device 600 reverses the rotation made in response to the device being rotated from a portrait to a landscape orientation).
[0263] In FIG. 8AB, the participant corresponding to primary representation 810G has left (disconnected) the live communication session. Optionally, as shown in the embodiment shown in FIG. 8BC, in response, device 600 displays notification 828 indicating that the participant has left the live communication session. Because the number of participants remains greater than five, device 600 maintains the 4:1 layout with the display of overflow area 820. As shown in FIG. 8AC, primary representation 810G is replaced with primary representation 810J of participant Stephen, who has the next highest activity level, and overflow representation 822F corresponding to participant Stephen is removed from overflow area 820. Once overflow representation 822F is removed, the remaining overflow representations 822A, 822C, 822D, and 822E are scrolled to the left. In the embodiment shown in FIG. 8BD, overflow representation 822D of participant Hoan is updated to display a placeholder indicating that participant Hoan is not connected and a reminder affordance to request participant Hoan to rejoin.
[0264] In some embodiments, when a participant leaves the live communication session, if the number of participants in the live communication decreases from six to five, device 600 ceases displaying overflow region 820 and, optionally, increases the size and / or vertical spacing of one or more of the main representations.
[0265] In Figure 8AC, device 600 receives (e.g., detects) user input 850F (e.g., a double tap) corresponding to selection of overflow representation 822E of participant Allison. As shown in Figure 8AD, in response to receiving user input 850F, device 600 displays enlarged representation 830 of participant Allison in front of the currently displayed main representation 810 in a 4-to-1 layout. The display of enlarged representation 830 is similar to the display of enlarged representation 810G in Figure 8N, except that enlarged representation 830 is not pushed forward from the main representation in the 4-to-1 layout.
[0266] As shown in FIG. 8AD, device 600 receives (e.g., detects) user input 850G (e.g., a tap) corresponding to selection of close affordance 818. As shown in FIGS. 8AE-8AF, in response to receiving user input 850F, device 600 displays primary representation 810K of participant Allison in place of primary representation 810J of participant Stephen (e.g., the least active participant with the current primary representation). Primary representation 810K (at least initially) includes a ribbon (or band) 842A along a lower portion of its border, which includes the participant's name and an affordance for enlarging the representation (e.g., as shown in FIG. 8AD). FIGS. 8AE-8AF show an example animation of primary representation 810J being replaced with primary representation 810K. Primary representation 810K is initially displayed at a small representation size (similar to primary representation 810J in FIG. 8AC) and then enlarges to a medium representation size, while primary representation 810H is reduced from medium to small. Overflow representation 822E corresponding to participant Allison reduces in size and / or fades out, while overflow representation 822F of the replaced participant translates within overflow region 820. In some embodiments, ceasing to display primary representation 810J and displaying primary representation 810K includes a cross-fade from primary representation 810J to primary representation 810K and / or a color hue that creates a "flash" effect. Figures 8BE-8BH show embodiments in which primary representation 810J is removed with a flash effect.
[0267] In some embodiments, overflow region 820 is scrollable. With reference to the embodiment shown in Figures 8BH-8I, device 600 scrolls overflow representation 822 within overflow region 820 in response to active participation by participants whose corresponding overflow representations are not currently displayed or are not fully displayed. As shown in Figure 8BH, overflow representation 822F of a participant (corresponding to primary representation 810I) is partially obscured within overflow region 820. In Figure 8BH, the participant corresponding to primary representation 810I actively participates in the live communication session. As shown in Figure 8BI, in response to receiving data indicating that the participant corresponding to primary representation 810I is actively participating, device 600 expands primary representation 810I, scrolls overflow representation 822F so that overflow representation 822F is fully displayed (e.g., near the center of the displayed portion of overflow region 820), and visually indicates overflow representation 822F by highlighting the initial bar at the bottom of overflow representation 822F.
[0268] Turning to Figure 8AG, device 600 detects contact 850H, which remains in contact with display 602 and is moved horizontally from right to left over overflow region 820. As shown in Figure 8AH, in response to receiving contact 850H, device 600 scrolls overflow representation 822 to the left on display 602 so that overflow representation 822F is partially off the left edge of display 602 and user representation 806 no longer overlaps overflow representation 822A. ISE, contact 850H and overflow representation 822 move horizontally by the same amount.
[0269] The main representation 810 remains unchanged while scrolling the overflow region 820. Also, the user representation 806 remains within the overflow region 820.
[0270] 8BJ-8BK, contact 850H begins on the left side of overflow region 820 and is moved horizontally to the right. In response, device 600 scrolls overflow representation 822 to the right on display 602. In FIGS. 8BJ-8BK, device 600 removes (e.g., ceases to display) representation 822 from display 602 when the representation reaches user representation 806.
[0271] 8AH, device 600 receives (e.g., detects) user input 850I (e.g., a tap) at a location on display 602 where primary representation 810 is not displayed. As shown in FIG. 8AI, in response to receiving user input 850I, device 600 displays call control menu 832 including call affordance 834 (e.g., for leaving the live communication session), effect affordance 836, menu affordance 838, and handle affordance 840.
[0272] 8AI, the call control menu 832 does not overlap the overflow region 820 and the primary representation 810. To make room for the call control menu 832, the device 600 reduces the size and / or translates vertically one or more of the primary representations 810 (e.g., reduces the size of the canvas area 811) and moves the overflow region 820 up on the display 602. In some embodiments, the device 600 reduces the size of the medium-sized primary representation and maintains the size of the small and large primary representations. In some embodiments, the device 600 reduces the vertical gap and / or increases the vertical overlap between the primary representations.
[0273] In response to receiving user input 850I, device 600 also displays ribbons 842A-842D on each of the primary representations. Ribbons 842A-842D include the name of the corresponding participant and an affordance for expanding the representation (e.g., as shown in FIG. 8O). In some embodiments, the vertical height of ribbons 842A-842D is the same as the amount of vertical overlap between the primary representations.
[0274] 8AJ, device 600 receives (e.g., detects) user input 850J (e.g., a tap) corresponding to selection of menu affordance 838. In some embodiments, user input 850J includes an upward swipe (e.g., on handle affordance 840) starting from call control menu 832. As shown in FIG. 8AK, in response to user input 850J, device 600 expands call control menu 832 to display additional information and controls related to the live communication session, similar to the additional information and controls described with respect to call control menu 630 of FIG. 6H.
[0275] As shown in FIG. 8AL, device 600 receives (e.g., detects) user input 850K (e.g., a tap) corresponding to selection of effect affordance 836. As shown in FIG. 8AM, in response to receiving user input 850K, device 600 displays a magnified image 843 from camera 603 of the user of device 600 and modifies call control menu 832. In the modified call control menu 832, effect affordance 836 is highlighted and effect option affordances 844A-844E are displayed. In FIG. 8AN, device 600 receives (e.g., detects) user input 850L (e.g., a tap) corresponding to selection of effect option affordance 844A. As shown in FIG. 8AO, in response to receiving user input 850L, device 600 modifies call control menu 832 to include avatar option affordances 846A-846C. In FIG. 8AO, device 600 receives (e.g., detects) user input 850M (e.g., a tap) corresponding to selection of avatar affordance 846C. As shown in FIG. 8AP, in response to receiving user input 850M, device 600 displays effect 843A over the user's face in image 843 and scrolls call control menu 832 to position affordance 846C of the currently selected avatar at the center of call control menu 832. In FIG. 8AP, device 600 receives (e.g., detects) user input 850N (e.g., a tap) on cancel affordance 848. As shown in FIG. 8AQ, in response to receiving user input 850N, device 600 returns call control menu 832 to the configuration of FIG. 8AN and maintains the display of effect 843A on enlarged image 843. 8AQ, device 600 receives (e.g., detects) user input 850O (e.g., a tap) on display 602 outside of enlarged image 843 and call control menu 832. As shown in FIG. 8AR, in response to receiving user input 850O, device 600 ceases displaying enlarged image 843 and displays effect 843A over the image of the user in main representation 806.When effect 843A is activated, the live video stream of the user of device 600 includes effect 843A, as in FIG. 8AR.
[0276] As shown in FIG. 8AR, call control menu 832 includes media affordance 844E. Device 600 receives (e.g., detects) user input 850P (e.g., a tap) corresponding to selection of media affordance 844E. As shown in FIG. 8AS, in response to receiving user input 850P, device 600 modifies call control menu 832 to include media option affordances 852A-852D. In FIG. 8AS, device 600 receives (e.g., detects) user input 850Q (e.g., a tap) corresponding to selection of media option affordance 852A (sketch). In response to receiving user input 850Q, device 600 displays a representation of media content associated with media option affordance 852A in canvas region 811.
[0277] As shown in Figure 8AT, in response to receiving user input 850Q, device 600 replaces primary representation 810K (e.g., a minimal primary representation) with representation 810L of the selected media item. In Figure 8AT, device 600 receives (e.g., detects) user input 850R (e.g., a downward swipe on call control menu 832) corresponding to a request to dismiss call control menu 832. As shown in Figure 8AU, in response to receiving user input 850R, device 600 ceases displaying call control menu 832.
[0278] In some embodiments, selection of media option affordance 852A causes the associated media content to be shared with other participants in the live communication session (e.g., displayed in a canvas area on the display of another participant's device). In some embodiments, participants in the live communication session can interact with the shared media content (e.g., through a sequence of one or more inputs in a user interface of a live communication application). FIG. 8AV illustrates an embodiment in which additional feature 810L-1 has been added to the media content of representation 810L. In some embodiments, in response to a participant's interaction with the media content associated with representation 801L, device 600 expands representation 801L (e.g., similar to how a main representation is expanded and then selected, or how a participant corresponding to the representation actively participates). As shown in FIG. 8AV, representation 810L expands in response to a participant's interaction with the associated media content (as compared to FIG. 8AT). FIG. 8AV also illustrates representation 810M of other content (e.g., a game between two participants) shared in the live communication session.
[0279] 9A-9K are flow diagrams illustrating a method according to some embodiments. Method 900 is performed on a device including a display (e.g., 100, 300, 500, or 600). Some operations of method 900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0280] As described below, method 900 provides, among other things, an intuitive way to provide an adaptive and intelligent live communications user interface. Additionally, among other things, method 900 provides an intuitive way for a user to interact with the live communications user interface. This method reduces the cognitive burden on the user by providing an adaptive and intelligent live communications interface based on the number of participants in the live communications, thereby creating a more efficient human-machine interface. For battery-operated computing devices, allowing a user to view a live communications user interface based on a predetermined number of participants in the live communications results in faster, more efficient power conservation and longer battery life.
[0281] In block 901, a device receives a request (eg, 850A) to display a user interface for a live communication session between two or more participants.
[0282] In block 902, in response to receiving a request to display a user interface for a live communication session between two or more participants, the device displays a live communication user interface (e.g., 804), including simultaneously displaying representations (e.g., 810A-810D) of the multiple participants in the live communication session, where displaying representations of the multiple participants in the live communication session includes blocks 902 and 903. In some embodiments, the live communication session user interface includes a placeholder (e.g., 810A of FIG. 8C ) (e.g., a graphic placeholder (e.g., an image or virtual avatar), a text placeholder (e.g., a name or initials)) associated with a first participant invited to the live communication session but not yet joined the live communication session (e.g., a participant other than the user of the electronic device who has not yet joined the communication session and to whom an invitation to join the communication session has been sent). In some embodiments, if a participant is sharing a live media stream that includes a live video stream, the representation includes an image of the live video stream (e.g., 810B of FIG. 8D ). In some embodiments, if a participant is sharing an audio-only live video stream, the representation includes an avatar of each participant (e.g., 810B in FIG. 8I). In some embodiments, the representation of multiple participants in a live communication session includes a user communication state selected from the group consisting of an audio-only state (e.g., a participant is communicating using audio only), a video state (e.g., a participant is speaking using video and audio), a video-paused state (e.g., a participant's video is paused), a video-not-decoded state (e.g., a participant's video stream cannot be processed due to latency issues, video stream format issues, etc.), a left state (e.g., a participant has left the live communication session), and a waiting-to-join state (e.g., a participant has been invited to the live communication session but has not yet joined the live communication).
[0283] In block 903, upon determining that the number of participants in the live communication session is greater than the threshold number of participants, the device simultaneously displays representations of a first plurality of participants (e.g., 810A-810D) other than the user of the electronic device at one or more sizes greater than their respective threshold sizes, while displaying representations of a second plurality of participants (e.g., 822) in an overflow area (e.g., 820), the second plurality of participants including one or more participants not included in the first plurality of participants, with representations of one or more other participants displayed in the overflow area displayed at sizes smaller than their respective threshold sizes. In some embodiments, a currently active participant (e.g., 810E of FIG. 8J) (e.g., the most active participant, the participant speaking or moving to meet a set of criteria for an active participant) is displayed as part of the first plurality of participants. In some embodiments, the currently active participant is displayed in a main area (e.g., 811) of the user interface (e.g., the area where the first plurality of participants is displayed). In some embodiments, if a participant not currently displayed in the main area (e.g., the participant corresponding to 822B in FIG. 8U) becomes the currently active participant, a representation of that participant (e.g., 810H in FIG. 8V) is displayed in the main area. In some embodiments, the representations of the first plurality of participants (e.g., 810) are displayed at two or more different sizes (e.g., more active or more recently active participants are displayed at a larger size than less active or less recently active participants), and the representations of the second plurality of participants in the overflow area (e.g., 822) are displayed at the same size.
[0284] In some embodiments, the overflow area (e.g., 820) further includes representations (e.g., 810A-810D) of a first plurality of participants (e.g., representations of participants displayed in the main area of the user interface are also displayed in the overflow area) (e.g., FIG. 8AX). In some embodiments, the overflow area (e.g., 820) further includes placeholder representations (e.g., 822A in FIG. 8AW) (e.g., avatars, names, initials) for invitees to the live communication session who are not currently connected to the live communication session. Displaying the representations of participants differently based on whether a predetermined condition is met (e.g., based on whether the live communication session has more than a certain number of participants) allows a user to more easily or efficiently view the representations of participants in the live communication session. By performing optimized operations without requiring further user input when a set of conditions are met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, the device's power usage is reduced and battery life is improved by allowing the user to use the device more quickly and efficiently.
[0285] Optionally, in blocks 904 and 905, the device updates a display (e.g., arrangement, positions, sizes, locations, visual indications, visual content, and / or video feeds of the representations of a first plurality of participants (e.g., 810A-810D) at a first rate (e.g., the representations of the first plurality of participants are live video feeds updated at a typical video refresh rate or a higher frame rate, such as 24, 30, or 60 frames per second), and updates a display (e.g., arrangement, positions, sizes, locations, visual indications, visual content, and / or video feeds of the representations) of a second plurality of participants (e.g., 822) in the overflow area at a second rate, the second rate being lower than the first rate (e.g., thumbnails in the overflow area are updated over time but at a rate lower than the video refresh rate of the representations of the plurality of participants in the canvas area 811, such as 1, 5, or 10 frames per second). Updating the display of sets of representations at different rates allows the device to provide feedback to the user regarding the current state of the representations in the live communication while conserving processing power to provide sets of representations at a faster rate than other sets of representations, thereby demonstrating to the user the ability to view higher priority sets of representations at a higher rate. Providing improved visual feedback to the user enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0286] Optionally, at block 906, the device displays a representation (e.g., 806) of the electronic device's camera view (e.g., self-view camera view) in the overflow area while displaying representations (e.g., 822) of a second plurality of participants in the overflow area (e.g., 820). Displaying the representation of the electronic device's camera view provides the user with visual feedback regarding the current state of the user's camera view (e.g., what the user is showing to other participants in the live communication session). Providing the user with improved visual feedback enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0287] Optionally, in blocks 907, 908, 909, and 910, the device detects an input (e.g., 850H) (e.g., a horizontal finger drag) corresponding to the overflow region. In response to detecting the input corresponding to the overflow region, the device scrolls the overflow region (e.g., receives the input and scrolls the representations of the second plurality of participants in a first direction) to cease displaying (e.g., to hide) a subset of the representations of the second plurality of participants (e.g., 822G and 822H in FIGS. 8BJ-8BK). While scrolling the overflow region, the device maintains a representation (e.g., 806) of a camera of the electronic device within the overflow region (e.g., FIGS. 8BJ-8BK). In some embodiments, scrolling the overflow region includes displaying an animation of one or more representations of the second plurality of participants that appear to scroll below the representation of the camera of the device. By maintaining the display of a representation of the electronic device's camera's view while scrolling the overflow area, continuous feedback is provided to the user regarding the current state of the electronic device's camera's view (e.g., what the user is showing to other participants in a live communication session) while allowing the user the ability to scroll through representations of participants in the overflow area. Providing improved visual feedback to the user enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0288] Optionally, blocks 911, 912, and 913 detect an input (e.g., 850F) corresponding to a selection of a representation (e.g., 822E of FIG. 8AC) of the second plurality of participant representations in the overflow area (e.g., a tap gesture corresponding to the representation in the overflow area or a gesture having a characteristic intensity above an intensity threshold corresponding to the representation in the overflow area). In response to detecting the input corresponding to a selection of a representation of the second plurality of participant representations in the overflow area, the device replaces the display of a representation (e.g., 810J of FIG. 8AC) of the first plurality of participant representations with a representation of the participant (e.g., 810K of FIG. 8AE) corresponding to the selected representation in the overflow area (e.g., replacing the least recently active participant in the main display). In some embodiments, replacing the display of a representation of the first plurality of participant representations with a representation of the participant corresponding to the selected representation in the overflow area includes ceasing display of the selected representation of the second plurality of participant representations in the overflow area. In some embodiments, ceasing to display the selected representation in the overflow area includes animating the selected representation to shrink. In some embodiments, other representations in the overflow area are translated to fill the gap where the selected representation was displayed. In some embodiments, replacing the display of a representation of the first plurality of participant representations with a representation of the participant corresponding to the selected representation in the overflow area includes displaying the representation of the participant corresponding to the selected representation at a first size, and then enlarging the representation of the participant corresponding to the selected representation to a second size larger than the first size. In some embodiments, the representation of the selected participant automatically increases in size (e.g., to a medium representation size) after replacing the smallest representation in the canvas area (corresponding to the participant with the least active level in the canvas area), while other representations (corresponding to participants with the next least active level in the canvas area) decrease in size (e.g., to a small representation size).
[0289] Replacing the display of a representation that corresponds to the selected representation in the overflow region and / or ceasing to display the selected representation in the overflow region gives the user more control over the device and the display of the representation by providing additional control options without cluttering the UI and assisting the user in quickly replacing the representation with the user's selected representation. Providing additional control without cluttering the UI with additional displayed controls enhances usability of the device and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0290] Optionally, in block 914, the device displays a first animation effect affecting a representation of the first plurality of participants (e.g., FIGS. 8AA-8AC) (e.g., the representation gets larger and then smaller, optionally with cross-fading and color tingeing to create a "flash" effect). Optionally, in block 915, the device displays a second animation effect affecting a selected representation of the second plurality of participants (e.g., FIGS. 8BF-8BH) that shares animation characteristics with the first animation effect (e.g., the rate of fading / shrinking from the main display may correspond to the flashing rate of the overflow display). Displaying the second animation corresponding to the first animation provides visual feedback to quickly identify which representation is being switched and / or replaced. Providing improved visual feedback to the user enhances the usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0291] Optionally, block 916 further includes, in response to detecting an input (e.g., 850H) corresponding to the overflow region, the device displays new (e.g., previously hidden) representations (e.g., 822A in FIGS. 8AG-8AH) of the second plurality of participants in the overflow region. Displaying new representations of participants in the overflow region in response to the input increases the accessibility of the displayed representations, thereby allowing the user to view the representations more easily and efficiently. Optimized operation without requiring further user input when a set of conditions is met enhances device usability and makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), as well as reducing device power usage and improving battery life by allowing the user to use the device more quickly and efficiently.
[0292] Optionally, in block 917, in response to receiving data indicating that a new participant has joined or been added to the live communication session, the device displays a representation of the new participant (e.g., 822B in FIG. 8R) in the overflow area at the end of the series of representations of the second plurality of participants in the overflow area.
[0293] Optionally, in blocks 918, 919, 920, and 921, the device receives second data regarding an activity (e.g., speaking, movement) level of a first participant in the second plurality of participants. In response to receiving the second data, the device emphasizes (e.g., increases or initiates) a visual characteristic (e.g., size, highlighted representation (e.g., display border), animation (e.g., pulsating avatar), image foreground) of a representation (e.g., 822B of FIG. 8U ) corresponding to the first participant's representation in the representations of the second plurality of participants in the overflow area due to an increase in the activity level of the first participant in the second plurality of participants. In response to receiving the second data, the device de-emphasizes (e.g., increases or initiates) a visual characteristic (e.g., size, highlighted representation (e.g., display border), animation (e.g., pulsating avatar) image foreground) of a representation (e.g., 822B of FIG. 8U ) corresponding to the first participant in the representations of the second plurality of participants in the overflow area due to a decrease in the activity level of the first participant in the second plurality of participants. By highlighting and / or de-highlighting the visual indication when predetermined conditions are met, a user can quickly recognize the activity level of participants, including the most and / or least active participants. Performing optimized operation without requiring further user input when a set of conditions is met enhances device usability, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces device power usage and improves battery life by allowing the user to use the device more quickly and efficiently. Additionally, highlighting and / or de-highlighting when predetermined conditions are met provides the user with visual feedback indicating each participant's activity level.Providing improved visual feedback to the user enhances the usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0294] Optionally, at blocks 922 and 923, while displaying the live communication user interface, the device detects a second participant of the second plurality of participants to be the currently active participant (e.g., the most active participant, the participant speaking or moving to meet a set of criteria for an active participant). In response to detecting the second participant of the second plurality of participants to be the currently active participant, and upon determining that a representation of the second participant of the second plurality of participants is not currently displayed in the overflow area, the device scrolls the overflow area to display a representation of the second participant of the second plurality of participants (e.g., 822F in FIGS. 8BH-8BI) in the overflow area. Dynamically scrolling the overflow area to display the active participants in the overflow area enables viewing of the representation of the active participant in the overflow area without selecting any additional input. Reducing the number of inputs required to perform an operation increases the usability of the device, makes the user-device interface more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and also reduces the device's power usage and improves battery life by allowing the user to use the device more quickly and efficiently.
[0295] At block 924, upon determining that the live communication session includes a number of participants that is less than or equal to the threshold number of participants, the device displays representations of participants other than the user of the electronic device at one or more sizes greater than the respective threshold sizes without displaying representations of participants other than the user of the electronic device at one or more sizes less than the respective threshold sizes (e.g., FIG. 8P). In some embodiments, the electronic device receives (e.g., prior to displaying a user interface for the live communication session) multiple live media streams associated with each of the multiple participants in the live video communication session. In some embodiments, the number of received live media streams corresponds to the number of participants currently participating in the live video communication session, not including the participant using the device. By displaying the representations of participants differently based on whether a predetermined condition is met (e.g., displaying representations without an overflow area based on whether the live communication session is less than or equal to the number of participants), a user may more easily or more efficiently view the representations of participants in the live communication session. By performing optimized operations without requiring further user input when a set of conditions are met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, the device's power usage is reduced and battery life is improved by allowing the user to use the device more quickly and efficiently.
[0296] In some embodiments, upon determining that the number of participants in the live communication session is less than a second threshold number of participants, none of the multiple representations of the remote participants (e.g., participants other than the user) overlap one another (e.g., FIG. 8J). In some embodiments, upon determining that the number of participants in the live communication session is greater than or equal to the second threshold number of participants, at least some of the multiple representations of the remote participants (e.g., participants other than the user) overlap one another (e.g., FIG. 8K).
[0297] Optionally, at blocks 925 and 926, upon determining that the number of participants in the live communication session is less than a second threshold number of participants (e.g., two participants including the user of the electronic device (e.g., one other participant)), the device displays at least one of the representations of participants other than the user of the device in a first aspect ratio (e.g., 810B of FIG. 8H) (e.g., a rectangular aspect ratio). Upon determining that the number of participants in the live communication session is more than the second threshold number of participants (e.g., three or more participants), the device displays at least one of the representations of participants other than the user of the device in a second aspect ratio different from the first aspect ratio (e.g., a square aspect ratio) (e.g., 810B of FIG. 8I). By displaying representations of participants in different aspect ratios based on the number of participants in a live communication session based on the satisfaction of predetermined conditions, the device can provide a better user experience based on the number of participants by maximizing the size of the representations and / or organization of representations, and can provide an intelligent live communication user interface that allows users to view the representations on the device more easily and efficiently. By performing optimized operation without requiring further user input when a set of conditions is met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, by allowing the user to use the device more quickly and efficiently, the device's power usage is reduced and battery life is improved.
[0298] Optionally, at blocks 927 and 928, upon determining that the number of participants in the live communication session is less than a second threshold number of participants (e.g., two participants), the device displays a representation of the device's camera view (e.g., a self-view from the device's camera) in a third aspect ratio (e.g., a rectangular aspect ratio) (e.g., 806 in FIG. 8H ). Upon determining that the number of participants in the live communication session is equal to or greater than the second threshold number of participants (e.g., three or more participants), the device displays a representation of the device's camera view (e.g., a self-view from the device's camera) in a fourth aspect ratio (e.g., a square aspect ratio) that is different from the third aspect ratio (e.g., 806 in FIG. 8J ). By displaying a representation of the device's camera view in different aspect ratios based on the number of participants in the live communication session based on a predetermined condition being met, the device may provide an intelligent live communication user interface by maximizing the size of the representation of the camera view to the user, allowing the user to view the representation on the device more easily and more efficiently. By performing optimized operations without requiring further user input when a set of conditions are met, the device's usability is enhanced, the user-device interface is made more efficient (e.g., by assisting the user in providing appropriate inputs when operating / interacting with the device and reducing user errors), and in addition, the device's power usage is reduced and battery life is improved by allowing the user to use the device more quickly and efficiently.
[0299] Optionally, at blocks 929 and 930, in response to the number of participants in the live communication session becoming a first number of participants, the device displays representations of the participants ...
Claims
1. In an electronic device having a display, displaying a messaging user interface of a messaging application, the messaging user interface including a message area including a plurality of messages in a message conversation between three or more participants; receiving first data indicating that a live communication session available to the three or more participants is active; in response to receiving the first data indicating that the live communication session between the three or more participants is active, displaying a notification indicating that the live communication session is active; receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active; in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active, ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active; A method comprising:
2. Displaying the notification indicating that the live communication session is active includes displaying the notification indicating that the live communication session is active in a first position of the message area, the method comprising: The method of claim 1 , further comprising moving the notification indicating that the live communication session is active from the first location in the message area to a second location.
3. The indication that the live communication session is active includes a live communication join affordance, and the method further comprises: receiving a first user input corresponding to a selection of the live communication participation affordance; In response to receiving the first user input corresponding to a selection of the live communication join affordance, joining the live communication session; The method of claim 1 or 2, further comprising:
4. The indication that the live communication session is active is displayed without generating a corresponding audio output, and the method further comprises: receiving reminder data indicative of a reminder to participate in the live communication; generating, by one or more audio output devices of the device, an audio output indicating that the live communication session is active, in response to receiving the reminder data indicating the reminder to participate in the live communication; The method of claim 1 , further comprising:
5. The indication that the live communication session is active includes a menu access affordance, and the method further comprises: receiving a second user input corresponding to a selection of the menu access affordance; and in response to receiving the second user input corresponding to a selection of the menu access affordance, displaying a menu including a video join option and an audio-only option; receiving a third user input while displaying the menu; and in response to the third user input corresponding to a selection of the video join option, joining the live communication session with audio and video transmitted from the electronic device; in response to the third user input corresponding to a selection of the audio-only join option, joining the live communication session using audio transmitted from the electronic device without transmitting video data from the electronic device; The method of claim 1 , further comprising:
6. The method of claim 1 , wherein the notification that the live communication session is active is displayed in the message area.
7. receiving third data indicating a second live communication session is available between the two or more participants; In response to the second live communication session being available between the two participants, displaying a first type of notification indicating that the second live communication is active; In response to the second live communication session being available between three or more participants, displaying a second type of notification, different from the first type of notification, indicating that the second live communication is active; The method of claim 1 , further comprising:
8. Displaying the second type of notification includes: initially displaying the notification of the second type in a first state; transitioning the notification of the second type to a second state; The method of claim 7, comprising:
9. receiving fourth data indicating that a third live communication session is available; and in response to receiving the fourth data indicating that the third live communication session is available; displaying a third type of notification indicating that the third live communication session is available upon determining that an active application is being displayed; and displaying a fourth type of notification indicating that the third live communication session is available upon determining that no active application is being displayed; and The method of claim 1 , further comprising:
10. receiving fifth data indicating that a fourth live communication session is available; and in response to receiving fifth data indicating that the fourth live communication session is available; displaying a notification that the fourth live communication session is available while providing a non-visual notification that the fourth live communication session is available in response to a determination that a current status of the electronic device satisfies an alerting criterion; and displaying the notification that the fourth live communication session is available without providing the non-visual notification that the fourth live communication session is available upon determining that the current status of the electronic device does not satisfy the alerting criteria; and The method of claim 1 , further comprising:
11. The method of claim 10 , wherein the alert notification criteria includes a requirement that the device be locked for the alert notification criteria to be met.
12. The method of claim 10 , wherein the alert notification criteria include a requirement that the device not detect a user's attention to the device for the alert notification criteria to be met.
13. The method of claim 4 , further comprising, further responsive to receiving the reminder data indicating the reminder to participate in the live communication, displaying a representation of a participant in the live communication session that initiated the reminder.
14. The method of claim 4 , wherein the audio output indicating that the live communication session is active is distinct from an audio output associated with a phone call notification and an audio output associated with a message notification.
15. The method of claim 1 , wherein the notification includes an indication of the number of participants in the live communication session.
16. The method of claim 1 , wherein the notification includes an indication of the participant having performed an action on the display that triggered the presentation of the notification.
17. 17. The method of claim 1, further comprising, in response to receiving the first data indicating that the live communication session between the three or more participants is active, generating, by one or more audio output devices of the device, a second audio output indicating that the live communication session is active, wherein the second audio output indicating that the live communication session is active is distinct from an audio output associated with a telephone call notification and an audio output associated with a message notification.
18. 18. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for performing the method of any one of claims 1 to 17.
19. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 1 to 17.
20. A display and Means for carrying out the method according to any one of claims 1 to 17; An electronic device comprising:
21. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs comprising: displaying a messaging user interface of a messaging application including a message area including a plurality of messages in a message conversation between three or more participants; receiving first data indicating that a live communication session available to the three or more participants is active; responsive to receiving the first data indicating that the live communication session between the three or more participants is active, displaying a notification indicating that the live communication session is active; receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active; responsive to receiving the second data indicating that the live communication session between the three or more participants is no longer active, ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active.
22. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: displaying a messaging user interface of a messaging application including a message area including a plurality of messages in a message conversation between three or more participants; receiving first data indicating that a live communication session available to the three or more participants is active; responsive to receiving the first data indicating that the live communication session between the three or more participants is active, displaying a notification indicating that the live communication session is active; receiving second data indicating that the live communication session between the three or more participants is no longer active while displaying the notification indicating that the live communication session is active; responsive to receiving the second data indicating that the live communication session between the three or more participants is no longer active, ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active.
23. A display and means for displaying a messaging user interface of a messaging application including a message area including a plurality of messages in a message conversation between three or more participants; means for receiving first data indicating that the live communication session available to the three or more participants is active; means for displaying a notification indicating that the live communication session between the three or more participants is active in response to receiving the first data indicating that the live communication session between the three or more participants is active; means for receiving, in response to the indication of the notification indicating that the live communication session is active, second data indicating that the live communication session between the three or more participants is no longer active; in response to receiving the second data indicating that the live communication session between the three or more participants is no longer active, ceasing to display the notification or updating the notification to indicate that the live communication session is no longer active; An electronic device comprising:
24. In an electronic device having a display, receiving a request to display a user interface for a live communication session between two or more participants; in response to receiving the request to display the user interface for the live communication session between two or more participants, displaying a live communication user interface including simultaneously displaying representations of multiple participants in the live communication session; and displaying representations of the plurality of participants in the live communication session comprises: upon determining that the number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first of the plurality of participants other than a user of the electronic device at one or more sizes greater than their respective threshold sizes, while displaying a second plurality of representations of the participants in an overflow area including one or more participants not included in the first plurality of participants, the representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than their respective threshold sizes; upon determining that a number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of the participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes without displaying representations of the participants other than the user of the electronic device at one or more sizes less than their respective threshold sizes; A method comprising:
25. updating the display of the representations of the first plurality of participants at a first rate; updating the display of the representations of the second plurality of participants in the overflow area at a second rate lower than the first rate; 25. The method of claim 24, further comprising:
26. the representations of the first plurality of participants are displayed at two or more different sizes; 26. The method of claim 24 or 25, wherein the representations of the second plurality of participants in the overflow area are displayed at the same size.
27. 27. The method of claim 24, further comprising displaying a representation of a view of a camera of the electronic device in the overflow area while displaying the representations of the second plurality of participants in the overflow area.
28. Detecting an input corresponding to the overflow region; In response to detecting the input corresponding to the overflow region, scrolling the overflow region to cease displaying the subset of the representations of the second plurality of participants; maintaining the display of the representation of the view of the camera of the electronic device within the overflow region while scrolling the overflow region; 30. The method of claim 27, further comprising:
29. Displaying representations of the plurality of participants in the live communication session includes: displaying at least one of the representations of the participants other than the user of the device in a first aspect ratio in response to a determination that a number of participants in the live communication session is less than a second threshold number of participants; upon determining that a number of participants in the live communication session is greater than the second threshold number of participants, displaying at least one of the representations of the participants other than the user of the device in a second aspect ratio different from the first aspect ratio; 29. The method of any one of claims 24 to 28, further comprising:
30. Displaying representations of the plurality of participants in the live communication session includes: displaying a representation of a view of the device's camera in a third aspect ratio in response to a determination that a number of participants in the live communication session is less than a second threshold number of participants; displaying the representation of the view of the camera of the device in a fourth aspect ratio different from the third aspect ratio in response to a determination that a number of participants in the live communication session is greater than or equal to the second threshold number of participants; 30. The method of any one of claims 24 to 29, further comprising:
31. receiving data indicating an increase in the number of participants in the live communication session while displaying representations of the participants other than the user of the device; in response to receiving the data indicating an increase in the number of participants in the live communication session; reducing the size of one or more of the representations of participants other than the user of the device; displaying one or more representations of new participants in the live communication session; and 31. The method of any one of claims 24 to 30, further comprising:
32. Displaying representations of the plurality of participants in the live communication session includes: displaying the representations of the participants in the live communication session in a first layout in response to a number of participants in the live communication session being a first number of participants; in response to a number of participants in the live communication session being a second number of participants, displaying the representations of the participants in a second layout different from the first layout; 32. The method of any one of claims 24 to 31, further comprising:
33. 33. The method of claim 32, wherein the first layout is one of a plurality of predefined layouts in which a representation of a user is anchored to different locations of the user interface.
34. 34. The method of claim 32 or 33, wherein the first layout and the second layout are included in a family of predefined layouts having similar relative placement of a user's representation.
35. 35. The method of claim 24, wherein the live communication session user interface further comprises a placeholder associated with a first participant who has been invited to the live communication session but has not yet joined the live communication session.
36. The placeholder includes a first reminder affordance for the first participant, and the method further comprises: receiving an input corresponding to a selection of the first reminder affordance; In response to receiving the input corresponding to a selection of the first reminder affordance, sending a new notification to the first participant, the new notification being different from a previous notification sent to the first participant; 36. The method of claim 35, further comprising:
37. The placeholders and the representations of the first plurality of participants are arranged in a first layout, and the method further comprises: upon determining that the first participant has not participated in the live communication session for a predetermined period of time, ceasing to display the placeholder; and changing the arrangement of the representations of the first plurality of participants to a second layout different from the first layout, the second layout including enlarging and / or moving one or more of the representations of the participants; 37. The method of claim 35 or 36, further comprising:
38. 38. The method of claim 35, further comprising, upon determining that the first participant has joined the live communication session, modifying the representation of the placeholder to a representation of the first participant.
39. Displaying representations of the plurality of participants in the live communication session includes: upon determining that a number of participants in the live communication session is less than a second threshold number of participants, none of the representations of the plurality of remote participants overlap one another; in response to determining that a number of participants in the live communication session is equal to or greater than the second threshold number of participants, at least a portion of the representations of the remote participants overlap one another; 39. The method of any one of claims 24 to 38, comprising:
40. detecting a change in a number of participants in the live communication session while displaying representations of the plurality of participants in the live communication session; responsive to detecting the change in a number of participants in the live communication session, displaying a notification indicating that a number of participants in the live communication session has changed; 40. The method of any one of claims 24 to 39, further comprising:
41. detecting an input corresponding to a selection of a representation of the representations of the second plurality of participants in the overflow area; in response to detecting the input corresponding to a selection of a representation of the representations of the second plurality of participants in the overflow area; replacing the display of a representation of the representations of the first plurality of the participants with a representation of the participant corresponding to the selected representation in the overflow area; 41. The method of any one of claims 24 to 40, further comprising:
42. 42. The method of claim 41 , wherein replacing the display of a representation of the representations of the first plurality of participants with the representation of the participant corresponding to the selected representation in the overflow area includes displaying a first animation effect affecting the representation of the representations of the first plurality of participants.
43. 43. The method of claim 42, wherein replacing the display of the representations of the first plurality of participants with the representation of the participant corresponding to the selected representation in the overflow area further comprises displaying a second animation effect, sharing animation characteristics with the first animation effect, affecting the selected representation of the representations of the second plurality of participants.
44. 44. The method of any one of claims 24 to 43, further comprising, further in response to detecting the input corresponding to the overflow area, displaying a new representation of the second plurality of participants in the overflow area.
45. 45. The method of claim 24, further comprising, in response to receiving data indicating that a new participant has joined or been added to the live communication session, displaying a representation of the new participant in the overflow area at the end of the representations of the second plurality of participants in the series in the overflow area.
46. receiving second data regarding an activity level of a first participant of the second plurality of participants; In response to receiving the second data, in response to an increase in the activity level of the first participant of the second plurality of participants, enhancing visual characteristics of a representation of the representations of the second plurality of participants in the overflow area that corresponds to the representation of the first participant; de-emphasizing visual characteristics of the representations of the second plurality of participants in the overflow region corresponding to the first participant in response to the activity level of the first participant of the second plurality of participants decreasing; 46. The method of any one of claims 24 to 45, further comprising:
47. 47. The method of any one of claims 24 to 46, wherein currently active is indicated as part of the first plurality of participants.
48. detecting, while displaying the live communications user interface, that a second participant of the second plurality of participants becomes a currently active participant; in response to detecting that the second participant of the second plurality of participants becomes the currently active participant and in response to a determination that a representation of the second participant of the second plurality of participants is not currently displayed in the overflow region, scrolling the overflow region to display the representation of the second participant of the second plurality of participants in the overflow region; 48. The method of any one of claims 24 to 47, further comprising:
49. 49. The method of any one of claims 24 to 48, wherein the overflow area further includes a representation of the first plurality of participants.
50. 50. The method of claim 24, wherein the overflow area further includes placeholder representations for invitees to the live communication session who are not currently connected to the live communication session.
51. displaying a representation of a view of a camera of the device at a first size as part of a representation of the plurality of participants in the live communication session; receiving a first input corresponding to a selection to display a first menu while displaying representations of the plurality of participants in the live communication session; in response to receiving the input corresponding to a selection to display the first menu, displaying the first menu in the live communication user interface, the first menu including an option for displaying a visual effect on a representation of a participant in the live communication session; in response to receiving a second input corresponding to a selection of the option to display a visual effect, displaying the representation of the view of the camera of the device at a second size larger than the first size; 51. The method of any one of claims 24 to 50, further comprising:
52. receiving a third input corresponding to a selection to enlarge a first one of the representations of the plurality of participants in the live communication session; in response to receiving the third input corresponding to a selection to enlarge the first representation of the representations of the plurality of participants in the live communication session, enlarging the first representation; reducing a size of at least one representation of the plurality of participants in the live communication user interface that is different from the first representation; 52. The method of any one of claims 24 to 51, further comprising:
53. 53. The method of any one of claims 24 to 52, wherein the representation of the multiple participants in the live communication session includes user communication states selected from the group consisting of an audio-only state, a video state, a video paused state, a video not decoded state, a leaving state, and a waiting to join state.
54. receiving data indicative of a change in orientation of the electronic device; in response to receiving the data indicative of a change in orientation of the electronic device, rotating the display of the representations of the plurality of participants in the live communication session; rotating the display while maintaining relative characteristics of a previous display of the representations of the plurality of participants in the live communication session; 54. The method of any one of claims 24 to 53, further comprising:
55. 55. The method of any one of claims 24 to 54, further comprising modifying the display of a first representation of the representations of the plurality of participants in the live communication session based on a face position within the first representation in response to receiving the first data indicating a change in orientation of the electronic device.
56. The representation of the plurality of participants in the live communication includes a second representation including a first portion of the live media stream received by the electronic device and displayed in a sixth aspect ratio, and the method further comprises: receiving a request to change an aspect ratio of at least one of the representations of the plurality of participants in the live communication session while displaying the second of the representations of the plurality of participants; in response to receiving the request to change the aspect ratio of at least one of the representations of the plurality of participants in the live communication session, changing the aspect ratio of the second representation from the sixth aspect ratio to a seventh aspect ratio, the second representation, while in the seventh aspect ratio, including a second portion of the live media stream received by the electronic device, the second portion being selected to include a face detected in the live media stream; 56. The method of any one of claims 24 to 55, further comprising:
57. receiving a fourth input corresponding to a request to display a menu while displaying representations of the plurality of participants in the live communication session; In response to receiving the fourth input, displaying a menu in the user interface for the live communication session; moving at least a third representation of the representations of the plurality of participants in the live communication; resizing at least a fourth one of the representations of the plurality of participants in the live communication session; 57. The method of any one of claims 24 to 56, further comprising:
58. 42. The method of claim 41 , wherein replacing the display of the representation of the first plurality of participant representations with the representation of the participant corresponding to the selected representation in the overflow area further comprises ceasing to display the selected representation of the representation of the second plurality of participant representations in the overflow area.
59. 42. The method of claim 41 , wherein replacing the display of the representations of the representations of the first plurality of participants with the representation of the participant corresponding to the selected representation in the overflow area further comprises: after displaying the representation of the participant corresponding to the selected representation in a first size, enlarging the representation of the participant corresponding to the selected representation to a second size larger than the first size.
60. receiving data indicating that an activity level of a first participant of the second plurality of participants represented in the overflow area rises above an activity level of a participant corresponding to a first representation of the representations of the first plurality of participants; in response to receiving the data indicating that the activity level of the first participant of the second plurality of participants represented in the overflow area rises above the activity level of the participant corresponding to the first representation of the representations of the first plurality of participants; replacing the display of the first representation of the representations of the first plurality of participants with a representation of the first participant of the second plurality of participants; ceasing to display the representation of the first participant in the overflow area; and 60. The method of any one of claims 24 to 59, further comprising:
61. 61. The method of claim 60, wherein replacing the display of the first representation of the representations of the first plurality of participants includes displaying in the overflow area a representation of the participant that corresponds to the replaced first representation.
62. receiving an input corresponding to a request to display a first menu while displaying representations of the plurality of participants in the live communication session; in response to receiving the input corresponding to the request to display the first menu, displaying the first menu on the live communication user interface, the first menu including options for selecting a content item; receiving input corresponding to a selection of a content item; in response to receiving the input corresponding to a selection of the content item, replacing representations of participants displayed at a size larger than the respective threshold size with representations of the content item at a size larger than the respective threshold size; 62. The method of any one of claims 24 to 61, further comprising:
63. Displaying representations of the second plurality of participants in the overflow area includes: displaying a first set of representations in the overflow area in response to determining that a first number of participants are participating in the live communication session; upon determining that a second number of participants different from the first number of participants are participating in the live communication session, displaying a second set of representations in the overflow area that is different from the first set of representations and that includes a different number of representations than the first set of representations; 63. The method of any one of claims 24 to 62, comprising:
64. 64. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for performing a method according to any one of claims 24 to 63.
65. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing a method according to any one of claims 24 to 63.
66. A display and Means for carrying out the method according to any one of claims 24 to 63; 1. An electronic device comprising:
67. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs comprising: receiving a request to display a user interface for a live communication session between two or more participants; in response to receiving the request to display the user interface for the live communication session between the two or more participants, displaying a live communication user interface including simultaneously displaying representations of multiple participants in the live communication session; Displaying representations of the plurality of participants in the live communication session includes: upon determining that a number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than a user of the electronic device at one or more sizes greater than their respective threshold sizes while displaying representations of a second plurality of participants in the overflow area, the second plurality of participants including one or more participants not included in the first plurality of participants, the representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than their respective threshold sizes; upon determining that a number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of the participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes without displaying representations of the participants other than the user of the electronic device at one or more sizes less than their respective threshold sizes; A method comprising:
68. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: receiving a request to display a user interface for a live communication session between two or more participants; and instructions for displaying a live communication user interface, in response to receiving the request to display the user interface for the live communication session between two or more participants, comprising simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying the representations of the plurality of participants in the live communication session includes: upon determining that a number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than a user of the electronic device at one or more sizes greater than their respective threshold sizes while displaying representations of a second plurality of participants in an overflow area, the second plurality of participants including one or more participants not included in the first plurality of participants, the representations of the one or more other participants displayed in the overflow area being displayed at sizes smaller than their respective threshold sizes; upon determining that a number of participants in the live communication session is less than or equal to the threshold number of participants, displaying representations of the participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes without displaying representations of the participants other than the user of the electronic device at one or more sizes less than their respective threshold sizes; A method comprising:
69. A display and means for requesting to display a user interface for a live communication session between two or more participants; and means for displaying a live communication user interface, comprising: in response to receiving the request to display the user interface for the live communication session between two or more participants, simultaneously displaying representations of a plurality of participants in the live communication session, wherein displaying representations of the plurality of participants in the live communication session includes: means for, upon determining that a number of participants in the live communication session is greater than a threshold number of participants, simultaneously displaying representations of a first plurality of participants other than a user of the electronic device at one or more sizes greater than their respective threshold sizes while displaying representations of a second plurality of participants in the overflow area, the second plurality of participants including one or more participants not included in the first plurality of participants, the representations of one or more other participants displayed in the overflow area being displayed at sizes smaller than their respective threshold sizes; means for displaying representations of participants other than the user of the electronic device at one or more sizes greater than their respective threshold sizes without displaying representations of the participants other than the user of the electronic device at one or more sizes less than their respective threshold sizes upon determining that the number of participants in the live communication session is less than or equal to the threshold number of participants; An electronic device comprising:
70. In an electronic device having a display, displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in said live video communication session, and a representation of a third participant in said live video communication session; receiving data indicating that an activity level of the second participant in the live video communication session has increased above an activity level of the first participant in the live video communication session while displaying the live video communication user interface; in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; modifying a size and / or position of the representation of the first participant in the live video communication user interface; modifying a size and / or position of the representation of the second participant in the live video communication user interface; modifying a size and / or position of the representation of the third participant in the live video communication user interface; A method comprising:
71. after modifying the size and / or position of the representation of the first participant in the live communication user interface, the modified representation of the first participant occupies at least a portion of an area that the representation of the first participant occupied in the live communication user interface prior to modifying at least one of the size or position of the representation of the first participant; after modifying a size and / or a position of the representation of the second participant in the live communication user interface, the modified representation of the second participant occupies at least a portion of an area that the representation of the second participant occupied in the live communication user interface prior to modifying at least one of the size or position of the representation of the second participant; 71. The method of claim 70, wherein after modifying the size and / or position of the representation of the third participant in the live communication user interface, the modified representation of the third participant occupies at least a portion of the area that the representation of the third participant occupied in the live communication user interface before modifying at least one of the size or position of the representation of the third participant.
72. in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; the size of the representation of the first participant in the live communication user interface is changed; the size of the representation of the second participant in the live communication user interface is changed; the size of the representation of the third participant in the live communication user interface is changed; 72. The method of claim 70 or 71, comprising:
73. in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; the position of the representation of the first participant in the live communication user interface is changed; the position of the representation of the second participant in the live communication user interface is changed; the position of the representation of the third participant in the live communication user interface is changed; 73. The method of any one of claims 70 to 72, comprising:
74. displaying a representation of a fourth participant in the live communication user interface; and modifying a size and / or position of the representation of the fourth participant in the live communication user interface in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; 74. The method of any one of claims 70 to 73, further comprising:
75. receiving second data indicating that an activity level of the first participant in the live video communication session has increased beyond the activity level of the second participant in the live video communication session after changing the size and / or position of the representation of the first participant in the live video communication user interface; in response to receiving the second data indicating an activity level of the first participant in the live video communication session has increased beyond the activity level of the second participant in the live video communication session; modifying the size and / or position of the representation of the first participant in the live video communication user interface; modifying the size and / or position of the representation of the second participant in the live video communication user interface; maintaining the size and position of the representation of the third participant in the live communication session; 75. The method of any one of claims 70 to 74, further comprising:
76. 76. The method of any one of claims 70 to 75, wherein the activity level of at least the first participant is based on an audio and / or video feed received from a device of the first participant.
77. 77. The method of claim 76, wherein the activity level of at least the first participant is based on audio filtered from an audio feed received from the device of the first participant.
78. 80. The method of claim 76 or 77, wherein the activity level of at least the first participant is based on movements identified in a video feed received from the device of the first participant that meet a set of movement criteria.
79. further in response to receiving the first data indicating that the activity level of the second participant in the live communication session has increased beyond the activity level of the first participant in the live communication session; highlighting a visual representation of the expression of the second participant in the live communication user interface; de-emphasizing a visual representation of the representation of the first participant in the live communication user interface; 79. The method of any one of claims 70 to 78, further comprising:
80. prior to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; the representation of the first participant is displayed at a first size; the representation of the second participant is displayed at a second size smaller than the first size; 80. The method of any one of claims 70 to 79, wherein changing the size and / or position of the representation of the second participant comprises increasing the size of the representation of the second participant from the second size to the first size.
81. Changing the size and / or position of the representation of the first participant includes: altering the size and / or position of the representation of the first participant based on facial recognition data obtained from the video feed of the second participant, wherein altering the size and / or position of the representation of the first participant does not result in obscuring the face of the second participant.
81. The method of any one of claims 70 to 80.
82. 82. The method of any one of claims 70 to 81, wherein prior to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session, one or more of the representations of the first participant, the second participant, and the third participant overlap with at least one other representation of a participant.
83. prior to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session, the representations of the first, second, and third participants in the live communication user interface are displayed according to a z-order; 83. The method of claim 82, wherein altering the size and / or position of the representations of the first, second, and third participants in the live communication user interface includes maintaining the z-order of the representations of the first, second, and third participants.
84. 84. The method of any one of claims 70 to 83, wherein a portion of the representation of a participant among the first, second, and third participants with a highest activity level is overlapped by a portion of the representation of another of the first, second, and third participants in the live communication user interface.
85. 85. The method of any one of claims 70 to 84, wherein a portion of the representation of a participant among the first, second, and third participants having a lowest activity level overlaps a portion of the representation of another of the first, second, and third participants in the live communication user interface.
86. detecting an input corresponding to the expression of the second participant in the live video communication session after receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; 86. A method according to any one of claims 70 to 85, in response to detecting the input corresponding to the expression of the first participant of the first participant.
87. receiving data indicating that a fourth participant in the live communication session is more active than a least active participant among the first, second and third participants; responsive to receiving the data indicating that the fourth participant in the live communication session is more active than a least active participant among the first, second, and third participants, replacing the display of the representation of the least active participant among the first, second, and third participants with a display of the representation of the fourth participant; 87. The method of any one of claims 70 to 86, further comprising:
88. Replacing the display of the representation of the least active participant among the first, second, and third participants with a display of the representation of the fourth participant includes:
88. The method of claim 87, comprising displaying the representation of the fourth participant at a size larger than a size of the representation of the participant having a lowest activity level among the first, second, and third participants.
89. 89. The method of any one of claims 70 to 88, wherein altering the size and / or position of the representation of the first participant comprises gradually increasing the size of the representation from a first size to a second size.
90. 90. The method of any one of claims 70 to 89, wherein the live communication interface includes a canvas area, and the representation of the first participant in the live communication session, the representation of the second participant in the live communication session, and the representation of the third participant in the live communication session are displayed in the canvas area.
91. Detecting canvas resize events; In response to detecting the canvas resize event, Resizing the canvas area; and modifying a layout of the representations of the first, second and third participants; 91. The method of claim 90, further comprising:
92. 92. The method of claim 91, further comprising: modifying the size of one or more of the representations of the first, second, and third participants further in response to detecting the canvas resize event.
93. displaying a representation of a view of a camera of the electronic device in the live communication session user interface; further in response to receiving the first data indicating that the activity level of the second participant in the live communication session has increased beyond the activity level of the first participant in the live communication session; maintaining a size of the representation of a view of the camera of the electronic device in the live communication session user interface; 93. The method of any one of claims 70 to 92, further comprising:
94. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for performing a method according to any one of claims 70 to 93.
95. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising instructions for performing a method according to any one of claims 70 to 93.
96. A display and Means for carrying out the method according to any one of claims 70 to 93; An electronic device comprising:
97. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs comprising: displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in the live video communication session, and a representation of a third participant in the live video communication session; receiving data indicating that an activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session while displaying the live video communication user interface; in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; resizing and / or positioning the representation of the first participant in the live video communication user interface; resizing and / or positioning the representation of the second participant in the live video communication user interface; A non-transitory computer-readable storage medium comprising instructions for modifying a size and / or a position of a representation of the third participant in the live video communication user interface.
98. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: displaying a live video communication user interface simultaneously displaying a representation of a first participant in the live video communication session, a representation of a second participant in said live video communication session, and a representation of a third participant in said live video communication session; receiving data indicating that an activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session while displaying the live video communication user interface; in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; resizing and / or positioning the representation of the first participant in the live video communication user interface; resizing and / or positioning the representation of the second participant in the live video communication user interface; An electronic device comprising instructions for modifying a size and / or a position of the representation of the third participant in the live video communication user interface.
99. A display and means for displaying a live video communication user interface simultaneously displaying a representation of a first participant in a live video communication session, a representation of a second participant in said live video communication session, and a representation of a third participant in said live video communication session; means for receiving data indicating that an activity level of the second participant in the live video communication session has increased above the activity level of the first participant in the live video communication session while displaying the live video communication user interface; in response to receiving the data indicating that the activity level of the second participant in the live video communication session has increased beyond the activity level of the first participant in the live video communication session; resizing and / or positioning the representation of the first participant in the live video communication user interface; resizing and / or positioning the representation of the second participant in the live video communication user interface; means for modifying a size and / or a position of the representation of the third participant in the live video communication user interface; An electronic device comprising:
100. In an electronic device having a display, Displaying a messaging user interface of a messaging application, the messaging user interface comprising: a message area containing a plurality of messages between participants in a message conversation involving three or more participants; an affordance, separate from the message area, for initiating a live video communication session in a live video communication application; Detecting an input corresponding to a selection of the affordance; In response to detecting the input corresponding to a selection of the affordance, initiating a process in the live video communication application to initiate the live video communication session, the live video communication session including the participants of the messaging conversation; A method comprising:
101. Initiating the process of initiating the live communication session in the live communication application includes: transitioning from the messaging user interface to a messaging user interface of the live communications application; initiating said live communication session; 101. The method of claim 100, comprising:
102. Initiating the process of initiating the live communication session in the live communication application includes displaying a group contacts user interface including a group contacts affordance for initiating the live communication session, the method comprising: detecting an input corresponding to a selection of the group contacts affordance to initiate the live communication session; initiating the live communication session in the live communication application in response to detecting the input corresponding to a selection of the group contacts affordance for initiating the live communication session; 101. The method of claim 100, further comprising:
103. After initiating said live communication session, in response to determining that the first participant has not joined the live communication session for a predetermined amount of time, displaying a reminder option associated with the first participant in the group contact user interface; receiving an input corresponding to a selection of the reminder option while displaying the reminder option associated with the first participant; in response to receiving the input corresponding to a selection of the reminder option, sending a notification indicating that the live communication session is available to the first participant; 103. The method of claim 102, further comprising:
104. The group contact user interface further includes a plurality of participant affordances including a first participant affordance associated with a first one of the participants in the message conversation, and the method further includes: Detecting an input corresponding to a selection of the first participant affordance associated with the first participant of the message conversation; In response to detecting the input corresponding to a selection of the first participant affordance associated with the first participant of the message conversation, displaying an individual participant user interface including characteristics of the first participant; 103. The method of claim 102, further comprising:
105. The first participant affordance includes an option for selecting a communication mode for contacting the first participant of the message conversation, and the method further comprises: detecting an input corresponding to a selection of the option for selecting the communication mode; initiating a process for selecting the commute mode for the first participant in response to detecting the input corresponding to a selection of the communication mode option; 105. The method of claim 104, further comprising:
106. The group contacts user interface further includes a new contact affordance, and the method further comprises: Detecting an input corresponding to a selection of the new contact affordance; In response to detecting the input corresponding to a selection of the new contact affordance, initiate a process to add a new contact to the live communication session; 106. The method of any one of claims 103 to 105, further comprising:
107. Initiating the process of initiating the live video communication session includes: initiating the live communication session in the live communication application; displaying the live communication session user interface, the live communication session user interface comprising: a placeholder associated with a first one of the participants in the live communication session; 107. The method of any one of claims 100 to 106, comprising:
108. the first placeholder includes a first reminder affordance for the first one of the participants in the live communication session, and the method further comprises: receiving an input corresponding to a selection of the first reminder affordance; In response to receiving the input corresponding to a selection of the first reminder affordance, sending a new notification to the first participant, the new notification being different from a previous notification sent to the first participant; 108. The method of claim 107, further comprising:
109. The live communication session user interface further includes a second placeholder associated with a second participant, the first placeholder and the second placeholder being arranged according to a first layout, and the method further includes: upon determining that the first participant has not participated in the live communication session for a predetermined period of time, ceasing to display the first placeholder; and changing an arrangement of the second placeholders to a second layout different from the first layout; 109. The method of claim 107 or 108, further comprising:
110. 110. The method of any one of claims 107 to 109, further comprising, upon determining that the first participant has joined the live communication session, modifying the display of the first placeholder to a representation of the first participant.
111. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for performing the method of any one of claims 100 to 110.
112. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing the method of any one of claims 100 to 110.
113. A display and Means for carrying out the method according to any one of claims 100 to 110; An electronic device comprising:
114. 1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display and a touch-sensitive surface, the one or more programs comprising:
1. A messaging user interface for a messaging application, comprising: a message area containing a plurality of messages between participants in a message conversation involving three or more participants; and an affordance, separate from the message area, for initiating a live video communication session in a live video communication application; Detecting an input corresponding to a selection of the affordance; A non-transitory computer-readable storage medium comprising instructions for initiating, in the live video communication application, a process for initiating the live video communication session including the participants of the message conversation in response to detecting the input corresponding to a selection of the affordance.
115. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising:
1. A messaging user interface for a messaging application, comprising: a message area containing a plurality of messages between participants in a message conversation involving three or more participants; and an affordance, separate from the message area, for initiating a live video communication session in a live video communication application. Detecting an input corresponding to a selection of the affordance; responsive to detecting the input corresponding to a selection of the affordance, initiate processing in the live video communication application to initiate the live video communication session including the participants of the message conversation.
116. 1. An electronic device comprising: A display and A means for displaying a messaging user interface of a messaging application, the messaging user interface comprising: a message area containing a plurality of messages between participants in a message conversation involving three or more participants; an affordance, separate from the message area, for initiating a live video communication session in a live video communication application; means for detecting an input corresponding to a selection of said affordance; means for initiating, in response to detecting the input corresponding to a selection of the affordance, a process in the live video communication application for initiating the live video communication session, the live video communication session including the participants of the messaging conversation; An electronic device comprising:
117. In an electronic device having a display, 1. A live video communication user interface for a live video communication application, comprising: a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants; a new session affordance for initiating a new live video communication session; and Detecting an input corresponding to a request to initiate a process to initiate a new live video communication session; In response to detecting the input, In response to the input corresponding to a selection of the first participant affordance, initiate a process to initiate a new live video communication session including the group of three or more participants; initiating a process for selecting two or more participants in response to the input corresponding to a selection of the new session affordance and initiating a new live video communication session including a participant associated with the device and the two or more selected participants; A method comprising:
118. 118. The method of claim 117, wherein the live communication user interface further comprises a list of recent live communication sessions.
119. The method of claim 117 or 118, wherein the plurality of participant affordances includes a second participant affordance corresponding to a proposed participant group determined based on data from a second application, different from the live video communication application.
120. 120. The method of claim 119, wherein the suggested group of participants corresponds to participants of a group conversation conducted in the second application or a conference call conducted in the second application.
121. 121. The method of claim 119 or 120, wherein the second participant affordance comprises a display of the second application.
122. 122. The method of any one of claims 119 to 121, wherein the plurality of participant affordances includes a third participant affordance corresponding to a proposed second group of participants determined based on data from a third application that is distinct from the live video communication application and distinct from the second application.
123. The live communication user interface further includes a participant selection affordance, and the method further comprises: receiving a second input corresponding to a selection of the participant selection affordance; in response to receiving the second user input corresponding to a selection of the participant selection affordance; a text entry field for identifying one or more participants; Keyboard and Audio-only affordances and displaying a group selection user interface including a video affordance; receiving a third user input selection while displaying the group selection user interface; In response to receiving the third user input, initiating the new live communication session with audio transmitted from the electronic device without transmitting video data from the electronic device in response to the third user input corresponding to a selection of the audio-only affordance; initiating the new live communication session with audio and video transmitted from the electronic device in response to the third user input corresponding to a selection of the video affordance; 123. The method of any one of claims 117 to 122, further comprising:
124. initiating said new live communication session; after initiating the new live communications session, displaying in a fourth application a representation of the new live communications session that is different from the live communications session; 124. The method of any one of claims 117 to 123, further comprising:
125. the plurality of participant affordances includes a fourth participant affordance corresponding to a group of three or more participants; upon determining that the fourth participant affordance corresponds to an active live communication session, the fourth participant affordance is displayed having a first visual appearance; 125. The method of any one of claims 117 to 124, wherein upon a determination that the fourth participant affordance corresponds to an inactive live communication session, the fourth participant affordance is displayed with a second visual appearance different from the first visual appearance.
126. Initiating a process of selecting two or more participants includes displaying representations of the potential participants; Upon determining that the potential participant is associated with a device capable of participating in a live communication session, the representation of the potential participant is displayed having a first visual appearance; 126. The method of any one of claims 117 to 125, wherein upon a determination that the participant is not associated with a device capable of joining a live communication session, the representation of the potential participant is displayed with a second visual appearance different from the first visual appearance.
127. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device having a display, the one or more programs including instructions for performing a method according to any one of claims 117 to 126.
128. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for performing a method according to any one of claims 117 to 126.
129. A display and Means for carrying out the method according to any one of claims 117 to 126; An electronic device comprising:
130. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device, the one or more programs comprising:
1. A live video communication user interface for a live video communication application, comprising: a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants; a new session affordance for initiating a new live video communication session; Detecting an input corresponding to a request to initiate a process to initiate a new live video communication session; In response to detecting the input, In response to the input corresponding to a selection of the first participant affordance, initiate a process to initiate a new live video communication session including the group of three or more participants; A non-transitory computer-readable storage medium comprising: instructions for, in response to the input corresponding to a selection of the new session affordance, initiating a process for selecting two or more participants and initiating a new live video communication session including a participant associated with the device and the two or more selected participants.
131. A display and one or more processors; and a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs comprising: In an electronic device having a display, 1. A live video communication user interface for a live video communication application, comprising: a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants; a new session affordance for initiating a new live video communication session; Detecting an input corresponding to a request to initiate a process to initiate a new live video communication session; In response to detecting the input, In response to the input corresponding to a selection of the first participant affordance, initiate a process to initiate a new live video communication session including the group of three or more participants; the electronic device comprising instructions for, in response to the input corresponding to a selection of the new session affordance, initiating a process for selecting two or more participants and initiating a new live video communication session including a participant associated with the device and the two or more selected participants.
132. A display and 1. A live video communication user interface for a live video communication application, comprising: a plurality of participant affordances each corresponding to one or more participants, including a first participant affordance corresponding to a group of three or more participants; a new session affordance for initiating a new live video communication session; and means for detecting an input corresponding to a request to initiate a process to initiate a new live video communication session; In response to detecting the input, In response to the input corresponding to a selection of the first participant affordance, initiate a process to initiate a new live video communication session including the group of three or more participants; means for initiating a process for selecting two or more participants in response to the input corresponding to a selection of the new session affordance and initiating a new live video communication session including a participant associated with the device and the two or more selected participants; An electronic device comprising:
Citation Information
Patent Citations
Attendant video display window control system
JP1994282405A
On-line conversation system
JP1997265457A
Electronic cooperative work system and program for cooperative work system
JP2003101981A
Video display method of video conference system, user terminal used with video conference system, and program therefor
JP2005303736A
Communication terminal and display method therefor
JP2007150877A
Cited By
Multi-participant live communication user interface
JP2026053458A
Multi-participant live communication user interface
JP7931960B2
Video application graphical effects
US12737049B2
