Systems and methods for generating and providing intelligent departure time reminders

CN114066426BActive Publication Date: 2026-05-26APPLE INC
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
APPLE INC
Filing Date
2016-05-23
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Existing handheld electronic devices with touch-sensitive displays typically generate departure time reminders based on default values ​​or inaccurate information, resulting in inaccurate reminders and failure to consider location information, increasing the cognitive burden on users and shortening the lifespan of the devices.

Method used

By automatically identifying calendar entries containing unknown geographical locations, retrieving previously visited addresses associated with them, determining departure times based on this, and providing intelligent reminders, user interaction is reduced and device lifespan is extended.

Benefits of technology

Provide more accurate departure time reminders, reduce the cognitive burden on users, extend device lifespan, and improve user satisfaction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114066426B_ABST
    Figure CN114066426B_ABST
Patent Text Reader

Abstract

This invention discloses a system and method for generating and providing intelligent departure time reminders on an electronic device. In one aspect, the method includes: automatically, without human intervention, identifying a calendar entry including a first identifier (e.g., text in a location-related header of the calendar entry, such as "Going to the dentist"), the first identifier corresponding to an unknown geographic location. The method also includes automatically, without human intervention, retrieving a previously visited address (e.g., a street address or GPS coordinates of a street address) associated with the first identifier. The method further includes: automatically, without human intervention, determining a departure time for the calendar entry based on the previously visited address (e.g., based on a route from the device's current location to the previously visited address). The method also includes: automatically, without human intervention, associating the determined departure time with the calendar entry.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with international application number PCT / US2016 / 033778, international application date of May 23, 2016, entry into the Chinese national phase on November 14, 2017, and national application number 201680027951.5. Technical Field

[0002] This document relates generally to electronic devices with touch-sensitive displays, and more specifically to systems and methods for generating and providing intelligent departure time reminders. Background Technology

[0003] Users of handheld electronic devices with touch-sensitive displays typically create and receive multiple calendar entries to help them remember upcoming events. These calendar entries usually contain reminders or prompts displayed to the user when the corresponding event is expected to occur at a certain time in the future (e.g., 15 minutes, 30 minutes, 1 hour, etc.). Users often choose the amount of time based on how much lead time they need before the event, or they simply choose the default value without considering how long it will take to reach the event. Therefore, reminders or prompts are provided simply based on default values ​​or on inaccurate and / or outdated information from the user. Furthermore, for calendar entries that do not include location information, reminders or prompts do not take into account information about previously accessed addresses that are accessible on the handheld electronic device (and that can be used to create accurate reminders). Summary of the Invention

[0004] Therefore, there is a need for electronic devices with faster and more efficient methods and interfaces for generating and providing intelligent reminders, allowing users sufficient time to depart and arrive at their destination before the start time of an event. Such methods and interfaces optionally complement or replace conventional methods for providing generic or default departure time reminders. These methods and interfaces reduce the cognitive burden on users and result in more efficient human-machine interfaces. Furthermore, such methods and interfaces help extend the lifespan of touch-sensitive displays by requiring less touch input (e.g., by eliminating the need for users to repeatedly interact with the device to search for and check address / navigation details).

[0005] The devices disclosed herein reduce or eliminate the aforementioned defects and other problems associated with user interfaces for electronic devices having touch-sensitive surfaces. In some embodiments, the device is a desktop computer. In some embodiments, the device is portable (e.g., a laptop, tablet, or handheld device). In some embodiments, the device has a touchpad. In some embodiments, the device has a touch-sensitive display (also referred to as a “touchscreen” or “touchscreen display”). In some embodiments, the device has a graphical user interface (GUI), one or more processors, memory, and one or more modules, programs, or instruction sets stored in the memory for performing multiple functions. In some embodiments, the user interacts with the GUI primarily through stylus and / or finger contact and gestures on the touch-sensitive surface. In some embodiments, these functions optionally include image editing, drawing, presentation, word processing, web page creation, disk editing, spreadsheet creation, playing games, making and receiving phone calls, video conferencing, sending and receiving emails, instant messaging, fitness support, digital photography, digital video, web browsing, and digital music. Executable instructions for performing these functions are optionally included in a non-transitory computer-readable storage medium or other computer program product configured for execution by one or more processors.

[0006] (A1) According to some implementation schemes, in a touch-sensitive display ( Figure 1C Electronic devices (e.g., touchscreen 112) Figure 1A A method is performed at a portable multifunction device 100. The method includes: automatically, without human intervention, identifying a calendar entry including a first identifier, the first identifier corresponding to an unknown geographic location. The method also includes: automatically, without human intervention, retrieving a previously visited address associated with the first identifier. The method further includes: automatically, without human intervention, determining a departure time for the calendar entry based on the previously visited address. The method also includes: automatically, without human intervention, associating the determined departure time with the calendar entry. In other words, the previously visited address is located using the first identifier, and then the unknown geographic location is determined (or identified) as the previously visited address based on (i) an item associated with the previously visited address (e.g., a different calendar entry, text message, email message, etc.) and (ii) the presence of the first identifier in the calendar entry.

[0007] (A2) In some embodiments of the method according to A1, the method further includes providing a reminder of the determined departure time for a calendar entry to the user on an electronic device.

[0008] (A3) In some embodiments of the method according to A2, a calendar entry is associated with a default reminder that is different from the reminder provided to the user for the determined departure time of the calendar entry.

[0009] (A4) In some embodiments of the method according to any one of A2-A3, providing the reminder includes providing the reminder based on a predetermined amount of time within which the departure time is determined to be at the current time.

[0010] (A5) In some embodiments of the method according to any one of A1-A4, determining the departure time includes: (i) determining the current address corresponding to the electronic device, (ii) determining the route from the current address to the previously visited address, and (iii) determining the departure time based on the amount of time required to complete the route so that the user will arrive at the previously visited address within a predetermined amount of the start time associated with the calendar entry.

[0011] (A6) In some embodiments of the method according to A5, the route is selected from multiple available routes from the current address to the previously accessed address based on the route selection preferences associated with the user of the electronic device.

[0012] (A7) In some embodiments of the method according to any one of A4-A6, associating the determined departure time with a calendar entry includes generating a reminder and updating the calendar entry to include the generated reminder.

[0013] (A8) In some embodiments of the method according to any one of A1-A7, the method further includes: receiving, on a touch-sensitive display, confirmation from a user of the electronic device that a previously accessed address corresponds to a calendar entry. After receiving the confirmation, the method includes: determining the departure time.

[0014] (A9) In some embodiments of the method according to any one of A1-A8, retrieving a previous access address includes retrieving a previous access address from a database of previous access addresses associated with a user of the electronic device.

[0015] (A10) In some embodiments of the method according to A9, the previously accessed addresses in the database of previously accessed addresses correspond to addresses previously accessed by the user of the electronic device.

[0016] (A11) In some embodiments of the method according to any one of A1-A8, retrieving a previously accessed address includes performing a lookup in the database of previously accessed addresses using a first identifier.

[0017] (A12) In some embodiments of the method according to any one of A1-A11, the method further includes: scanning a plurality of new calendar entries during the calendar entry creation process. Based on determining that a first identifier is included in a corresponding new calendar entry among the plurality of scanned new calendar entries, the method includes: presenting a previously accessed address to a user of the electronic device for inclusion in the corresponding new calendar entry.

[0018] (A13) In some embodiments of the method according to any one of A1-A12, the method further includes: determining whether the user has arrived at a previously visited address (e.g., after determining that the user is heading to a previously visited address based on receiving an alert provided as described in A2 above). Based on determining that the user has arrived at a previously visited address, the method includes: updating location information associated with the previously visited address. In some embodiments, determining whether the user has arrived at a previously visited address is performed after (or in response to) providing an alert.

[0019] (A14) In another aspect, an electronic device is provided. In some embodiments, the electronic device includes: a touch-sensitive display, one or more processors, and a memory storing one or more programs, which, when executed by the one or more processors, cause the electronic device to perform the method according to any one of A1-A13.

[0020] (A15) In another aspect, an electronic device is provided, comprising: a touch-sensitive display and means for performing the method according to any one of A1-A13.

[0021] (A16) In another aspect, a non-transitory computer-readable storage medium is provided. This non-transitory computer-readable storage medium stores executable instructions that, when executed by an electronic device having a touch-sensitive display, cause the electronic device to perform the method according to any one of A1-A13.

[0022] (A17) In yet another aspect, a graphical user interface is provided on an electronic device having a touch-sensitive display. In some embodiments, the graphical user interface includes a user interface displayed according to any one of A1-A13.

[0023] (A18) In another aspect, an electronic device is provided, which includes a display unit (e.g., Figure 8 The display unit 801 and the touch-sensitive surface unit (e.g., Figure 8 The touch-sensitive surface unit 803 in the display unit 801 and the processing unit (e.g., the touch-sensitive surface unit 803 in the display unit 801 and the touch-sensitive surface unit 803) and the processing unit coupled to the display unit 801 and the touch-sensitive surface unit 803 Figure 8The processing unit is 805. In some embodiments, the display unit and the touch-sensitive surface unit are integrated into a single touch-sensitive display unit (also referred to herein as a touch-sensitive display). In some embodiments, the processing unit includes an identification unit (e.g., identification unit 807), a retrieval unit (e.g., retrieval unit 809), a determination unit (e.g., determination unit 811), an association unit (e.g., association unit 813), a providing unit (e.g., providing unit 815), a selection unit (e.g., selection unit 817), a generation unit (e.g., generation unit 819), a receiving unit (e.g., receiving unit 821), an execution unit (e.g., execution unit 823), a scanning unit (e.g., scanning unit 825), a presentation unit (e.g., presentation unit 827), and an updating unit (e.g., updating unit 829). The processing unit is configured to: automatically, without human intervention, identify (e.g., using identification unit 807) a calendar entry including a first identifier, the first identifier corresponding to an unknown geographical location; automatically, without human intervention, retrieve (e.g., using retrieval unit 809) a previously accessed address associated with the first identifier; automatically, without human intervention, determine (e.g., using determination unit 811) a departure time for the calendar entry based on the previously accessed address; and automatically, without human intervention, associate the determined departure time with the calendar entry (e.g., using association unit 813).

[0024] (A19) In some embodiments of the electronic device according to A18, the processing unit is further configured to provide a user with a reminder of the departure time for a calendar entry as determined (e.g., using the providing unit 815 and / or in conjunction with the display unit 801) on the electronic device.

[0025] (A20) In some embodiments of the electronic device according to A19, calendar entries are associated with default reminders that are different from the reminders provided to the user for the determined departure time of the calendar entry.

[0026] (A21) In some embodiments of the electronic device according to any one of A19-A20, providing a reminder includes providing (e.g., using providing unit 815 and / or in conjunction with display unit 801) a reminder based on a predetermined amount of time within the current time determined (e.g. by determining unit 811) based on the departure time.

[0027] (A22) In some embodiments of the electronic device according to any one of A18-A21, determining the departure time includes: (i) determining (e.g., using determining unit 811) the current address corresponding to the electronic device, (ii) determining (e.g., using determining unit 811) the route from the current address to the previously visited address, and (iii) determining (e.g., using determining unit 811) the departure time based on the amount of time required to complete the route, such that the user will arrive at the previously visited address within a predetermined amount of the start time associated with the calendar entry.

[0028] (A23) In some embodiments of the electronic device according to A22, the route is selected from multiple available routes from the current address to the previously accessed address based on the route selection preferences associated with the user of the device (e.g., using selection unit 817).

[0029] (A24) In some embodiments of the electronic device according to any one of A19-A23, associating a determined departure time with a calendar entry includes generating (e.g., using generation unit 819) a reminder and updating the calendar entry to include the generated reminder.

[0030] (A25) In some embodiments of the electronic device according to any one of A18-A24, the processing unit is further configured to receive, on a touch-sensitive display unit, confirmation from the user of the electronic device (e.g., using receiving unit 821) of a previously accessed address corresponding to a calendar entry. After receiving the confirmation, the processing unit is configured to determine (e.g., using determining unit 811) the departure time.

[0031] (A26) In some embodiments of the electronic device according to any one of A18-A25, retrieving a previously accessed address includes retrieving (e.g., using retrieval unit 809) a previously accessed address from a database of previously accessed addresses associated with a user of the electronic device.

[0032] (A27) In some embodiments of the electronic device according to A26, the previously accessed addresses in the database of previously accessed addresses correspond to addresses previously accessed by the user of the electronic device.

[0033] (A28) In some embodiments of the electronic device according to any one of A26-A27, retrieving a previously accessed address includes performing a lookup (e.g., using execution unit 823) in a database of previously accessed addresses using a first identifier.

[0034] (A29) In some embodiments of the electronic device according to any one of A18-A28, the processing unit is further configured to scan (e.g., using scanning unit 825) a plurality of new calendar entries during the calendar entry creation process. Based on determining (e.g., by determining unit 811) a first identifier included in the plurality of scanned new calendar entries, the processing unit is configured to present (e.g., using presentation unit 827 and / or combined with display unit 801) a previously accessed address to the user of the electronic device to include it in the corresponding new calendar entry.

[0035] (A30) In some embodiments of the electronic device according to any one of A18-A29, the processing unit is further configured to determine (e.g., using determination unit 811) whether the user has arrived at a previously accessed address. Based on the determination (e.g., by determination unit 811) that the user has arrived at a previously accessed address, the processing unit is configured to update (e.g., using update unit 829) the location information associated with the previously accessed address. In some embodiments, determining whether the user has arrived at a previously accessed address is performed after (or in response to) providing an alert.

[0036] Therefore, electronic devices with displays, touch-sensitive surfaces, and optionally one or more sensors for detecting the intensity of contact with the touch-sensitive surface are provided with faster and more efficient methods and interfaces for generating and providing intelligent departure time reminders, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces can complement or replace conventional methods for providing generic or default reminders.

[0037] It should be noted that the various embodiments described above can be combined with any other embodiments described herein. The features and advantages described in the specification are not exhaustive, and specifically, many additional features and advantages will be apparent to those skilled in the art from the drawings, specification, and claims. Furthermore, it should be pointed out that the language used in this specification has been chosen in principle for readability and instruction purposes, and such choice may not be necessary to depict or define the subject matter of the invention. Attached Figure Description

[0038] To better understand the various embodiments described, reference should be made to the detailed implementation in the Embodiments section below in conjunction with the following figures, wherein similar reference numerals indicate corresponding parts in all figures.

[0039] Figure 1A This is a high-level block diagram of a computing device with a touch-sensitive display according to some implementation schemes.

[0040] Figure 1B This is a block diagram of exemplary components for event handling according to some implementation schemes.

[0041] Figure 1C This is a schematic diagram of a portable multi-functional device with a touch-sensitive display according to some implementation schemes.

[0042] Figure 1D This is a schematic diagram illustrating a computing device having a touch-sensitive surface separate from the display, according to some embodiments.

[0043] Figure 2 This is a schematic diagram of a touchscreen for displaying the menu of an application, according to some implementation schemes.

[0044] Figures 3A-3B This is a block diagram illustrating a data structure for storing calendar entries, based on some implementation schemes.

[0045] Figures 4A-4B This is a block diagram illustrating a data structure for storing previously accessed addresses, based on some implementation schemes.

[0046] Figure 5 A block diagram is provided to illustrate an exemplary departure time reminder generation system according to some implementation schemes.

[0047] Figure 6 This is a flowchart illustrating a method for generating and providing intelligent departure time reminders according to some implementation schemes.

[0048] Figures 7A-7F This is a schematic diagram illustrating a touch-sensitive display used to generate and provide intelligent departure time reminders according to some implementation schemes.

[0049] Figure 8 This is a functional block diagram of an electronic device according to some implementation schemes. Detailed Implementation

[0050] As described above and discussed in more detail below, there is a need for electronic devices with faster and more efficient methods and interfaces for generating and providing intelligent departure time reminders. Specifically, there is a need to generate and provide departure time reminders based on previously visited addresses (e.g., if a calendar entry contains a title with the text "Dentist visit," a departure time reminder could be generated based on the corresponding previous visit address). This document discloses novel methods and interfaces for addressing these needs. Such methods and interfaces optionally complement or replace conventional methods for generating departure time reminders. These methods and interfaces simplify the process of generating departure time reminders by allowing users to quickly create calendar entries with minimal text input and then automatically, without human intervention, determine the corresponding geographic destination based solely on that minimal text input. Therefore, users can continue to quickly create calendar entries on electronic devices, and by utilizing the methods and interfaces disclosed herein, electronic devices seamlessly create intelligent departure time reminders for calendar entries. Thus, such methods and interfaces help ensure users arrive at events on time. Therefore, the methods and interfaces disclosed herein reduce cognitive load and the time users must spend creating calendar entries, thereby creating a more efficient human-computer interface. For battery-powered electronic devices, generating and delivering smart departure time reminders faster and more efficiently saves power and increases the time interval between two battery charges (e.g., by automating tasks that typically require a lot of user interaction, such as automatically identifying previously visited addresses as destinations for calendar entries created without specific location details).

[0051] under, Figure 1A-Figure 1B and Figure 2 A description of an exemplary device is provided. Figure 8 A functional block diagram of an exemplary electronic device is provided. Figures 3A-3B and Figures 4A-4B Here are some exemplary data structures used to generate and provide intelligent departure time reminders (these data structures are referenced below). Figure 6 The block diagram of the method described herein. Figure 5 To illustrate an exemplary system for generating and providing intelligent departure time reminders (this exemplary system is used for reference below) Figure 6 The block diagram of the method described herein. Figure 5 This is a flowchart illustrating a method for generating and providing intelligent departure time reminders. Figures 7A-7F An illustration of a touch-sensitive display used to show an exemplary user interface that generates and provides smart departure time reminders. Figures 3A-3B 4A-4B, 5 and 7A-7E are used to illustrate Figure 5 Methods and / or processes.

[0052] Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. Numerous specific details are shown in the following detailed description in order to provide a full understanding of the various described embodiments. However, it will be apparent to those skilled in the art that the various described embodiments can be practiced without these specific details. In other instances, well-known methods, processes, components, circuits, and networks are not described in detail so as not to unnecessarily obscure the various aspects of the embodiments.

[0053] It will also be understood that, although in some cases the terms “first,” “second,” etc., are used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact may be referred to as a second contact, and similarly, a second contact may be referred to as a first contact, without departing from the scope of the various described embodiments. Both the first contact and the second contact are contacts, but they are not the same contact.

[0054] The terminology used in the description of the various described embodiments 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 described embodiments and the appended claims, the singular forms “a” (“a”, “an”) and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and / or” as used herein refers to and covers any and all possible combinations of one or more of the items listed in association. It will also be understood that the terms “comprising” and / or “including” as used in this specification specify the presence of the 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.

[0055] As used herein, depending on the context, the term "if" is optionally interpreted as meaning "when," "at," "in response to determination," or "in response to detection." Similarly, depending on the context, the phrase "if it is determined..." or "if [the stated condition or event] is optionally interpreted as meaning "when it is determined..." or "in response to determination..." or "when [the stated condition or event] is detected," or "in response to the detection of [the stated condition or event]."

[0056] The disclosure herein is interchangeable with relating to the detection of touch input located on, above, on top of, or substantially within a specific user interface element or portion of a touch-sensitive display. As used herein, touch input detected “at” a specific user interface element may also be detected “on,” “above,” “on top of,” or “substantially within” the same user interface element, depending on the context. In some embodiments, and as discussed in more detail below, the user of the electronic device configures a desired sensitivity level for detecting touch input as follows (e.g., the user may decide (and configure the operation of the electronic device) that touch input should only be detected when the touch input is completely within the user interface element).

[0057] This document describes implementations of electronic devices, user interfaces for such devices, and associated processes for using such devices. In some implementations, the device is a portable communication device, such as a mobile phone, that also includes other functionalities such as PDA and / or music player functionality. Exemplary implementations of portable multi-functional devices include, but are not limited to, those from Apple Inc. (Cupertino, California). Device, iPod Equipment, and Device. Optionally, other portable electronic devices may be used, such as laptops or tablets with touch-sensitive surfaces (e.g., touch-sensitive displays and / or touchpads). It should also be understood that in some embodiments, the device is not a portable communication device, but a desktop computer with touch-sensitive surfaces (e.g., touch-sensitive displays and / or touchpads).

[0058] In the following discussion, an electronic device including a display and a touch-sensitive surface is described. However, it should be understood that the electronic device may optionally include one or more other physical user interface devices, such as a physical keyboard, mouse, and / or joystick.

[0059] The device typically supports a variety of applications, such as one or more of the following: drawing applications, presentation applications, word processing applications, website creation applications, disk editing applications, spreadsheet applications, game applications, phone applications, video conferencing applications, email applications, instant messaging applications, fitness applications, photo management applications, digital camera applications, digital camcorder applications, web browsing applications, digital music player applications, and / or digital video player applications.

[0060] 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 functions of the touch-sensitive surface and the corresponding information displayed on the device are optionally adjusted and / or varied for different applications, and / or adjusted and / or varied within the respective applications. In this way, the device's common physical architecture (such as the touch-sensitive surface) optionally utilizes a user interface that is intuitive and clear to the user to support various applications.

[0061] The focus is now on implementation schemes for portable electronic devices with touch-sensitive displays. Figure 1A A block diagram illustrating a portable multi-functional device 100 (also interchangeably referred to herein as electronic device 100 or device 100) having a touch-sensitive display 112 according to some embodiments. The touch-sensitive display 112 is sometimes conveniently called a “touchscreen” and may also be referred to as a touch-sensitive display system. Device 100 includes a memory 102 (which optionally includes one or more computer-readable storage media), a controller 120, one or more processing units (CPUs) 122, a peripheral interface 118, RF circuitry 108, audio circuitry 110, a speaker 111, a microphone 113, an input / output (I / O) subsystem 106, other input or control devices 116, and an external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more intensity sensors 165 (e.g., touch-sensitive surfaces, such as the touch-sensitive display system 112 of device 100) for detecting the intensity of contact on device 100. Device 100 optionally includes one or more haptic output generators 167 for generating haptic output on device 100 (e.g., generating haptic output on a touch-sensitive surface such as the touch-sensitive display system 112 of device 100 or the touchpad of device 100). These components optionally communicate via one or more communication buses or signal lines 103.

[0062] As used in this specification and claims, the term "intensity" of contact on a tactile surface refers to the force or pressure (force per unit area) of a contact (e.g., finger contact) on a tactile surface, or to a substitute (alternative) for the force or pressure of a contact on a tactile surface. The intensity of contact has a range of values, including at least four different values ​​and more typically hundreds of different values ​​(e.g., at least 256). The intensity of contact is optionally determined (or measured) using various methods and various sensors or combinations of sensors. For example, one or more force sensors below or adjacent to the tactile surface are optionally used to measure the force at different points on the tactile surface. In some embodiments, force measurements from multiple force sensors are combined (e.g., weighted average) to determine an estimated contact force. Similarly, the pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the tactile surface. Alternatively, the size and / or variation of the contact area detected on the touch-sensitive surface, the capacitance and / or variation of the touch-sensitive surface near the contact, and / or the resistance and / or variation of the touch-sensitive surface near the contact may optionally be used as substitutes for the force or pressure of the contact on the touch-sensitive surface. In some embodiments, the substitute measurement of the contact force or pressure is used directly to determine whether an intensity threshold (e.g., the intensity threshold is described in units corresponding to the substitute measurement) has been exceeded. In some embodiments, the substitute measurement of the contact force or pressure is converted into an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold (e.g., the intensity threshold is a pressure threshold measured in units of pressure) has been exceeded.

[0063] As used in this specification and claims, the term "haptic output" refers to a physical displacement of the device relative to a previous position of the device, a physical displacement of a component of the device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., the housing), or a displacement of a component relative to the center of mass of the device, which is detected by the user using the user's tactile sense. For example, when the device or a component of the device comes into contact with a touch-sensitive surface (e.g., a finger, palm, or other part of the user's hand), the haptic output generated by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in the physical characteristics of the device or a component of the device. For example, movement of a touch-sensitive surface (e.g., a touch-sensitive display or touchpad) may optionally be interpreted by the user as a "press-click" or "release-click" on a physically actuated button. In some cases, the user will feel a tactile sensation, such as a "press-click" or "release-click," even when a physically actuated button associated with a touch-sensitive surface that has been physically pressed (e.g., displaced) by the user's movement does not move. As another example, even when the smoothness of the tactile surface remains unchanged, movement of the tactile surface can optionally be interpreted or sensed by the user as “roughness” of the tactile surface. While such interpretations of touch by the user will be limited by the user’s individualized sensory perception, there are many sensory perceptions of touch that are common to most users. Therefore, when a tactile output is described to correspond to a user’s specific sensory perception (e.g., “release click,” “press click,” “roughness”), unless otherwise stated, the generated tactile output corresponds to a physical displacement of the device or its components that will generate the sensory perception described by a typical (or average) user.

[0064] It should be understood that device 100 is merely an example of a portable multifunctional device, and device 100 may optionally have more or fewer components than shown, may optionally combine two or more components, or may optionally have different configurations or arrangements of these components. Figure 1A The various components shown are implemented in hardware, software, or a combination of both, including one or more signal processing and / or application-specific integrated circuits.

[0065] Memory 102 optionally includes high-speed random access memory (e.g., DRAM, SRAM, DDR RAM, or other random access solid-state memory devices), and also optionally includes non-volatile memory such as one or more disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory 102 optionally includes one or more storage devices located remotely from one or more processors 122. Access to memory 102 by other components of device 100, such as CPU 122 and peripheral interface 118, is optionally controlled by controller 120.

[0066] Peripheral interface 118 can be used to couple the device's input peripherals and output peripherals to CPU 122 and memory 102. One or more processors 122 run or execute various software programs and / or instruction sets stored in memory 102 to perform various functions of device 100 and process data.

[0067] In some implementations, the peripheral interface 118, CPU 122, and controller 120 are optionally implemented on a single chip, such as chip 104. In other implementations, they are optionally implemented on separate chips.

[0068] RF (Radio Frequency) circuit 108 receives and transmits RF signals, also known as electromagnetic signals. RF circuit 108 converts electrical signals into electromagnetic signals / converts electromagnetic signals into electrical signals, and communicates with communication networks and other communication devices via these electromagnetic signals. RF circuit 108 optionally includes well-known circuitry for performing these functions, including but not limited to antenna systems, RF transceivers, one or more amplifiers, tuners, one or more oscillators, digital signal processors, codec chipsets, Subscriber Identity Module (SIM) cards, memory, etc. RF circuit 108 optionally communicates wirelessly with networks and other devices, such as the Internet (also known as the World Wide Web (WWW)), intranets, and / or wireless networks (such as cellular telephone networks, wireless local area networks (LANs), and / or metropolitan area networks (MANs)). Wireless communication may optionally employ any of a number of communication standards, protocols and technologies, including but not limited to Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), High-Speed ​​Downlink Packet Access (HSDPA), High-Speed ​​Uplink Packet Access (HSUPA), Evolved Pure Data (EV-DO), HSPA, HSPA+, Dual-Unit HSPA (DC-HSPDA), Long Term Evolution (LTE), Near Field Communication (NFC), Wide Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth and / or Wi-Fi (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and / or IEEE 802.11n).

[0069] Audio circuitry 110, speaker 111, and microphone 113 provide an audio interface between the user and device 100. Audio circuitry 110 receives audio data from peripheral 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 circuitry 110 also receives electrical signals converted from sound waves by microphone 113. Audio circuitry 110 converts the electrical signals into audio data and transmits the audio data to peripheral interface 118 for processing. Audio data is optionally retrieved by peripheral interface 118 from and / or transmitted to memory 102 and / or RF circuitry 108. In some embodiments, audio circuitry 110 also includes a headset jack. The headset jack provides an interface between audio circuitry 110 and a removable audio input / output peripheral device, such as an output-only headset or a headset with both output (e.g., mono-ear or binaural) and input (e.g., microphone).

[0070] I / O subsystem 106 connects input / output peripherals such as touchscreen 112 and other input control devices 116 on device 100 to peripheral interface 118. I / O subsystem 106 optionally includes display controller 156, optical sensor controller 158, intensity sensor controller 159, haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. The one or more input controllers 160 receive electrical signals from / send electrical signals to the other input or control devices 116. Other input control devices 116 optionally include physical buttons (e.g., push-buttons, rocker buttons, etc.), dial pads, slide switches, joysticks, click wheels, etc. In some alternative embodiments, one or more input controllers 160 may optionally be coupled to (or not coupled to) any of the following: a keyboard, an infrared port, a USB port, and a pointing device such as a mouse. The one or more buttons may optionally include volume up / down buttons for speaker 111 and / or microphone 113. The one or more buttons may optionally include a push-down button.

[0071] The touch-sensitive display 112 provides input and output interfaces between the device and the user. The display controller 156 receives electrical signals from and / or sends electrical signals to the touchscreen 112. The touchscreen 112 displays visual output to the user. Visual output optionally includes graphics, text, icons, video, and any combination thereof (collectively, "graphics"). In some embodiments, some or all of the visual output corresponds to user interface objects.

[0072] Touchscreen 112 has a touch-sensitive surface, sensor, or sensor array that accepts input from a user based on tactile and / or haptic contact. Touchscreen 112 and display controller 156 (along with any associated modules and / or instruction set in memory 102) detect contact on touchscreen 112 (and any movement or interruption of that contact) and translate the detected contact into interaction with user interface objects (e.g., one or more soft keys, icons, web pages, or images) displayed on touchscreen 112. In one exemplary embodiment, the contact point between touchscreen 112 and the user corresponds to the area beneath the user's finger.

[0073] Touchscreen 112 optionally employs LCD (Liquid Crystal Display) technology, LPD (Light Emitting Polymer Display) technology, LED (Light Emitting Diode) technology, or OLED (Organic Light Emitting Diode) technology, but other display technologies are used in other embodiments. Touchscreen 112 and display controller 156 optionally employ any of a variety of touch sensing technologies currently known or to be developed hereafter, along with other proximity sensor arrays or other elements for determining one or more points of contact with touchscreen 112, to detect contact and any movement or interruption thereof. These various touch sensing technologies include, but are not limited to, capacitive, resistive, infrared, and surface acoustic wave technologies. In one exemplary embodiment, projected mutual capacitance sensing technology, such as that from APPLE Inc. (Cupertino, California), is used. IPOD and The technology discovered in [the text].

[0074] Touchscreen 112 optionally has a video resolution of more than 400 dpi. In some embodiments, touchscreen 112 has a video resolution of at least 600 dpi. In other embodiments, touchscreen 112 has a video resolution of at least 1000 dpi. The user optionally uses any suitable object or finger, such as a stylus or finger, to interact with touchscreen 112. In some embodiments, the user interface is designed for use primarily with finger-based touch and gestures. In some embodiments, the device translates finger-based input into precise pointer / cursor positions or commands to perform the user-desired actions.

[0075] In some embodiments, in addition to the touchscreen, device 100 optionally includes a touchpad (not shown) for activating or deactivating specific functions. In some embodiments, the touchpad is a touch-sensitive area of ​​the device that differs from the touchscreen and does not display visual output. The touchpad is optionally a touch-sensitive surface separate from the touchscreen 112, or an extension of the touch-sensitive surface formed by the touchscreen.

[0076] The device 100 also includes a power system 162 for supplying power to various components. The power system 162 optionally includes a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a recharging system, a power fault detection circuit, a power converter or inverter, a power status indicator (e.g., light-emitting diodes (LEDs)), and any other components associated with the generation, management, and distribution of power in the portable device.

[0077] The device 100 may optionally also include one or more optical sensors 164. Figure 1A An optical sensor 164 is shown coupled to an optical sensor controller 158 in the I / O subsystem 106. The optical sensor 164 optionally includes a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The optical sensor 164 receives light projected through one or more lenses from the environment and converts the light into data representing an image. In conjunction with an imaging module 143 (also called a camera module), the optical sensor 164 optionally captures still images or video. In some embodiments, the optical sensor is located on the rear of the device 100, opposite to a touchscreen 112 on the front of the device, allowing the touchscreen display to be used as a viewfinder for still image and / or video image acquisition. In some embodiments, another optical sensor is located on the front of the device, allowing the user to optionally acquire an image of another video conference participant for use in the video conference while viewing that participant on the touchscreen display.

[0078] The device 100 may optionally also include one or more contact strength sensors 165. Figure 1A A contact strength sensor 165 is shown coupled to a strength sensor controller 159 in I / O subsystem 106. The contact strength sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electrostatic sensors, piezoelectric sensors, optical force sensors, capacitive touch-sensitive surfaces, or other strength sensors (e.g., sensors for measuring the force (or pressure) of contact on a touch-sensitive surface). The contact strength sensor 165 receives contact strength information (e.g., pressure information or a substitute for pressure information) from the environment. In some embodiments, at least one contact strength sensor is arranged juxtaposed with or adjacent to a touch-sensitive surface (e.g., touch-sensitive display system 112). In some embodiments, at least one contact strength sensor is located on the rear of device 100, opposite to a touchscreen 112 located on the front of device 100.

[0079] The device 100 optionally also includes one or more proximity sensors 166. Figure 1AA proximity sensor 166 is shown coupled to the peripheral device interface 118. Alternatively, the proximity sensor 166 is coupled to an input controller 160 in the I / O subsystem 106. In some embodiments, the proximity sensor is turned off and the touchscreen 112 is disabled when the multifunction device is placed near the user's ear (e.g., when the user is making a phone call).

[0080] The device 100 may optionally also include one or more tactile output generators 167. Figure 1A A haptic output generator coupled to a haptic feedback controller 161 in I / O subsystem 106 is shown. The haptic output generator 167 optionally includes one or more electroacoustic devices such as speakers or other audio components and / or electromechanical devices for converting energy into linear motion such as motors, solenoids, electroactive polymers, piezoelectric actuators, electrostatic actuators, or other haptic output generating components (e.g., components for converting electrical signals into haptic outputs on the device). A contact intensity sensor 165 receives haptic feedback generation instructions from a haptic feedback module 133 and generates a haptic output on device 100 that can be felt by a user of device 100. In some embodiments, at least one haptic output generator is juxtaposed or adjacent to a haptic surface (e.g., haptic display system 112) and optionally generates the haptic output by moving the haptic surface vertically (e.g., inside / outside the surface of device 100) or laterally (e.g., back and forth in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the rear of the device 100, opposite to the touch-sensitive display 112 located on the front of the device 100.

[0081] The device 100 may optionally also include one or more accelerometers 168. Figure 1A An accelerometer 168 is shown coupled to a peripheral device interface 118. Alternatively, the accelerometer 168 may be coupled to an input controller 160 in an I / O subsystem 106. In some embodiments, information is displayed on a touch-sensitive display in portrait or landscape view based on analysis of data received from one or more accelerometers. The device 100 may optionally include, in addition to the accelerometer 168, a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for acquiring information about the location and orientation (e.g., portrait or landscape) of the device 100.

[0082] In some embodiments, the software components stored in memory 102 include an operating system 126, a communication module (or instruction set) 128, a contact / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a text input module (or instruction set) 134, a Global Positioning System (GPS) module (or instruction set) 135, and an application program (or instruction set) 136. Furthermore, in some embodiments, memory 102 stores device / global internal state 157, a departure determination module 163 (optionally including one or more of previously accessed addresses 402, calendar entry data structure 302, destination prediction module 163-1, route determination module 163-2, and / or departure reminder module 163-3), such as... Figure 1A As shown. Device / global internal state 157 includes one or more of the following: active application state, which indicates which applications (if any) are currently active; display state, which indicates what applications, views or other information occupy various areas of the touch-sensitive display 112; sensor state, which includes information obtained from the device's various sensors and input control devices 116; and positional information about the device's position and / or orientation (i.e., the device's orientation).

[0083] Operating system 126 (e.g., Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or embedded operating systems such as VxWorks) includes various software components and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components.

[0084] The communication module 128 facilitates communication with other devices via one or more external ports 124 and includes various software components for processing data received by the RF circuitry 108 and / or the external ports 124. The external ports 124 (e.g., Universal Serial Bus (USB), FireWire, etc.) are adapted to be directly coupled to other devices or indirectly coupled via a network (e.g., the Internet, wireless LAN, etc.). In some embodiments, the external port is a multi-pin (e.g., 30-pin) connector that is the same as, similar to, and / or compatible with, the 30-pin connector used in some embodiments of iPod devices from Apple Inc. In other embodiments, the external port is a multi-pin (e.g., 8-pin) connector that is the same as, similar to, and / or compatible with the 8-pin connector used in Lightning connectors from Apple Inc.

[0085] The contact / motion module 130 optionally detects contact with the touchscreen 112 (in conjunction with the display controller 156) and other touch-sensitive devices (e.g., touchpads or physical click-based rotary dials). The contact / motion module 130 includes various software components for performing various operations related to contact detection, such as determining whether a contact has occurred (e.g., detecting a finger press event), determining the intensity of the contact (e.g., the force or pressure of the contact, or an alternative to force or pressure), determining whether there is movement of the contact and tracking the movement on the touch-sensitive surface (e.g., detecting one or more finger drag events), and determining whether the contact has stopped (e.g., detecting a finger lift event or a contact disconnection). The contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point optionally includes determining the rate (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point, the movement of which is represented by a series of contact data. These operations are optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contact). In some implementations, the contact / motion module 130 and the display controller 156 detect contact on the touchpad.

[0086] In some implementations, the contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an operation has been performed by a user (e.g., determining whether the user has selected or “clicked” a power indicator). In some implementations, at least a subset of the intensity thresholds is determined based on software parameters (e.g., the intensity thresholds are not determined by the activation threshold of a specific physical actuator and can be adjusted without changing the physical hardware of device 100). For example, the mouse “click” threshold of a touchpad or touch-sensitive display can be set to any one of a wide range of predefined thresholds without changing the touchpad or touchscreen display hardware. Additionally, in some implementations, the user of the device is provided with software settings for adjusting one or more intensity thresholds in a set (e.g., by adjusting the individual intensity thresholds and / or by adjusting multiple intensity thresholds at once using system-level clicks on the “intensity” parameter).

[0087] The touch / motion module 130 optionally detects user gesture input. Different gestures on a touch-sensitive surface have different contact patterns (e.g., different movements, timings, and / or intensities of the detected contact). Therefore, gestures are optionally detected by detecting specific contact patterns. For example, detecting a finger tap gesture includes detecting a finger press event and then detecting a finger lift-off (lift-away) event at the same (or substantially the same) location as the finger press event (e.g., at the location of an icon). As another example, detecting a finger swipe gesture on a touch-sensitive surface includes detecting a finger press event, then detecting one or more finger drag events, and in some embodiments, subsequently detecting a finger lift-off (lift-away) event.

[0088] The graphics module 132 includes various known software components for rendering and displaying graphics on the touchscreen 112 or other display, including components for altering the visual impact of the displayed graphics (e.g., brightness, transparency, saturation, contrast, or other visual characteristics). As used herein, the term "graphics" includes any object that can be displayed to a user, and non-limitingly includes text, web pages, icons (such as user interface objects including soft keys), digital images, videos, animations, etc.

[0089] In some implementations, the graphics module 132 stores data for representing graphics to be used. Each graphic is optionally assigned a corresponding code. The graphics module 132 receives one or more codes from applications, etc., specifying the graphics to be displayed, and, if necessary, coordinate data and other graphic attribute data, and then generates screen image data for output to the display controller 156.

[0090] The haptic feedback module 133 includes various software components for generating instructions that are used by one or more haptic output generators 167 to produce haptic output at one or more locations on the device 100 in response to user interaction with the device 100.

[0091] Optionally, the text input module 134, a component of the graphics module 132, provides a soft keyboard for entering text in various applications (e.g., the contact module 137, the email client module 140, the IM module 141, the browser module 147, and any other application that requires text input).

[0092] GPS module 135 determines the location of the device and provides this information for use in various applications (e.g., to a phone 138 for location-based dialing, to a camera 143 as image / video metadata, and to applications that provide location-based services such as weather desktop apps, local yellow pages desktop apps, and map / navigation desktop apps).

[0093] Application (“app”) 136 optionally includes the following modules (or instruction sets) or subsets or supersets thereof:

[0094] • Contacts module 137 (sometimes called address book or contact list);

[0095] • Telephone module 138;

[0096] • Video conferencing module 139;

[0097] • Email client module 140;

[0098] • Instant Messaging (IM) module 141;

[0099] Fitness module 142;

[0100] • Camera module 143 for still images and / or video images;

[0101] • Image management module 144;

[0102] • Browser module 147;

[0103] • Calendar module 148;

[0104] • Desktop mini-program module 149, which optionally includes one or more of the following: weather desktop mini-program 149-1, stock market desktop mini-program 149-2, calculator desktop mini-program 149-3, alarm clock desktop mini-program 149-4, dictionary desktop mini-program 149-5, and other desktop mini-programs obtained by the user, and desktop mini-programs created by the user 149-6;

[0105] • Search module 151;

[0106] • Video and music player module 152, optionally composed of a video player module and a music player module;

[0107] • Notepad module 153;

[0108] • Map module 154; and / or

[0109] • Online video module 155.

[0110] Examples of other applications 136 optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, rendering applications, website creation applications, disk editing applications, spreadsheet applications, JAVA-enabled applications, encryption, digital rights management, speech recognition, speech copying, and desktop applet creator modules for creating user-created desktop applets 149-6.

[0111] In conjunction with the touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the contact module 137 is optionally used to manage an address book or contact list (e.g., a contact module 137 stored in memory 102), including: adding one or more names to the address book; deleting one or more names from the address book; associating one or more phone numbers, one or more email addresses, one or more physical addresses, or other information with a name; associating an image with a name; categorizing and sorting names; providing a phone number or email address to initiate and / or facilitate communication via the telephone module 138, video conferencing module 139, email client module 140, or IM module 141, etc.

[0112] In conjunction with RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, telephone module 138 is optionally used to input character sequences corresponding to telephone numbers, access one or more telephone numbers in address book 137, modify entered telephone numbers, dial corresponding telephone numbers, initiate conversations, and disconnect or hang up when a conversation is completed. As described above, wireless communication optionally uses any of a variety of communication standards, protocols, and technologies.

[0113] Combining RF circuitry 108, audio circuitry 110, speaker 111, microphone 113, touchscreen 112, display controller 156, optical sensor 164, optical sensor controller 158, contact module 130, graphics module 132, text input module 134, contact list 137, and telephone module 138, video conferencing module 139 includes executable instructions for initiating, conducting, and terminating video conferences between the user and one or more other participants, based on user instructions.

[0114] Incorporating RF circuitry 108, touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, email client module 140 includes executable instructions for creating, sending, receiving, and managing emails in response to user commands. Combined with image management module 144, email client module 140 makes it very easy to create and send emails containing still images or video images captured by camera module 143.

[0115] In conjunction with RF circuitry 108, touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, instant messaging module 141 includes executable instructions for: inputting a character sequence corresponding to an instant message; modifying previously input characters; transmitting a corresponding instant message (e.g., using Short Message Service (SMS) or Multimedia Messaging Service (MMS) protocols for telephone-based instant messaging or using XMPP, SIMPLE, or IMPS for internet-based instant messaging); receiving an instant message; and viewing a received instant message. In some embodiments, the transmitted and / or received instant messages optionally include graphics, photographs, audio files, video files, and / or other attachments supported in MMS and / or Enhanced Messaging Services (EMS). As used herein, "instant message" means both telephone-based messages (e.g., messages transmitted using SMS or MMS) and internet-based messages (e.g., messages transmitted using XMPP, SIMPLE, or IMPS).

[0116] Incorporating RF circuitry 108, touchscreen 112, display controller 156, contact module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and video and music player module 152, fitness module 142 includes executable instructions for: creating fitness activities (e.g., with time, distance, and / or calorie burning goals), communicating with fitness sensors (sports devices such as watches or pedometers), receiving fitness sensor data, calibrating sensors used to monitor fitness, selecting and playing fitness music, and displaying, storing, and transmitting fitness data.

[0117] In conjunction with the touchscreen 112, display controller 156, one or more optical sensors 164, optical sensor controller 158, contact module 130, graphics module 132, and image management module 144, camera module 143 includes executable instructions for: capturing still images or videos (including video streams) and storing them in memory 102, modifying the characteristics of still images or videos, or deleting still images or videos from memory 102.

[0118] Incorporating touchscreen 112, display controller 156, contact 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, tagging, deleting, presenting (e.g., in a digital slideshow or album), and storing still images and / or video images.

[0119] Combining RF circuit 108, touch screen 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, browser module 147 includes executable instructions for browsing the Internet (including searching, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages) according to user instructions.

[0120] Combining RF circuit 108, touch screen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, calendar module 148 includes executable instructions for creating, displaying, modifying, and storing calendars and calendar-related data (e.g., calendar entries, to-dos, etc.) according to user instructions.

[0121] In conjunction with RF circuitry 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, and browser module 147, desktop applet module 149 is optionally a micro-application downloaded and used by a user (e.g., weather desktop applet 149-1, stock market desktop applet 149-2, calculator desktop applet 149-3, alarm clock desktop applet 149-4, and dictionary desktop applet 149-5) or a user-created micro-application (e.g., user-created desktop applet 149-6). In some embodiments, the desktop applet includes HTML (Hypertext Markup Language) files, CSS (Cascading Style Sheets) files, and JavaScript files. In some embodiments, the desktop applet includes XML (Extensible Markup Language) files and JavaScript files (e.g., Yahoo! desktop applet).

[0122] In conjunction with RF circuit 108, touch screen 112, display system controller 156, contact module 130, graphics module 132, text input module 134 and browser module 147, a desktop applet creator module (not shown) can optionally be used by the user to create desktop applets (e.g., to transfer user-specified portions of a webpage to a desktop applet).

[0123] In conjunction with the touchscreen 112, display system controller 156, contact module 130, graphics module 132, and text input module 134, the search module 151 includes executable instructions for searching the memory 102 for text, music, sound, images, videos, and / or other files that match one or more search criteria (e.g., one or more user-specified search terms) according to user instructions.

[0124] Incorporating touchscreen 112, display system controller 156, contact module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, and browser module 147, video and music player module 152 includes executable instructions derived from allowing users to download and play back 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 back video (e.g., 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 the iPod from Apple Inc.

[0125] Incorporating the touchscreen 112, display controller 156, contact module 130, graphics module 132, and text input module 134, the notepad module 153 includes executable instructions for creating and managing notes, to-do items, etc., according to user instructions.

[0126] In conjunction with RF circuitry 108, touchscreen 112, display system controller 156, contact module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, map module 154 is optionally used to receive, display, modify, and store maps and map-related data (e.g., driving routes; data about businesses and other points of interest at or near a specific location; and other location-based data) according to user instructions.

[0127] In conjunction with touchscreen 112, display system controller 156, contact module 130, graphics module 132, audio circuitry 110, speaker 111, RF circuitry 108, text input module 134, email client module 140, and browser module 147, online video module 155 includes instructions that allow a user to access, browse, receive (e.g., via streaming and / or downloading), play back (e.g., on the touchscreen or on an external display connected via external port 124), send emails with links to specific online videos, and otherwise manage online videos in one or more file formats, such as H.264. In some embodiments, instant messaging module 141, instead of email client module 140, is used to send links to specific online videos.

[0128] like Figure 1AAs shown, the portable multifunction device 100 also includes a departure determination module 163 for coordinating departure determination operations on the device 100 (e.g., retrieving data from previously accessed address 402 or calendar entry data structure 302 and using the retrieved data to create a departure time reminder). The departure determination module 163 optionally includes the following modules (or instruction sets) or a subset or superset thereof:

[0129] • Previous access address 402, which is used to store information about addresses previously accessed by the user of device 100 (or GPS coordinates corresponding to the addresses);

[0130] • Calendar entry data structure 302, which is used to store information about calendar entries associated with the user of device 100;

[0131] • Destination prediction module 163-1;

[0132] • Route determination module 163-2; and

[0133] • Departure reminder module 163-3.

[0134] Combining GPS module 135, operating system 126, I / O subsystem 106, previously accessed address 402, calendar entry data structure 302, map module 154, and calendar module 148, destination prediction module 163-1 includes executable instructions for scanning calendar entries (e.g., one or more records stored in calendar entry data structure 302) and predicting the destination for the corresponding calendar entry based on previously accessed addresses (e.g., previously accessed addresses stored in previously accessed address 402).

[0135] Combining GPS module 135, operating system 126, I / O subsystem 106, previously accessed address 402, calendar entry data structure 302, map module 154 and calendar module 148, route determination module 163-2 includes executable instructions for determining one or more possible routes to a specific destination (e.g., walking, cycling, driving, using public transportation, etc.).

[0136] Combining GPS module 135, operating system 126, I / O subsystem 106, previously accessed address 402, calendar entry data structure 302, map module 154, and calendar module 148, the departure reminder module 163-3 includes a reminder to the user of device 100 that it is time to depart for an upcoming event (e.g., Figure 7B The executable instructions of an exemplary user interface object 702 with exemplary prompts are shown in the figure.

[0137] Each of the modules and applications identified above corresponds to a set of executable instructions for performing one or more of the functions described above, as well as the methods described in this patent application (e.g., computer-implemented methods and other information processing methods described herein). These modules (i.e., instruction sets) need not be implemented as separate software programs, processes, or modules; therefore, various subsets of these modules may optionally be combined or otherwise rearranged in various embodiments. In some embodiments, memory 102 optionally stores a subset of the modules and data structures described above. Furthermore, memory 102 optionally stores additional modules and data structures not described above.

[0138] In some implementations, device 100 is a device on which the operation of a predefined set of functions is performed solely via a touchscreen and / or touchpad. By using a touchscreen and / or touchpad as the primary input control device for the operation of device 100, the number of physical input control devices (such as push-buttons, dial pads, etc.) on device 100 is optionally reduced.

[0139] The predefined set of functions, performed exclusively via a touchscreen and / or touchpad, optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by a user, navigates device 100 from any user interface displayed on device 100 to the main menu, home menu, or root menu. In such embodiments, a touchpad is used to implement a "menu button." In some other embodiments, the menu button is a physical push-button or other physical input control device, rather than a touchpad.

[0140] Figure 1B This is a block diagram illustrating exemplary components used for event processing according to some embodiments. In some embodiments, memory 102 (in...) Figure 1A The middle) includes an event classifier 170 (e.g., in operating system 126) and a portable multifunction device 100 ( Figure 1A The corresponding application 136-1 selected from the application 136 (e.g., any of the aforementioned applications stored in memory 102 via application 136).

[0141] Event classifier 170 receives event information and determines the application 136-1 and application view 191 of application 136-1 to which the event information should be delivered. Event classifier 170 includes event monitor 171 and event dispatcher module 174. In some embodiments, application 136-1 includes application internal state 192, which indicates one or more current application views displayed on touch-sensitive display 112 when the application is active or executing. In some embodiments, device / global internal state 157 is used by event classifier 170 to determine which application(s) is currently active, and application internal state 192 is used by event classifier 170 to determine the application view 191 to which the event information should be delivered.

[0142] In some implementations, the application internal state 192 includes additional information such as one or more of the following: recovery information to be used when the application 136-1 resumes execution, user interface state information indicating information being displayed by the application 136-1 or information ready to be displayed by the application 136-1, a state queue for enabling the user to return to the previous state or view of the application 136-1, and a repeat / undo queue for the user's previous actions.

[0143] Event monitor 171 receives event information from peripheral device interface 118. The event information includes information about sub-events (e.g., user touches on touch-sensitive display 112 as part of a multi-touch gesture). Peripheral device interface 118 transmits information it receives from I / O subsystem 106 or sensors (such as proximity sensor 166, one or more accelerometers 168, and / or microphone 113 (via audio circuitry 110)). The information received by peripheral device interface 118 from I / O subsystem 106 includes information from touch-sensitive display 112 or touch-sensitive surfaces.

[0144] In some implementations, event monitor 171 sends requests to peripheral device interface 118 at predetermined intervals. In response, peripheral device interface 118 transmits event information. In other implementations, peripheral device interface 118 transmits event information only when a significant event occurs (e.g., receiving input above a predetermined noise threshold and / or receiving input for a predetermined duration).

[0145] In some implementations, the event classifier 170 also includes a hit view determination module 172 and / or an activity event recognizer determination module 173.

[0146] When the touch-sensitive display 112 displays more than one view, the hit view determination module 172 provides a software process for determining where a sub-event has occurred within one or more views. A view consists of controls and other elements that the user can see on the display.

[0147] Another aspect of the 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 view (of the corresponding application) in which a touch is detected optionally corresponds to a procedural level within the application's procedural or view hierarchy. For example, the lowest-level view in which a touch is detected is optionally referred to as the hit view, and the set of events considered as correct input is optionally determined at least in part based on the hit view of the initial touch, which begins with a touch-based gesture.

[0148] The hit view determination module 172 receives information related to sub-events of touch-based gestures. When an application has multiple views organized in a hierarchical structure, the hit view determination module 172 identifies the hit view as the lowest-level view in the hierarchical structure that handles the sub-events. In most cases, the hit view is the lowest-level view in which the initiating sub-event (i.e., the first sub-event in a sequence of sub-events that forms an event or potential event) occurs. Once a hit view is identified by the hit view determination module, the hit view typically receives all sub-events related to the same touch or input source to which it is identified as the hit view.

[0149] The activity event recognizer determination module 173 determines which views(s) within the view hierarchy should receive a specific sub-event sequence. In some embodiments, the activity event recognizer determination module 173 determines that only the hit view should receive the specific sub-event sequence. In other embodiments, the activity event recognizer determination module 173 determines that all views including the physical location of the sub-event are actively participating views, and therefore determines that all actively participating views should receive the specific sub-event sequence. In other embodiments, even if the touch sub-event is entirely confined to the area associated with a particular view, higher views in the hierarchy will still remain actively participating views.

[0150] Event assigner module 174 assigns event information to event identifiers (e.g., event identifier 180). In embodiments that include active event identifier determination module 173, event assigner module 174 delivers event information to the event identifier determined by active event identifier determination module 173. In some embodiments, event assigner module 174 stores event information in an event queue, which is retrieved by the corresponding event receiver 182.

[0151] In some embodiments, operating system 126 includes event classifier 170. Alternatively, application 136-1 includes event classifier 170. In another embodiment, event classifier 170 is a separate module or part of another module (such as contact / motion module 130) stored in memory 102.

[0152] In some embodiments, application 136-1 includes a plurality of event handlers 190 and one or more application views 191, each of which includes instructions for handling touch events occurring 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 a plurality of event recognizers 180. In other embodiments, one or more of the event recognizers 180 are part of a separate module, such as a user interface toolkit (not shown) 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 the following: a data updater 176, an object updater 177, a GUI updater 178, and / or event data 179 received from an event classifier 170. Event handlers 190 optionally utilize or invoke the data updater 176, the object updater 177, or the GUI updater 178 to update the application's internal state 192. Alternatively, one or more application views in application view 191 include one or more corresponding event handlers 190. Additionally, in some embodiments, one or more of data updater 176, object updater 177, and GUI updater 178 are included in the corresponding application view 191.

[0153] The corresponding event recognizer 180 receives event information (e.g., event data 179) from the event classifier 170 and identifies events from the event information. The event recognizer 180 includes an event receiver 182 and an event comparator 184. In some embodiments, the event recognizer 180 also includes at least one subset of metadata 183 and event delivery instructions 188 (which optionally include sub-event delivery instructions).

[0154] Event receiver 182 receives event information from event classifier 170. The event information includes information about sub-events, such as 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 optionally also includes the rate 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 a longitudinal orientation to a lateral orientation, or vice versa), and the event information includes corresponding information about the device's current orientation (also referred to as device orientation).

[0155] Event comparator 184 compares event information with predefined event or sub-event definitions and, based on the comparison, determines an event or sub-event, or determines or updates the state of an event or sub-event. In some embodiments, event comparator 184 includes event definition 186. Event definition 186 contains definitions of events (e.g., predefined sequences of sub-events), such as event 1 (187-1), event 2 (187-2), and others. In some embodiments, sub-events in event 187 include, for example, touch start, touch end, touch move, touch cancel, and multi-touch. In one example, the definition for event 1 (187-1) is a double-click on a displayed object. For example, a double-click includes a first touch (touch start) of a predetermined duration on the displayed object, a first lift-off of a predetermined duration (touch end), a second touch (touch start) of a predetermined duration on the displayed object, and a second lift-off of a predetermined duration (touch end). In another example, the definition for event 2 (187-2) is a drag on a displayed object. For example, dragging includes a touch (or contact) on the displayed object for a predetermined duration, movement of the touch on the touch-sensitive display 112, and lifting the touch (end of touch). In some embodiments, the event also includes information for one or more associated event handlers 190.

[0156] In some implementations, event definition 186 includes definitions of events for corresponding user interface objects. In some implementations, event comparator 184 performs a hit test to determine which user interface object is associated with the sub-event. For example, in an application view displaying three user interface objects on touch-sensitive display 112, when a touch is detected on touch-sensitive display 112, event comparator 184 performs a hit test to determine which of the three user interface objects is associated with the touch (sub-event). If each displayed object is associated with a corresponding event handler 190, the event comparator uses the result of the hit test to determine which event handler 190 should be activated. For example, event comparator 184 selects the event handler associated with the sub-event and the object that triggered the hit test.

[0157] In some implementations, the definition of the corresponding event 187 also includes a delay action that delays the delivery of event information until it has been determined whether the sub-event sequence actually corresponds to or does not correspond to the event type of the event recognizer.

[0158] When the corresponding event recognizer 180 determines that the sub-event series does not match any event in event definition 186, the corresponding event recognizer 180 enters an event impossible, event failed, or event ended state, after which subsequent sub-events based on touch gestures are ignored. In this case, other event recognizers (if any) that remain active in the hit view continue to track and process the ongoing sub-events based on touch gestures.

[0159] In some embodiments, the corresponding event recognizer 180 includes metadata 183 having configurable attributes, flags, and / or lists instructing how the event delivery system should perform sub-event delivery to actively participating event recognizers. In some embodiments, the metadata 183 includes configurable attributes, flags, and / or lists instructing how or how event recognizers can interact with each other. In some embodiments, the metadata 183 includes configurable attributes, flags, and / or lists instructing whether sub-events are delivered to different levels in a view or programmatic hierarchy.

[0160] In some implementations, when one or more specific sub-events of an event are identified, the corresponding event recognizer 180 activates the event handler 190 associated with the event. In some implementations, the corresponding event recognizer 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is different from sending (and delaying) the sub-event to the corresponding hit view. In some implementations, the event recognizer 180 throws a tag associated with the identified event, and the event handler 190 associated with the tag retrieves the tag and executes a predefined procedure.

[0161] In some implementations, event delivery instruction 188 includes a sub-event delivery instruction that delivers event information about a sub-event without activating an event handler. Instead, the sub-event delivery instruction delivers event information to an event handler associated with the sub-event series or to an actively participating view. The event handler associated with the sub-event series or the actively participating view receives the event information and performs a predetermined process.

[0162] In some implementations, data updater 176 creates and updates data used in application 136-1. For example, data updater 176 updates phone numbers used in contact module 137, or stores video files used in video or music player module 152. In some implementations, object updater 177 creates and updates objects used in application 136-1. For example, object updater 176 creates new user interface objects or updates the location of user interface objects. GUI updater 178 updates the GUI. For example, GUI updater 178 prepares display information and sends it to graphics module 132 for display on a touch-sensitive display.

[0163] In some implementations, one or more event handlers 190 include a data updater 176, an object updater 177, and a GUI updater 178, or have access to the data updater 176, object updater 177, and GUI updater 178. In some implementations, the data updater 176, object updater 177, and GUI updater 178 are included in a single module of the corresponding application 136-1 or application view 191. In other implementations, they are included in two or more software modules.

[0164] It should be understood that the above discussion of event handling for user touch on a touch-sensitive display also applies to other forms of user input that utilize input devices to operate the multifunction device 100, and not all user input is initiated on the touchscreen. Examples include, optionally, mouse movements and mouse button presses combined with single or multiple keyboard presses or holds; touch movements on the touchpad, such as taps, drags, scrolling, etc.; stylus input; device movement; verbal commands; detected eye movements; biometric input; and / or any combination thereof optionally used as input corresponding to sub-events used to define the event to be identified.

[0165] Figure 1CThis is a schematic diagram of a portable multifunction device (e.g., portable multifunction device 100) with a touch-sensitive display (e.g., touchscreen 112) according to some embodiments. In some embodiments, and others described below, a user can select one or more graphics displayed on the touch-sensitive display by gesturing on the screen, for example, using one or more fingers or one or more styluses. In some embodiments, selection of one or more graphics occurs when the user breaks contact with one or more graphics (e.g., by lifting a finger off the screen). In some embodiments, gestures optionally include one or more tapping gestures (e.g., lifting off after a series of touches on the screen), one or more swiping gestures (continuous contact during a gesture along the screen surface, such as from left to right, from right to left, up, and / or down), and / or scrolling of a finger that has been in contact with device 100 (e.g., from right to left, from left to right, up, and / or down). In some specific embodiments or in some cases, unintentional contact with a graphic does not select a graphic. For example, when the gesture used to launch an application is a tap gesture, a swipe gesture that sweeps over an application's feature representation (e.g., an icon) may optionally not launch (e.g., open) the corresponding application.

[0166] Device 100 optionally also includes one or more physical buttons, such as a "home" button or a menu button 204. As previously described, menu button 204 is optionally used to navigate to any application 136 of a set of applications optionally executed on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on touchscreen 112.

[0167] In one embodiment, device 100 includes a touchscreen 112, a menu button 204, a push-button 206 for powering on / off and locking the device, a volume control button 208, a SIM card slot 210, a headset jack 212, and a docking / charging external port 124. The push-button 206 is optionally used to: power on / off the device by pressing the button and holding it in the pressed state for a predetermined time interval; lock the device by pressing the button and releasing it before a predetermined time interval has elapsed; and / or unlock the device or initiate an unlocking process. In another embodiment, device 100 also accepts voice input via microphone 113 for activating or deactivating certain functions. Device 100 also optionally includes one or more contact strength sensors 165 for detecting contact strength on the touchscreen 112, and / or one or more haptic output generators 167 for generating haptic outputs for a user of device 100.

[0168] Figure 1DFor the purpose of demonstrating a device having a touch-sensitive surface 195 (e.g., a tablet or touchpad) separate from a display 194 (e.g., a touchscreen 112) Figure 1A A schematic diagram of the user interface on the device 100. In some embodiments, the touch-sensitive surface 195 includes one or more contact intensity sensors (e.g., one or more of the contact intensity sensors 359) for detecting the contact intensity on the touch-sensitive surface 195, and / or one or more haptic output generators 357 for generating haptic outputs for the user of the touch-sensitive surface 195.

[0169] While some examples of input on a reference touchscreen 112 (which combines a touch-sensitive surface and a display) are given in the following examples, in some implementations, the device detects input on a touch-sensitive surface separate from the display, such as... Figure 1D As shown in the diagram. In some embodiments, the touch-sensitive surface (e.g., Figure 1D 195) has a spindle (e.g., on the display (e.g., 194) with the spindle on the display (e.g., Figure 1D The principal axis corresponding to 198 in the middle (e.g., Figure 1D (199 in the example). According to these embodiments, the device detects the position corresponding to the corresponding position on the display (e.g., in the example). Figure 1D In the middle, 197-1 corresponds to 196-1 and 197-2 corresponds to 196-2) is in contact with the touch-sensitive surface 195 (e.g., Figure 1D (Referring to 197-1 and 197-2 in the text). Thus, when the touch-sensitive surface (e.g., ...) is... Figure 1D 195 in the middle) and the display of the multi-functional device ( Figure 1D When 194 is separated, user input detected by the device on the touch-sensitive surface (e.g., contact with 197-1 and 197-2 and their movement) is used by the device to manipulate the user interface on the display. It should be understood that similar methods may be optionally used for other user interfaces described herein.

[0170] Additionally, while the examples below are primarily given with reference to finger input (e.g., finger touch, single-finger tap, finger swipe), it should be understood that in some implementations, one or more of these finger inputs may be replaced by input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture may optionally be replaced by a mouse click (e.g., instead of a touch), followed by movement of the cursor along the swipe path (e.g., instead of movement of the touch). As another example, a tap gesture may optionally be replaced by a mouse click while the cursor is over the location of the tap gesture (e.g., instead of detection of the touch and subsequent cessation of touch detection). Similarly, when multiple user inputs are detected simultaneously, it should be understood that multiple computer mice may optionally be used simultaneously, or mouse and finger touch may optionally be used simultaneously.

[0171] As used herein, the term "focus selector" refers to an input element used to indicate the current portion of a user interface with which a user is interacting. In some specific implementations that include a cursor or other positional marker, the cursor acts as a "focus selector," such that when the cursor is over a particular user interface element (e.g., a button, window, slider, or other user interface element), the cursor is positioned on a touch-sensitive surface (e.g., a...). Figure 1D When an input (e.g., a press input) is detected on a touch-sensitive surface 195 (in some embodiments, the touch-sensitive surface 195 is a touchpad), the specific user interface element is adjusted according to the detected input. This applies to touchscreen displays capable of enabling direct interaction with user interface elements on the touchscreen display (e.g., ...). Figure 1AIn some embodiments of the touch-sensitive display system 112 or touchscreen 112, a detected touch on the touchscreen acts as a "focus selector," such that when input (e.g., a press input by touch) 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, that particular user interface element is adjusted according to the detected input. In some embodiments, focus moves from one area of ​​the user interface to another without corresponding movement of the cursor or movement of a touch on the touchscreen display (e.g., moving focus from one button to another using tab keys or arrow keys); in these embodiments, the focus selector moves according to focus movement between different areas of the user interface. Regardless of the specific form the focus selector takes, the focus selector is typically a user-controlled user interface element (or a touch on the touchscreen display) that transmits the user's expected interaction with the user interface (e.g., by indicating to the device the user interface element with which the user expects to interact). For example, when a press input is detected on a touch-sensitive surface (e.g., a touchpad or touch-sensitive display), the position of the focus selector (e.g., a cursor, touch, or selection box) above the corresponding button will indicate that the user intends to activate the corresponding button (rather than other user interface elements shown on the device's display).

[0172] Now let’s turn our attention to implementation schemes and associated processes for user interfaces (“UIs”) that can be implemented on electronic devices (such as device 100) with displays and touch-sensitive surfaces.

[0173] Figure 2 This is a schematic diagram of a touchscreen for displaying menus of an application, according to some embodiments. A similar user interface is optionally present in device 100. Figure 1A Implemented on [the application's] menu. In some implementations, the user interface for the application's menu includes the following elements or a subset or superset thereof:

[0174] • One or more signal strength indicators 202 for one or more wireless communications (such as cellular signals and Wi-Fi signals);

[0175] • Time 203;

[0176] Bluetooth indicator 205;

[0177] • Battery status indicator 206;

[0178] • Tray 209 with icons of commonly used applications, such as:

[0179] The telephone module 138 has an icon 216 labeled "telephone", which optionally includes an indicator 214 for the number of missed calls or voicemails;

[0180] The email client module 140 has an icon 218 labeled "Mail", which optionally includes an indicator 210 for the number of unread emails;

[0181] The browser module 147 has an icon 220 labeled "browser"; and

[0182] The video and music player module 152 (also known as the iPod (a trademark of Apple Inc.) module 152) has an icon 222 labeled "iPod"; and

[0183] • Icons of other applications, such as:

[0184] Icon 224 of the οIM module 141, labeled "Message";

[0185] The icon 226 of the calendar module 148 is labeled "Calendar";

[0186] The icon 228 of the image management module 144 is labeled "photo";

[0187] The icon 230 of the camera module 143 is labeled "camera";

[0188] The icon 232 of the online video module 155 is labeled "Online Video";

[0189] The icon 234 in the Stock Market Desktop Mini Program 149-2 that is labeled "Stock Market";

[0190] The icon 236 of the map module 154 is labeled "map";

[0191] The icon 238 in the Weather Desktop Mini Program 149-1 that is marked as "Weather";

[0192] The icon labeled "Clock" in the alarm clock desktop mini-program 149-4;

[0193] The icon 242 labeled "Fitness" in the fitness module 142;

[0194] The icon 244 of the Notepad module 153 is labeled "Notepad";

[0195] ο An icon 246 for setting applications or modules, which provides access to settings of device 100 and its various applications; and

[0196] ο Other icons used for attached applications such as the App Store, iTunes, Voice Memos, and Utilities.

[0197] It should be pointed out that, Figure 2 The icon labels shown are merely exemplary. Other labels are optionally used for various application icons. For example, the icon 242 of the fitness module 142 is alternatively labeled as "Fitness Support," "Fitness," "Fitness Support," "Exercise," "Exercise Support," or "Health." In some embodiments, the label of a particular application icon includes the name of the application corresponding to that particular application icon. In some embodiments, the label of a particular application icon is different from the name of the application corresponding to that particular application icon.

[0198] Figures 3A-3B This is a block diagram illustrating a data structure for storing calendar entries (e.g., for a specific user of device 100) according to some implementation schemes. Figure 3A As shown, the calendar entry data structure 302 includes a set of data structures 302, which are optionally implemented as a set of tables for each specific user of device 100. Each table stores calendar entries associated with a specific user of device 100 (e.g., calendar entry data structure 302-1 stores calendar entries for user 1 of device 100 and calendar entry data structure 302-2 stores calendar entries for user 2 of device 100). In some embodiments, each table in the set of calendar entry data structures (e.g., tables 302-1, 302-2, 302-3…302-N) stores calendar entries for more than one user of the device.

[0199] In some implementations, one or more calendar entry data structures 302 (e.g., Figure 3B The calendar entry data structure 302-1 in the document is used to store calendar entries associated with the user of device 100. For example... Figure 3B As shown, the calendar entry data structure 302-1 contains data associated with a calendar entry for user 1 (e.g., calendar entry ID, title, location, data and time, departure time reminder, and prompt). In some embodiments, the data is stored in individual records 312-1, 312-2, 312-3 to 312-N. In some embodiments, header field 312-0 is used to describe information about each field associated with each corresponding record. In some embodiments, header 312-0 contains a brief description of information about each field stored within the table (e.g., each field associated with each record). Figure 3BAs shown, header 312-0 indicates that each record 312-1, 312-2, 312-3 to 312-N stores the following information and data structures or subsets or supersets thereof:

[0200] • The value of the “Calendar Entry ID” field uniquely identifies each specific record (e.g., records 312-1 to 312-N);

[0201] • Descriptive text corresponding to calendar entries (e.g., descriptive text provided by the user when creating a calendar entry, such as in...) Figure 7E The value of the “Title” field (provided in field 770); in some cases, the title includes a geographic location identifier (e.g., “Go to the dentist” in record 312-3 includes an identifier “dentist” corresponding to the geographic location of the dental clinic (such as the address of a previously visited “dentist clinic” associated with record 412-1 of the previously visited address data structure 402-1 / identified by record 412-1 of the previously visited address data structure 402-1));

[0202] • Information corresponding to the location associated with the calendar entry (e.g., information provided by the user when creating the calendar entry). Figure 7E The value of the “Location” field (the information provided in field 771); In some cases, users create calendar entries without providing (or only providing incomplete) information about the location (for example, the location field of record 312-1 has a null value, indicating that the user has not provided any information about the location of the calendar entry associated with record 312-1);

[0203] • Information corresponding to the start and end times of a calendar entry (e.g., information provided by the user when creating the calendar entry). Figures 7E-7F The values ​​of the "Date and Time" field (as shown in the "All Day", "Start", "End", and "Repeat" sections);

[0204] The value of the "Departure Time Reminder" field is automatically, without manual intervention, filled by device 100 (or its components, such as departure determination module 163) based on previous access addresses associated with the user (e.g., since records 312-1 and 312-2 both contain the same identifier ("Dentist") in a portion of the header field, the previous access address associated with record 312-3 (e.g., ...). Figure 4B Record 412-1 can be automatically used to generate departure time reminders (see below for reference). Figure 6 (detailed discussion). In some implementations or in some cases, the departure time reminder value also includes information about the best route to the previously visited address (e.g., as determined by the route determination module 163-2); and

[0205] • The value of the “tips” field, which corresponds to information about a calendar entry that is a prompt or reminder (e.g., information provided by the user when creating the calendar entry, such as “30 minutes in advance” as shown in Record 312-1).

[0206] In some implementations, the calendar entry data structure 302-1 includes fields other than those described above, such as a timestamp field identifying when the corresponding calendar entry was created and / or stored in table 302-1 and / or includes one or more address ID values ​​corresponding to a previously accessed address associated with the corresponding calendar entry. Figure 4B The relevant address fields.

[0207] like Figure 3B As shown, the calendar entry data structure 302-1 includes records 312-1, 312-2, 312-3 to 312-N. As an example of information in an exemplary record stored in the calendar entry data structure 302-1, record 312-1 stores the value "1" in the calendar entry ID field, the value "Go to the dentist" in the title field, a null value in the location field, the value "6 / 12 / 15, 12PM–2PM" in the date and time fields, the value "30 minutes in advance" in the reminder field, and a null value in the departure time reminder field. In some embodiments, a null value for the departure time reminder field provides an indication to the device (or its components, such as departure determination module 163) that a departure time reminder has not yet been created (see reference below). Figure 6 (The operation 602 will be explained in detail).

[0208] Although shown in a specific implementation of a data structure (e.g., a table), in some implementations, Figures 3A-3B The data structure is implemented in XML file format, table format within a relational database, text file format, and / or any other suitable format for storing data.

[0209] Figures 4A-4B This is a block diagram illustrating a data structure for storing previously accessed addresses (e.g., for a specific user of device 100) according to some implementation schemes. Figure 4AAs shown, the previous access address data structure 402 includes a set of data structures 402, which are optionally implemented as a set of tables for each specific user of device 100. Each table stores the previous access address associated with the specific user of device 100 (e.g., previous access address data structure 402-1 stores the previous access address for user 1 of device 100 and previous access address data structure 302-2 stores the previous access address for user 2 of device 100). In some embodiments, each table in the set of calendar entry data structures (e.g., tables 402-1, 402-2, 402-3…402-N) stores the previous access address for more than one user of the device.

[0210] In some implementations, one or more previously accessed address data structures 402 (e.g., Figure 4B The previously accessed address data structure 402-1 in the document is used to store calendar entries associated with the user of device 100. For example... Figure 4B As shown, the previously visited address data structure 402-1 contains data associated with addresses previously visited by user 1 (e.g., address ID, name, arrival address, departure address, associated item, and arrival time). In some embodiments, the data is used to generate an accurate departure time reminder for an upcoming event (e.g., without location details) by identifying previously visited addresses corresponding to that event (e.g., calendar entry, event referenced in a text message, etc.). In some embodiments, the data is stored in individual records 412-1, 412-2, 412-3 through 412-N. In some embodiments, header field 412-0 is used to describe information about each field associated with each corresponding record. In some embodiments, header 412-0 contains a brief description of information about each field stored within a table (e.g., each field associated with each record). Figure 4B As shown, header 412-0 indicates that each record 412-1, 412-2, 412-3 to 412-N stores the following information and data structures or subsets or supersets thereof:

[0211] • The value of the “Address ID” field that uniquely identifies the corresponding record associated with a specific previously accessed address (e.g., “1” is the value stored in the Address ID field of record 412-1);

[0212] The value of the “Name” field corresponds to the text description of a specific previously accessed address (e.g., “dentist clinic” is the value stored in the Name field of record 412-1). In some embodiments or in some cases, the value of the Name field is determined automatically rather than by human intervention based on an identifier associated with the corresponding record (e.g., since record 412-1 is associated with calendar entry 3 and since calendar entry 3 (record 312-3 of calendar entry data structure 302-1) includes the identifier “dentist”, the device uses the same identifier when creating the value for the Name field of record 412-1). In some embodiments, the value of the Name field is a term associated with the identifier (if the identifier is “dentist”, the associated term includes, for example, teeth, tooth cleaning, oral health care, orthodontist, periodontist, etc.).

[0213] • Includes the value of the “Arrival Address” field, which identifies the address corresponding to the geographic destination the user arrives at (e.g., street address, GPS coordinates, etc.). (For example, if the user has a calendar entry for a dental clinic but no location data that identifies the address of the dentist, the record in the previously accessed address data structure 402-1 is updated to store the specific address as the arrival address when the user arrives at the specific address at the time identified in the calendar entry.)

[0214] • Includes the value of an optional “departure address” field that identifies the address (e.g., street address, GPS coordinates, etc.) corresponding to the geographic location of the user when they depart to arrive at a specific arrival address. (e.g., if the user has a calendar entry for a dental appointment and departs from a specific address at the time indicated for their dental appointment, the record in the previously accessed address data structure 402-1 is updated to store the specific address as the departure address when the user arrives at the agreed location at the time identified in the calendar entry.)

[0215] • Includes the value of a "Related Items" field that identifies one or more related items (e.g., content items that include an identifier (e.g., "dentistry") associated with the corresponding record, such as including the identifier ("I am currently on my way to the dentistry"), related calendar entries ("Calendar entries with a value in the 'Going to the dentist for a check-up' header field, such as..."). Figure 3B Related messages (e.g., emails) such as those shown in records 312-3; and

[0216] • Includes the value of an optional "Arrival Time" field that identifies the time when the user arrives at the geographic location corresponding to the arrival address.

[0217] In some implementations, the previously used electronic data structure 402-1 also includes fields in addition to those described above, such as a "departure time" field that includes information identifying when a user travels to the arrival address and / or a "route used" field that includes information identifying the route the user takes between the departure and arrival addresses. In some implementations, these additional fields are used to help the device predict patterns associated with the user (e.g., identify and predict the user's most frequently used routes or most frequently used departure times).

[0218] like Figure 4B As shown, the previous access address data structure 402-1 includes records 412-1 to 412-N. As an example of information in an exemplary record stored in the previous access address data structure 402-1, record 412-1 stores the value "1" in the address ID field, the value "dentist clinic" in the title field, the value "123N.Dentist St,City,State,12345" in the arrival address field, the value "88W.2nd,City,State 12345" in the departure address field, the value "calendar entry 3, message 23" in the associated item field, and the value "5 / 12 / 14,11:15AM" in the arrival time field. In some embodiments, records within the previous access address data structure 402-1 are created at predetermined time intervals (e.g., hourly, every four hours, daily, when the device is idle, etc.).

[0219] In some implementations, the previously accessed address data structure 402 is pre-populated during a background process executed on device 100 (as described below with reference to operations 620 and 622).

[0220] In some implementations, the previously accessed address 402 also stores information about privacy settings associated with the user of device 100. For example, the user of device 100 can configure privacy settings associated with the storage of the previously accessed address. In some implementations, the user can configure data collection settings for all information (e.g., name, arrival address, departure address, associated items, etc.) contained in each record in the previously accessed address data structure 402. For example, the user can configure privacy settings for a first application such that device 100 (or its components, such as map module 154) does not collect the departure address, but collects information about associated items, arrival address, and arrival time. Similarly, for a second application (different from the aforementioned first application), the user can configure privacy settings such that device 100 (or its components, such as map module 154) does not collect any information about the previously accessed address. In this way, the user can, based on their information about each application available on device 100 (e.g., ...), collect privacy settings for each application available on device 100. Figure 1A Each application (136) in the device 100 can control the collection of previously accessed addresses on the device 100 based on its personal preferences and can select appropriate privacy settings.

[0221] Although shown in a specific implementation of a data structure (e.g., a table), in some implementations, Figures 4A-4B The data structure is implemented in XML file format, table format within a relational database, text file format, and / or any other suitable format for storing data.

[0222] Figure 5 A block diagram is provided to illustrate an exemplary departure time reminder generation system according to some implementation schemes. For example... Figure 5 As shown, the departure time reminder generation system 500 includes a portable multifunction device 100 and one or more servers 502. The portable multifunction device 100 communicates with one or more servers 502 via one or more networks. One or more networks (e.g., network 520) communicatively connect each component of the departure time reminder generation system 500 to other components of the departure time reminder generation system 500. In some embodiments, the one or more networks 520 include public communication networks, private communication networks, or a combination of both. For example, the one or more networks 520 can be any network (or combination of networks) such as the Internet, other wide area networks (WANs), local area networks (LANs), virtual private networks (VPNs), metropolitan area networks (MANs), peer-to-peer networks, and / or private connections.

[0223] In some embodiments, one or more previously accessed address data structures 402 are stored on the portable multifunction device 100 and one or more other previously accessed address data structures 402 are stored on one or more servers 502. In some embodiments, the portable multifunction device 100 stores the previously accessed address data structure 402, while in other embodiments, one or more servers 502 store the previously accessed address data structure 402. In some embodiments, one or more calendar entry data structures 302 are stored on the portable multifunction device 100 and one or more other calendar entry data structures 302 are stored on one or more servers 502. In some embodiments, the portable multifunction device 100 stores the calendar entry data structure 302, while in other embodiments, one or more servers 502 store the calendar entry data structure 302.

[0224] In embodiments where one or more previously accessed address 402 tables or one or more calendar entry data structures 302 are stored on one or more servers 502, some functions performed by the departure determination module 163 (and its components, such as the destination prediction module 163-1, the route determination module 163-2, and the departure reminder module 163-3) are performed at one or more servers 502. In these embodiments, information is exchanged between one or more servers 502 and device 100 via network 520. For example, if one or more servers 502 store the previously accessed address data structure 402 for a first user, in some embodiments, device 100 will associate data associated with the first user (e.g., ... Figure 1A The location data collected by the GPS module 135 is sent to one or more servers 502. In some implementations, the one or more servers 502 then mine the received data to predict the destination for the calendar entry and generate a departure time reminder for the calendar entry (as referenced above). Figures 4A-4B (As discussed). One or more servers 502 will also send the generated departure time reminder to device 100 (or alternatively send information associated with the generated reminder for display on the device). Thus, the calculation of when to depart can be handled by one or more servers 502, and the accuracy of the calculation is maintained only by occasional GPS checks by device 100 (thus, the departure time reminder generation system 500 can extend the battery life of device 100). In some embodiments, the scope of the data sent to one or more servers 502 is limited, thereby containing only information about the addresses visited by the first user (as mentioned above, the user also configures privacy settings that cover the collection of this data, and in some embodiments, these privacy settings also allow the user to control, limit, or eliminate data exchange with one or more servers 502).

[0225] Figure 6 A flowchart illustrating a method 600 for generating and providing intelligent departure time reminders according to some implementation schemes is provided. Figures 3A-3B , Figures 4A-4B , Figure 5 and Figures 7A-7F For showing Figure 6 Methods and / or processes. Although some examples in the following examples are given with reference to input on a touch-sensitive display (which combines a touch-sensitive surface and a display), in some embodiments the device detects input on a touch-sensitive surface 195 separate from the display 194, such as Figure 1D As shown in the image.

[0226] In some implementations, the electronic device (e.g., Figure 1AMethod 600 is performed by one or more components (e.g., I / O subsystem 106, operating system 126, etc.) of a portable multifunction device 100 and / or an electronic device. In some embodiments, method 600 is managed by instructions stored in a non-transitory computer-readable storage medium and executed by one or more processors of the device (such as one or more processors 122 of device 100). Figure 1A For ease of explanation, method 600 performed by device 100 is described below. In some embodiments, reference is made to... Figure 1A The operation of method 600 is performed, or at least partially performed, by a departure determination module (e.g., departure determination module 163), a previously accessed address (e.g., previous accessed address 402), a calendar entry data structure (e.g., calendar entry data structure 302), a destination prediction module (e.g., destination prediction module 163-1), a route determination module (e.g., route determination module 163-2), a departure reminder module (e.g., departure reminder module 163-3), a graphics module (e.g., graphics module 132), and a touch-sensitive display (e.g., touch-sensitive display system 112). Some operations in method 600 may optionally be combined, and / or the order of some operations may optionally be changed.

[0227] As described below, Method 600 (and its associated interface) provides an intuitive way to generate and deliver smart departure time reminders on electronic devices with touch-sensitive displays. Method 600 simplifies the process of generating departure time reminders by allowing users to quickly create calendar entries with minimal text input and then automatically, without human intervention, determine the corresponding geographic destination based solely on that minimal text input. Therefore, users can continue to quickly create calendar entries on electronic devices, and by utilizing Method 600, electronic devices can seamlessly create smart departure time reminders for calendar entries. Thus, Method 600 helps ensure users arrive at events on time. Therefore, Method 600 helps reduce cognitive load and the time users must spend creating calendar entries, thereby creating a more efficient human-computer interface. For battery-powered electronic devices, faster and more efficient generation and delivery of smart departure time reminders saves power and increases the time interval between battery charges (e.g., by automating tasks that typically require significant user interaction, such as automatically identifying previously visited addresses as the destination of calendar entries created without specific location details).

[0228] In some implementations, the device identifies an upcoming event with a start time and an unknown location (620). For example, the device receives a text message “Don’t forget your dental appointment at 2:30 p.m. today.” The text message includes the upcoming event that the device can identify, has a start time of 2:30 p.m. today, and an unknown location (i.e., unknown in the case of this text message because the content of the message does not include the location of the dental clinic). In some implementations, after identifying the upcoming event, the device monitors (e.g., using a process running in the background on device 100) the device’s current location (e.g., using GPS module 135), and when the device is moving (e.g., as indicated by accelerometer 168 and / or GPS module 135), the device checks whether the current location is close to any dental clinic. Based on the determination that the device is no longer moving and has arrived at (e.g., stopped moving) a dental clinic or is near a dental clinic (e.g., by comparing the device’s current location with information about the location of the dental clinic determined by map module 154), the device associates the upcoming event with a geographic location (622). In other embodiments, at the scheduled or event time, GPS module 135 determines the location of the device, and the device associates the upcoming event with that location (622). In some embodiments, associating the upcoming event with a geographic location includes adding a record to previously accessed address data structure 402 (e.g., record 412-1 indicating that it is associated with message 23).

[0229] In some implementations, the device continuously monitors upcoming events (e.g., as determined by the departure determination module 163) based on content associated with one or more items on the device (e.g., text messages, emails, voice messages, calendar entries, notebooks, and any other items containing information about the upcoming event). By continuously monitoring upcoming events and associating them with corresponding geographic locations, the device is able to proactively establish previously visited addresses associated with specific identifiers (e.g., dental clinics). Figure 4B The device uses a comprehensive database of previously accessed address data structures (402-1) to generate smart departure time reminders for events (e.g., calendar entries) that may not include any information about the location of the event.

[0230] In some implementations, the device automatically, without human intervention, identifies calendar entries that include a first identifier (602). For example, this is based on text describing the location in the calendar entry's title (e.g., the title includes the first identifier), such as a calendar entry with the title "Going to the dentist" (e.g., the calendar entry associated with record 312-1 includes...). Figure 3BThe first identifier ("dentist") is used to identify calendar entries. In some embodiments, the first identifier corresponds to an unknown geographic location (e.g., unknown to the calendar entry, as indicated by a null value stored in the location field of calendar entry data structure 302-1). In some embodiments, the geographic location may refer to a previously accessed address of the device (e.g., the geographic location discussed above with reference to operations 620-622), although the calendar entry is (initially) unaware of the previously accessed address. In some embodiments, the device resolves unknown locations by searching for and identifying the previously accessed address corresponding to the first identifier (as described below).

[0231] In some implementations, the device automatically, without human intervention, retrieves previously visited addresses associated with the first identifier (e.g., street address and / or GPS coordinates corresponding to the street address) (604) (e.g., by performing a lookup using an identifier (e.g., dentist or related terms such as teeth, periodontist, orthodontist, etc.) in the previous visited address 402 data structure). For example, the association between a previous visited address and the first identifier might be due to the first identifier having previously appeared in an associated item (e.g., another calendar entry, a specific text message, a session or email message including a specific text message). An exemplary associated item is a text message “Don’t forget to get your dental checkup at 3 p.m.”. Continuing this example, the user then proceeds from the first address to a second address (e.g., the address of the dentist’s office where the user then arrives at 2:55 p.m.), and based on the identifier from the text message, a new record for the identifier “dentist” is created in the previous visited address data structure 402, such as… Figure 4B (See record 412-1 of the previously accessed address data structure 402). Additionally, new records in the current example include associations with related items (e.g., the value of the associated item field in record 412-1 includes information identifying the associated item, such as "Message 23").

[0232] In some implementations, (e.g., by the starting determination module 163) the database of previously accessed addresses associated with the user of the device (e.g., from the corresponding previously accessed address data structure 402 associated with the user, such as those corresponding to...) is used to determine the user's previous access addresses. Figure 4BThe database retrieves previously accessed addresses for user 1 using a data structure 402-1. In some embodiments, each previously accessed address in the database corresponds to an address previously accessed by the user of the electronic device (e.g., each record contained in the previously accessed address data structure 402-1 corresponds to an address accessed by user 1). In some embodiments, retrieving previously accessed addresses includes performing a lookup in the database of previously accessed addresses using a first identifier (e.g., submitting a query to the previously accessed address data structure 402-1 to find all records that have the value "dentist" in the name field). Alternatively, in some embodiments, the lookup is performed using a second identifier associated with the first identifier (e.g., including a category of the first identifier, such as "medical professional"). In some of these embodiments, the second identifier is used to perform the lookup when a database query using the first identifier returns an empty set of records or a set of records with null values.

[0233] In some implementations, the device receives confirmation from the user that a previously accessed address corresponds to a calendar entry (606). For example... Figure 7A As shown, the device will present a user interface object to the user, allowing them to confirm that a previously visited address corresponds to a calendar entry. For example, the presented user interface object is displayed within a top notification section 710 (or alternatively, a bottom notification section 712) and includes an optional icon 750, a confirmation dialog box 758 with optional functionality for confirming or rejecting the correspondence between the previously visited address and the calendar entry, and a suggested reason 714 providing the user with an indication of why the user interface object was presented (e.g., based on the identifier "dentist" appearing in the calendar entry's header and the address of a dentist's clinic the user previously visited). In some embodiments, icon 750 corresponds to an icon associated with the calendar application (e.g., Figure 1A The device displays a calendar entry within the calendar application in response to a detected selection of icon 750 (in the calendar module 148). In some embodiments, the confirmation dialog box 758 includes a text description requesting confirmation, such as “Do you confirm 123N.Dentist as the address for the upcoming dental check-up at 12 noon?” In response to a detected selection of the yes button displayed within the confirmation dialog box 758, the device no longer displays the confirmation dialog box 758 and updates the calendar entry to include the association with the previously visited address (e.g., update). Figure 3B Record 312-1 in the database has the value "address 1" for the location field instead of being empty.

[0234] In response to detecting a selection of the "No" button displayed within the confirmation dialog box 758, the device no longer displays the confirmation dialog box 758 and stops updating calendar entries (e.g., does not update). Figure 3BThe value in the location field of record 312-1). Alternatively, in some embodiments, in response to detecting a selection of the No button, the device returns to retrieval operation 604 to determine whether a different previously accessed address for the calendar entry can be identified. In some embodiments, in response to detecting a selection of the suggested reason indication 714, the device displays a user interface that allows the user to configure privacy settings associated with the collection of the previously accessed address (as referenced above). Figures 4A-4B (as described above). In some embodiments, the user interface object also includes a feature that allows the user interface object to cancel its power indication (e.g., "x" or "off" power indication) (similar to reference). Figure 7C The aforementioned cancellation of the power indication (713).

[0235] In some implementation schemes, and as such Figure 7A As shown, the device receives confirmation from the user that a departure time should be determined for a calendar entry (e.g., before retrieving previously visited addresses and / or determining departure times). Figure 7A As shown, the device presents a user interface object to the user, allowing them to confirm that the departure time should be automatically determined. For example, the presented user interface object is displayed within a bottom notification section 712 (or alternatively, a top notification section 710) and includes an optional icon 750, a confirmation dialog box 772 with an optional display for confirming or rejecting the creation of the departure time for the calendar entry, and a suggested reason 714 providing the user with an indication of why the user object was presented (e.g., based on the calendar entry being created without any location information, such as a null value in the location field of a record within the calendar entry data structure 302). In some embodiments, the icon 750 corresponds to an icon associated with the calendar application (e.g., Figure 1A The device displays a calendar entry within the calendar application in response to a detected selection of icon 750 (in the calendar module 148). In some embodiments, the confirmation dialog box 772 includes a text description requesting confirmation, such as "Do you want an automatic reminder for an upcoming 'dental checkup' event?" In response to a detected selection of the "Yes" button displayed within the confirmation dialog box 772, the device no longer displays the confirmation dialog box 772 and continues retrieving the aforementioned operation 604. In response to a detected selection of the "No" button displayed within the confirmation dialog box 772, the device no longer displays the confirmation dialog box 772 and optionally removes the record corresponding to the calendar entry (e.g., ...). Figure 3B Record 312-1 in the database is marked as not requiring a departure time (e.g., the value in the location field is updated to "reject" instead of null). In some implementations, in response to detecting a selection of the suggested reason indication 714, the device displays a user interface that allows the user to configure privacy settings associated with the collection of previously accessed addresses (as referenced above). Figures 4A-4B(as described above). In some embodiments, the user interface object also includes a feature that allows the user interface object to cancel its power indication (e.g., "x" or "off" power indication) (similar to reference). Figure 7C The aforementioned cancellation of the power indication (713).

[0236] In some implementations, the device automatically, without human intervention, determines the departure time (608) for a calendar entry based on a previously accessed address (e.g., based on a route from the device's current location to the previously accessed address). In some implementations, determining the departure time includes: (i) determining the current address corresponding to the electronic device (e.g., the device's current GPS coordinates or the address corresponding to it), (ii) determining the route from the current address to the previously accessed address, and (iii) determining the departure time based on the amount of time required to complete the route, such that the user will arrive at the previously accessed address within a predetermined amount of time (e.g., 5 minutes, 10 minutes, 15 minutes, etc.) of the start time associated with the calendar entry (e.g., retrieving the start time from the calendar entry data structure 302 based on values ​​stored in the date and time fields).

[0237] In some implementations, the departure time is initially determined at a first time point based on a default departure address associated with the user (e.g., the user's home address, work address, or some other most frequently used address). In some implementations, the first time point is the time when a previously visited address is retrieved, while in other implementations, the first time point is determined based on the start time for the calendar entry (e.g., determining the initial departure time if the calendar entry's start time is expected to begin in two hours). In some implementations, the device then (at a second time point) checks whether the initial departure time needs to be recalculated / recalculated (e.g., because the user has moved a threshold distance away from the default departure address or because the calendar entry's start time is expected to begin in 30 minutes). Based on the determination that the user has moved a threshold distance away from the default departure address or that the start time for the calendar entry is within a predetermined amount of time, the device determines a new departure time for the calendar entry based on the device's current location (i.e., the device's current location is now the departure address, not the default departure address).

[0238] In some implementations, a route is selected from multiple available routes from the current address to a previously visited address based on route selection preferences associated with the user of the device. Exemplary route selection preferences include road type preferences (e.g., avoiding highways), time preferences (e.g., arriving at the address within 15 minutes of the calendar entry's start time), and mode of transport preferences (e.g., preferring to walk if the weather is good and / or the previously visited address is within three miles of the current address). In some implementations, the current address is stored in a previously visited address data structure 402, stored in the departure address field. In some implementations, the determination operations (i)-(iii) are performed at predetermined time intervals relative to the calendar entry's start time (e.g., one day before the start time). In some implementations, the determination operations (i)-(iii) are performed at a first time and then repeated at a subsequent time (e.g., a second time close to the calendar entry's start time) to confirm that the route remains the optimal route based on current traffic conditions.

[0239] In some embodiments, the device associates a determined departure time with a calendar entry (610) (e.g., updating a record in calendar entry data structure 302 to include the association with the determined departure time, as shown in record 312-3 of calendar entry data structure 302-1, where the departure time reminder field contains the value "5 / 12 / 14, 11:25AM" corresponding to the determined departure time of the calendar entry in record 312-3). In some embodiments, associating a determined departure time with a calendar entry includes generating a reminder (e.g., a visual reminder, a tactile reminder (vibration), and / or an auditory reminder) (612) and updating the calendar entry to include the generated reminder. In some embodiments, the generated reminder differs from the default reminder associated with the calendar entry (e.g., Figure 3B (The value in the hint field of calendar entry data structure 302-1).

[0240] In some implementations, the device provides the user with a generated reminder of the determined departure time for a calendar entry on the electronic device (e.g., displaying a visual reminder on a touch-sensitive display such as...). Figure 7B The user interface object 702 causes the device to output a haptic alert and / or causes the device to generate an audio output corresponding to the alert (614). In some embodiments, providing the alert includes providing the alert within a predetermined amount of time based on the determined departure time in the current time (e.g., in...). Figure 7BThe user interface object 702 is displayed on the lock screen 701. For example, a predetermined time amount is a default time amount, such as 5 minutes, 10 minutes, 15 minutes, etc., or a time amount calculated based on current forecasts related to traffic changes and other factors affecting the time required to reach a previously visited address corresponding to a calendar entry (e.g., the time taken to walk from the office building to the user's vehicle parking location). In some embodiments, the device monitors motion data for the device (e.g., data from accelerometer 168 and / or GPS module 135) and uses this motion data to determine the estimated time taken for the user to reach their vehicle (e.g., if the device does not move (at the first time), then moves at the speed of a pedestrian (at the second time), and then moves at the speed of a vehicle (at the third time), the device can use the difference between the third time and the first time as an estimate of the time taken for the user to reach their vehicle). In some embodiments, the device uses the estimated time amount (or the average of multiple estimates) to determine when to provide the generated reminder to the user. In other embodiments, the device adds the estimated time amount (or the average of many estimates) to add a buffer to the departure time and simply provides the generated reminder at the departure time.

[0241] like Figure 7B As shown, in some embodiments, the provided reminder is displayed in a user interface object 702 on the device's lock screen 701, or in another embodiment, in a user interface object 722 (described below). In some embodiments, the user interface object 702 is displayed in the central area of ​​the lock screen 701 and includes an optional first icon 750, an optional second icon 767, and a reminder 742. In some embodiments, the first icon 750 corresponds to an icon associated with a calendar application (e.g., ...). Figure 1A The device displays a calendar entry within the calendar application (e.g., after unlocking the device) in response to a detected selection of the first icon 750 (the calendar module 148 in the system). In some embodiments, the second icon 767 corresponds to an icon associated with a map application (e.g., ...). Figure 1A The device displays (e.g., after unlocking the device) a map interface including turn-by-turn navigation to reach a previously accessed address, in response to detecting a selection of the second icon 767 (map module 154 in the device).

[0242] In some implementations, the reminder (or prompt) 742 includes a text description containing, for example, a departure time (e.g., 11:15 AM) and a description of the calendar entry (e.g., a title such as "Dental Checkup"). In some implementations, the reminder 742 allows the user to use gestures to display an indication of capability for performing an action associated with the reminder (e.g., starting turn-by-turn navigation, canceling the reminder, delaying the reminder, etc.). Figures 7B-7C As shown, in response to detecting a swipe gesture (e.g., moving to the left) on the alert 742 along a first direction, the alert 742 is activated. Figure 7B In the gesture 782, the text description of the reminder moves along a first direction such that only a portion of the text description is currently visible to the touchscreen 112, and the reminder 742 is updated (e.g., by the graphics module 132) to display one or more indications for performing the action (e.g., gesture 782). Figure 7C The capability indication includes a start navigation capability indication 746, a pause capability indication 744, and a cancel capability indication 713. In some embodiments, one or more capability indications include a pause capability indication 744 and a start navigation capability indication 746, while in other embodiments, one or more capability indications include a start navigation capability indication 746 and a cancel capability indication 713. In other embodiments, one or more capability indications include a start navigation capability indication 746, a pause capability indication 744, or a cancel capability indication 713.

[0243] Now turning Figure 7C In some embodiments, when the deactivation indicator 713 is selected, the device no longer displays the reminder 742. In some embodiments, when the start navigation indicator 746 (also referred to herein as the turn-by-turn navigation indicator 746) is selected, the device displays a map interface (e.g., map module 154), where previously visited addresses are pre-populated as destinations and turn-by-turn navigation to the destination has begun. In some embodiments, before displaying the map interface, the user performs an action to unlock the device 100 (e.g., enters a series of characters to unlock the device, provides a verbal password, provides fingerprint recognition, etc.). In other embodiments, the start navigation indicator 746 includes text indicating to the user that selecting the start navigation indicator 746 will cause the device to begin route selection and provide turn-by-turn navigation without leaving the lock screen 701 (e.g., providing audio output corresponding to the navigation).

[0244] In some implementations, when the power-off reminder 744 is selected, the device stops displaying UI object 702 and re-displays it after a user-selected or pre-configured time period or after a default time. In some implementations, the power-off reminder 744 allows the user to select a time period during which the reminder is delayed (e.g., the power-off reminder 744 includes options such as 15 minutes, 30 minutes, 1 hour, "when I'm free," etc.). For example, the user selects the option to let UI object 702 rest for five minutes, and after five minutes, the device re-displays UI object 702. Alternatively, the user selects to let UI object 702 rest until they have free time (e.g., "remind me when I'm free"), and in some implementations, device 100 searches calendar module 148 to identify the next free time slot in the user's schedule and re-displays UI object 702 during the identified next free time slot.

[0245] In some implementations, users can also use additional gestures (e.g., Figure 7B The gesture 783 provides quick access to turn-by-turn navigation. In some embodiments, the additional gesture is a swipe gesture on alert 742 that moves in a second direction opposite to the first direction (e.g., to the right). In response to detecting the second gesture moving in the second direction, the device displays a map interface (e.g., map module 154), where the previously visited address is pre-populated as the destination and turn-by-turn navigation to the destination has begun. In some embodiments, before displaying the map interface, the user performs an action to unlock device 100 (e.g., enters a series of characters to unlock the device, provides a verbal password, provides fingerprint recognition, etc.).

[0246] Back Figure 7B This illustrates an alternative implementation of providing a generated reminder relative to the user interface object 722. In some alternative implementations, the provided reminder is displayed in the user interface object 722 on the device's lock screen 701. In some alternative implementations, the user interface object 722 is displayed generally in the central area of ​​the lock screen 701 and includes a first icon 750(a), a second icon 767(a), a reminder 742(a), a postponement option 744(a), and a turn-by-turn navigation indication 746(a). In some alternative implementations, the first icon 750(a) corresponds to an icon associated with a calendar application (e.g., Figure 1A The device displays a calendar entry within the calendar application (e.g., after unlocking the device) in response to a detected selection of the first icon 750(a). In some alternative embodiments, the second icon 767(a) corresponds to an icon associated with a map application (e.g., ...). Figure 1AThe device displays (e.g., after unlocking the device) a map module 154 and, in response to detecting a selection of the second icon 767(a), a map interface including turn-by-turn navigation to a previously visited address. In some embodiments, the reminder 742(a) includes a text description such as “Time to go to the dentist!”. In response to detecting a selection of reminder 742(a), the device no longer displays reminder 742(a) and displays a calendar entry within a calendar entry (e.g., after unlocking the device).

[0247] In some alternative implementations, the pause option 744(a) includes one or more options for stopping the display of UI object 722 and redisplaying it after a user-selected or pre-configured time period. For example, the user selects the option to let UI object 722 sleep for two hours, and after two hours, the device redisplays UI object 722. As another example, the user selects to let UI object 722 sleep until they have free time (e.g., "remind me when I'm free"), and in some alternative implementations, device 100 searches calendar module 148 to identify the next free time slot in the user's schedule and redisplays UI object 722 during the identified next free time slot.

[0248] In some alternative implementations, the turn-by-turn navigation enablement 746(a) includes text that indicates to the user that selecting the turn-by-turn navigation enablement 746 will cause the device to begin route selection and provide turn-by-turn navigation (e.g., providing audio output corresponding to the navigation (e.g., navigation based on the selected route, as described above)) without leaving the lock screen 701.

[0249] In some implementations, the appearance of both user interface object 702 and user interface object 722 is combined. For example, a turn-by-turn navigation indication 746 or 746(a) is displayed below an alert (e.g., alert 742 or alert 742(a)) and a pause option 744 and a cancel option 713 are available via a first gesture (e.g., in response to detection of the first gesture).

[0250] In some implementations, in response to providing an alert (or thereafter), the device determines whether the user has arrived at a previously visited address (e.g., upon determining that the user has stopped moving (based on, for example) Figure 1AAfter receiving data from the accelerometer 168, the device compares its current GPS coordinates with those associated with a previously visited address. Based on the determination that the user has arrived at the previously visited address, the device updates the location information associated with the previously visited address (616). In some embodiments, updating the location information includes refining the GPS coordinates associated with the previously visited address (e.g., upon arrival at an arrival address for the previously visited address associated with record 412-1 (or within a first predetermined distance from that arrival address), if the device determines that the signal strength corresponding to GPS 135 is greater than the signal strength when the arrival address was previously created, the device replaces the arrival address with the device's current GPS coordinates). In some embodiments, based on the determination that the current GPS coordinates exceed a second predetermined distance from the previously visited address, the device adds a new record to the previously visited address data structure 402-1 using the value of the arrival address corresponding to the current GPS coordinates (or the corresponding physical street address). For example, the new record corresponds to a new parking location near the previously visited address.

[0251] In some implementations, the device requests feedback from the user before updating or refining the arrival address (as described above). In some implementations, such as Figure 7D As shown, the device presents a user interface object to the user, allowing them to decide whether or not to update the arrival address. For example, the presented user interface object is displayed within a top notification section 710 (or alternatively, a bottom notification section 712) and includes an optional icon 767, a confirmation dialog box 752 with an optional display for confirming or rejecting the arrival address update, and a suggested reason 714 providing the user with an indication of why the user object was presented. In some embodiments, the optional icon 767 corresponds to an icon associated with a map application (e.g., Figure 1A The device displays a map interface (including identifiers for both the currently stored arrival address and the arrival address that may be updated (i.e., the device's current location) in response to a detected selection of icon 767. In some embodiments, a confirmation dialog box 752 includes a text description requesting confirmation, such as "Want to update the storage address of the dental clinic based on your current location?" In response to a detected selection of the "Yes" button displayed within the confirmation dialog box 752, the device no longer displays the confirmation dialog box 752 and updates the record associated with the previously visited address to include the updated value of the arrival address field. In response to a detected selection of the "No" button displayed within the confirmation dialog box 752, the device no longer displays the confirmation dialog box 752 and stops updating the record associated with the previously visited address. In some embodiments, in response to a detected selection of the suggested reason indication 714, the device displays a user interface (as referenced above) that allows the user to configure privacy settings associated with the collection of location data and previously visited addresses. Figures 4A-4B (as described above). In some implementations, the user interface object also includes a feature that allows the user interface object to cancel its power indication (e.g., an "x" or "off" power indication).

[0252] In some implementations, the device is involved in the calendar entry creation process (e.g., Figures 7E-7F During the calendar entry creation process (as shown), multiple new calendar entries are scanned. Based on the determination that a first identifier is included among the multiple scanned new calendar entries (e.g., field 770 includes the identifier "dentist clinic"), the device presents the previously accessed address to the user of the device to include it in the corresponding new calendar entry (e.g., the device presents a user interface object 772 with the text "123N.Dentist St,City,State,12345 (tap to confirm)") (618). In response to detecting a selection of user interface object 772, the device associates the new calendar entry with the previously accessed address.

[0253] It should be understood that, Figure 6 The specific order of operations described herein is merely exemplary and is not intended to indicate that the described order is the only possible order in which these operations can be performed. Those skilled in the art will conceive of various ways to reorder the operations described herein.

[0254] According to some implementation plans Figure 8 A functional block diagram of an electronic device 800 configured according to the principles of various described embodiments is shown. The functional blocks of this device are optionally implemented by hardware, software, firmware, or a combination thereof, carrying out the principles of the various described embodiments. Those skilled in the art will understand that... Figure 8 The functional blocks described herein may optionally be combined or separated into sub-blocks to implement the principles of the various described embodiments. Therefore, the description herein optionally supports any possible combination or separation or further limitation of the functional blocks described herein. For ease of discussion, electronic device 800 is implemented as portable multi-functional device 100 (… Figure 1A ).

[0255] like Figure 8 As shown, the electronic device 800 includes a display unit 801 configured to display information (e.g., Figure 1A The touch-sensitive display system 112 (also known as a touch screen, touch-sensitive display, and touchscreen display) and the touch-sensitive surface unit 803 configured to receive touch, gestures, and other user input on the touch-sensitive display (e.g., Figure 1AThe system includes a display controller 156 and a touch-sensitive display system 112, and a processing unit 805 coupled to the display unit 801 and the touch-sensitive surface unit 803. In some embodiments, the processing unit includes an identification unit (e.g., identification unit 807), a retrieval unit (e.g., retrieval unit 809), a determination unit (e.g., determination unit 811), an association unit (e.g., association unit 813), a providing unit (e.g., providing unit 815), a selection unit (e.g., selection unit 817), a generation unit (e.g., generation unit 819), a receiving unit (e.g., receiving unit 821), an execution unit (e.g., execution unit 823), a scanning unit (e.g., scanning unit 825), a presentation unit (e.g., presentation unit 827), and an updating unit (e.g., updating unit 829). The processing unit is configured to: automatically, without human intervention, identify (e.g., using identification unit 807) a calendar entry including a first identifier, the first identifier corresponding to an unknown geographical location; automatically, without human intervention, retrieve (e.g., using retrieval unit 809) a previously accessed address associated with the first identifier; automatically, without human intervention, determine (e.g., using determination unit 811) a departure time for the calendar entry based on the previously accessed address; and automatically, without human intervention, associate the determined departure time with the calendar entry (e.g., using association unit 813).

[0256] In some embodiments of the electronic device 800, the processing unit is further configured to provide a user with a reminder of the determined departure time for a calendar entry on the electronic device (e.g., using the providing unit 815 and / or in conjunction with the display unit 801). In some embodiments of the electronic device 800, the calendar entry is associated with a default reminder, which differs from the reminder provided to the user for the determined departure time of the calendar entry. In some embodiments of the electronic device 800, providing a reminder includes providing (e.g., using the providing unit 815 and / or in conjunction with the display unit 801) a reminder within a predetermined amount of time of the current time based on the determined (e.g., by the determining unit 811) departure time. In some embodiments of the electronic device 800, associating the determined departure time with the calendar entry includes generating (e.g., using the generating unit 819) a reminder and updating the calendar entry to include the generated reminder.

[0257] In some embodiments of the electronic device 800, determining the departure time includes: (i) determining (e.g., using determining unit 811) the current address corresponding to the electronic device, (ii) determining (e.g., using determining unit 811) the route from the current address to a previously visited address, and (iii) determining (e.g., using determining unit 811) the departure time based on the amount of time required to complete the route, such that the user will arrive at the previously visited address within a predetermined amount of time associated with a start time in the calendar entry. In some embodiments of the electronic device 800, a route is selected (e.g., using selecting unit 817) from multiple available routes from the current address to the previously visited address based on route selection preferences associated with the user of the device.

[0258] In some embodiments of the electronic device 800, the processing unit is further configured to receive, on a touch-sensitive display, confirmation from the user of the electronic device (e.g., using receiving unit 821) of a previously accessed address corresponding to a calendar entry. After receiving the confirmation, the processing unit is configured to determine (e.g., using determining unit 811) the departure time.

[0259] In some embodiments of the electronic device 800, retrieving a previously accessed address includes retrieving (e.g., using retrieval unit 809) a previously accessed address from a database of previously accessed addresses associated with a user of the electronic device. In some embodiments of the electronic device 800, the previously accessed addresses in the database of previously accessed addresses correspond to addresses previously accessed by the user of the electronic device. In some embodiments of the electronic device 800, retrieving a previously accessed address includes performing a lookup in the database of previously accessed addresses using a first identifier (e.g., using execution unit 823).

[0260] In some embodiments of the electronic device 800, the processing unit is further configured to scan (e.g., using scanning unit 825) multiple new calendar entries during the calendar entry creation process. Based on determining (e.g., by determining unit 811) a first identifier included in the multiple scanned new calendar entries, the processing unit is configured to present (e.g., using presentation unit 827 and / or combined with display unit 801) a previously accessed address to the user of the electronic device to include it in the corresponding new calendar entry.

[0261] In some embodiments of the electronic device 800, the processing unit is further configured to determine (e.g., using determination unit 811) whether a user has arrived at a previously accessed address in response to providing an alert. Based on the determination (e.g. by determination unit 811) that the user has arrived at a previously accessed address, the processing unit is configured to update (e.g., using update unit 829) the location information associated with the previously accessed address.

[0262] The operations in the above information processing method are optionally implemented by running one or more functional modules in an information processing device, such as a general-purpose processor (e.g., as described above relative to...). Figure 1A (as described) or application-specific chips.

[0263] The above is for reference only. Figure 5 The operation is optionally performed by Figures 1A-1B or Figure 8 The components depicted are used to implement this. For example, the receive operation 606 and the provide operation 614 are optionally implemented by the event classifier 170, the event recognizer 180, and the event handler 190. The event monitor 171 in the event classifier 170 detects a touch on the touch-sensitive display 112, and the event dispatcher module 174 delivers the event information to the application 136-1. The corresponding event recognizer 180 of the application 136-1 compares the event information with the corresponding event definition 186 and determines whether the first touch at the first position on the touch-sensitive surface (or whether the rotation of the device) corresponds to a predefined event or sub-event, such as the selection of an object on the user interface or the rotation of the device from one orientation to another. When a corresponding predefined event or sub-event is detected, the event recognizer 180 activates the event handler 190 associated with the detection of the event or sub-event. The event handler 190 optionally uses or invokes the data updater 176 or the object updater 177 to update the internal state 192 of the application. In some implementations, event handler 190 accesses the corresponding GUI updater 178 to update the content displayed by the application. Similarly, those skilled in the art will readily understand that based on... Figures 1A-1C How the components shown can implement other processes.

[0264] For purposes of explanation, the foregoing description has been given with reference to specific embodiments. However, the exemplary discussion above is not intended to be exhaustive, nor is it intended to limit the invention to the precise forms disclosed. Many modifications and variations are possible based on the teachings above. The embodiments were chosen and described to best elucidate the principles of the invention and its practical application, thereby enabling others skilled in the art to best utilize the invention with various modifications suitable for the contemplated particular purpose, as well as the various described embodiments.

Claims

1. A method comprising: On electronic devices with touch-sensitive displays: Receive electronic communications, the electronic communications including an identifier and an associated arrival time for an event, wherein the electronic communications do not specify the location of the event; The destination for a user of the electronic device is predicted at least in part based on comparing the identifier included in the electronic communication with an identifier stored for the destination, the stored identifier being included in a database of previously visited addresses associated with the user, wherein each address in the database of previously visited addresses associated with the user includes a corresponding stored identifier and is recorded if it is determined that the user of the electronic device has previously visited the address, wherein predicting the destination includes associating the destination with the event associated with the electronic communication; Based on the current location of the electronic device and the route information from the current location to the destination before the associated arrival time, determine the time to present the departure time reminder to the destination; The departure time reminder is displayed on the touch-sensitive display at the specified time. The departure time reminder includes a user interface element that, when selected, causes the electronic device to begin providing turn-by-turn navigation to the destination. Receive the selection of the user interface element; as well as In response to receiving the selection from the user interface element, provide step-by-step navigation to the destination.

2. The method of claim 1, wherein the associated arrival time is determined based on a pattern identified by the electronic device for the user, the pattern indicating that the associated arrival time is the most common arrival time for the user to reach the destination.

3. The method of claim 1, wherein the route information from the current location to the destination is determined based on a pattern identified by the electronic device for the user, the pattern indicating the most frequently used route to the destination.

4. The method of claim 1, wherein the electronic communication is one of a text message, an email message, or a voice message.

5. The method of claim 1, wherein the database of previously accessed addresses is stored on the electronic device.

6. The method of claim 5, wherein the database of previously accessed addresses is associated with one or more user-configured privacy settings that allow the user to control the collection of information associated with the previously accessed addresses.

7. The method of claim 6, wherein the one or more user-configured privacy settings allow the user to configure different data collection settings for different applications on the electronic device.

8. The method according to claim 1, further comprising: In response to receiving the selection of the user interface element, the map application providing the turn-by-turn navigation is opened.

9. The method of claim 1, wherein the departure time reminder includes a text description, the text description including (i) the departure time and (ii) a description of the destination.

10. The method of claim 9, wherein the departure time is selected based on a pattern identified by the electronic device for the user, the pattern indicating the most common departure time for the user to travel to the destination.

11. The method of claim 1, wherein the selection of the user interface element is a swipe gesture.

12. The method according to claim 1, further comprising: Before receiving the selection from the user interface element, one or more additional user interface elements are displayed to perform different actions associated with the departure time reminder.

13. The method of claim 12, wherein the one or more additional user interface elements include: The power indicator can be temporarily suspended so that the departure time reminder is no longer displayed and then re-displayed after a period of time, or the power indicator can be canceled so that the departure time reminder is no longer displayed.

14. The method of claim 1, wherein the departure time reminder is displayed on the main screen of the electronic device.

15. The method of claim 14, further comprising: Before providing turn-by-turn navigation to the destination, the user is asked to unlock the electronic device.

16. A computer-readable storage medium storing executable instructions, which, when executed by an electronic device having a touch-sensitive display, cause the electronic device to: Receive electronic communications, the electronic communications including an identifier and an associated arrival time for an event, wherein the electronic communications do not specify the location of the event; The destination for a user of the electronic device is predicted at least in part based on comparing the identifier included in the electronic communication with an identifier stored for the destination, the stored identifier being included in a database of previously visited addresses associated with the user, wherein each address in the database of previously visited addresses associated with the user includes a corresponding stored identifier and is recorded if it is determined that the user of the electronic device has previously visited the address, wherein predicting the destination includes associating the destination with the event associated with the electronic communication; Based on the current location of the electronic device and the route information from the current location to the destination before the associated arrival time, determine the time to present the departure time reminder to the destination; The departure time reminder is displayed on the touch-sensitive display at the specified time. The departure time reminder includes a user interface element that, when selected, causes the electronic device to begin providing turn-by-turn navigation to the destination. Receive the selection of the user interface element; as well as In response to receiving the selection from the user interface element, provide step-by-step navigation to the destination.

17. The computer-readable storage medium of claim 16, wherein when executed by the electronic device, the executable instructions further cause the electronic device to perform the method of any one of claims 2-15.

18. An electronic device comprising: One or more processors; and A memory storing one or more programs, which, when executed by the one or more processors, enable an electronic device with a touch-sensitive display: Receive electronic communications, the electronic communications including an identifier and an associated arrival time for an event, wherein the electronic communications do not specify the location of the event; The destination for a user of the electronic device is predicted at least in part based on comparing the identifier included in the electronic communication with an identifier stored for the destination, the stored identifier being included in a database of previously visited addresses associated with the user, wherein each address in the database of previously visited addresses associated with the user includes a corresponding stored identifier and is recorded if it is determined that the user of the electronic device has previously visited the address, wherein predicting the destination includes associating the destination with the event associated with the electronic communication; Based on the current location of the electronic device and the route information from the current location to the destination before the associated arrival time, determine the time to present the departure time reminder to the destination; The departure time reminder is displayed on the display at the specified time. The departure time reminder includes a user interface element that, when selected, causes the electronic device to begin providing turn-by-turn navigation to the destination. Receive the selection of the user interface element; as well as In response to receiving the selection from the user interface element, provide step-by-step navigation to the destination.

19. The electronic device of claim 18, wherein when executed by the one or more processors, the one or more programs further cause the electronic device to perform the method of any one of claims 2-15.