A system and method for displaying notifications received from multiple applications.
The electronic device with a touch-sensitive interface and notification module efficiently manages and customizes notifications from multiple applications, addressing the issue of overwhelming notification clutter by organizing them into a structured notification center.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- APPLE INC
- Filing Date
- 2024-07-23
- Publication Date
- 2026-07-29
AI Technical Summary
Portable electronic devices with multiple applications generate numerous and overwhelming application-based notifications, requiring a more efficient and intuitive approach for organizing and accessing these notifications.
An electronic device with a touch-sensitive input/output device and a notification module that interacts with application programming interfaces to manage and customize notification display, allowing users to view and interact with notifications in a locked or unlocked state, and aggregates notifications into panes within a notification center.
Provides a streamlined and customizable way to manage and access notifications from multiple applications, enhancing user experience by organizing and presenting them in a structured manner, even when the device is locked.
Smart Images

Figure 0007897285000001 
Figure 0007897285000002 
Figure 0007897285000003
Abstract
Description
Technical Field
[0001] The disclosed embodiments mainly relate to electronic devices, and in particular, to electronic devices that display notifications received from a plurality of applications.
Background Art
[0002] Today's portable electronic devices can integrate multiple functions. These devices have the ability to run multiple applications. In particular, some of these applications will generate trigger events that can display notifications.
[0003] Since an electronic device can store many applications, especially when a user needs to access individual applications to view application-specific notifications, application-based notifications can also be numerous and overwhelming. Therefore, a more efficient and intuitive approach for organizing these notifications and making them immediately accessible is required.
Summary of the Invention
[0004] A system and method for displaying notifications received from a plurality of applications are disclosed. An electronic device can include a touch-sensitive input / output (I / O) device (e.g., a touch screen) using a graphical user interface (GUI), one or more processors, a memory, and one or more modules, programs, or sets of instructions stored in the memory to perform a number of functions.
[0005] In particular, the electronic device can include a notification module that can interact with one or more application programming interfaces (APIs) for generating various types of notifications whether the device is in a locked state or an unlocked state. Further, the notification module can provide options for customizing notification settings.
[0006] In some embodiments, a notification module can monitor notifications received from multiple applications. In response to receiving notifications, the notification module can control how the notifications are displayed when the electronic device is operating in a locked or unlocked state. In some embodiments, the electronic device allows the user to customize how notifications are displayed when the electronic device is locked and / or unlocked.
[0007] In some embodiments, when the electronic device is operating in a locked state, the notification module may display a pull-down menu that allows the user to view received notifications.
[0008] In some embodiments, the notification module can aggregate received notifications and present the aggregated notifications as multiple panes within a notification center. Each pane in the notification center can therefore be associated with a different application. Furthermore, the notification module can display banners corresponding to one or more notifications received from different applications.
[0009] One or more APIs interacting with a notification module may exist in an environment where a calling program communicates with other program code being called through one or more interfaces. Various function calls, messages, or other types of calls, which may contain various kinds of parameters, may be transferred between the calling program and the called code via the APIs. Furthermore, some APIs may provide the calling program with the ability to use data types or classes defined in that API and implemented in the called program code.
[0010] At least some embodiments include an environment in which a calling software component interacts with the called software component through an API. The way in which operations are performed through the API in this environment includes the process of transferring one or more function calls, messages, and / or other types of calls or parameters through that API.
[0011] The above-described and other embodiments of the present invention will become more apparent by considering the following detailed description together with the accompanying drawings, in which similar reference letters refer to similar parts. [Brief explanation of the drawing]
[0012] [Figure 1] This is a block diagram of an electronic device configured according to various embodiments of the present invention. [Figure 2] This is a block diagram of an electronic device configured according to various embodiments of the present invention. [Figure 3] This is a block diagram of an application programming interface (API) architecture according to various embodiments of the present invention. [Figure 4] This is a block diagram of an application programming interface (API) architecture according to various embodiments of the present invention. [Figure 5] This figure shows a display screen associated with the home screen of an electronic device according to various embodiments of the present invention. [Figure 6A] This figure shows a display screen associated with an exemplary notification center according to various embodiments of the present invention. [Figure 6B] This figure shows a display screen associated with an exemplary notification center according to various embodiments of the present invention. [Figure 6C] This figure shows a display screen associated with an exemplary notification center according to various embodiments of the present invention. [Figure 6D] This figure shows a display screen associated with an exemplary notification center according to various embodiments of the present invention. [Figure 6E] FIG. is related to an exemplary notification center according to various embodiments of the present invention and shows a display screen associated therewith. [Figure 6F] FIG. is related to an exemplary notification center according to various embodiments of the present invention and shows a display screen associated therewith. [Figure 6G] FIG. is related to an exemplary notification center according to various embodiments of the present invention and shows a display screen associated therewith. [Figure 6H] FIG. is related to an exemplary notification center according to various embodiments of the present invention and shows a display screen associated therewith. [Figure 7A] FIG. is a diagram of a display screen related to an exemplary banner according to various embodiments of the present invention. [Figure 7B] FIG. is a diagram of a display screen related to an exemplary banner according to various embodiments of the present invention. [Figure 7C] FIG. is a diagram of a display screen related to an exemplary banner according to various embodiments of the present invention. [Figure 7D] FIG. is a diagram of a display screen related to an exemplary banner according to various embodiments of the present invention. [Figure 7E] FIG. is a diagram of a display screen related to an exemplary banner according to various embodiments of the present invention. [Figure 8A] FIG. is a diagram of a display screen according to various embodiments of the present invention that displays notifications when an electronic device is operating in a locked state. [Figure 8B] FIG. is a diagram of a display screen according to various embodiments of the present invention that displays notifications when an electronic device is operating in a locked state. [Figure 8C] FIG. is a diagram of a display screen according to various embodiments of the present invention that displays notifications when an electronic device is operating in a locked state. [Figure 8D] FIG. is a diagram of a display screen according to various embodiments of the present invention that displays notifications when an electronic device is operating in a locked state. [Figure 8E] FIG. is a diagram of a display screen according to various embodiments of the present invention that displays notifications when an electronic device is operating in a locked state. [Figure 8F]FIG. is a diagram of a display screen according to various embodiments of the present invention that displays a notification when an electronic device is operating in a locked state. [Figure 9A] FIG. is a diagram of a display screen regarding customization of notification settings according to various embodiments of the present invention. [Figure 9B] FIG. is a diagram of a display screen regarding customization of notification settings according to various embodiments of the present invention. [Figure 9C] FIG. is a diagram of a display screen regarding customization of notification settings according to various embodiments of the present invention. [Figure 9D] FIG. is a diagram of a display screen regarding customization of notification settings according to various embodiments of the present invention. [Figure 9E] FIG. is a diagram of a display screen regarding customization of notification settings according to various embodiments of the present invention. [Figure 9F] FIG. is a diagram of a display screen regarding customization of notification settings according to various embodiments of the present invention. [Figure 10A] FIG. is a diagram of a display screen regarding notifications according to various embodiments of the present invention. [Figure 10B] FIG. is a diagram of a display screen regarding notifications according to various embodiments of the present invention. [Figure 10C] FIG. is a diagram of a display screen regarding notifications according to various embodiments of the present invention. [Figure 11] FIG. is an exemplary flowchart of a process for displaying a pull-down option in response to receiving a plurality of notifications according to various embodiments of the present invention. [Figure 12] FIG. is an exemplary flowchart of a process for displaying a notification center according to various embodiments of the present invention. [Figure 13] FIG. is an exemplary flowchart of a process for providing a banner according to various embodiments of the present invention. [Figure 14] FIG. is an exemplary flowchart of a process for providing notification settings according to various embodiments of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] A system and method are provided for displaying notifications received from multiple applications.
[0014] Figure 1 shows a block diagram of an electronic device 100, including a touch I / O device 102 capable of receiving touch input for communication with a computing system 104 via a priority or wireless communication channel 106. The touch I / O device 102 can be used to provide user input to the computing system 104 in place of, or in combination with, other input devices such as a keyboard or mouse. One or more touch I / O devices 102 may be used to provide user input to the computing system 104. The touch I / O device 102 may be an integrated component of the computing system 104 (e.g., a touchscreen in a notebook computer) or it may be separate from the computing system 104.
[0015] The touch I / O device 102 may include a touch-sensitive panel that is entirely or partially transparent, translucent, opaque, or any combination thereof. The touch I / O device 102 may be implemented as a touchscreen, a touchpad, a touchscreen that functions as a touchpad (e.g., a touchscreen that replaces the touchpad of a notebook computer), a touchscreen or touchpad combined with or integrated with other input devices (e.g., a touchscreen or touchpad placed on a keyboard), or any multidimensional object having a touch-sensitive surface for receiving touch input.
[0016] In one embodiment, the touch I / O device 102, implemented as a touchscreen, may include a transparent and / or translucent touch-sensitive panel, part or all of which is positioned on at least a portion of the display. In this embodiment, the touch I / O device 102 functions to display image data transmitted from the computing system 104 (and / or other sources) and to accept user input. In another embodiment, the touch I / O device 102 may be implemented as an integrated touchscreen in which the touch-sensitive component / device is integrated with the display component / device. In yet another embodiment, the touchscreen may be used as an auxiliary or additional display screen that displays the same image data as the main screen or additional image data.
[0017] The touch I / O device 102 may be configured to detect the location of one or more touches or near touches relative to itself based on capacitive, resistive, optical, acoustic, inductive, mechanical, chemical measurements, or any measurable phenomenon relating to the occurrence of one or more touches or near touches in the vicinity of the touch I / O device 102. To identify and track one or more gestures, the measured results of the detected touches can be processed using software, hardware, firmware, or a combination thereof. A gesture may correspond to one or more touches or near touches on the touch I / O device 102, whether stationary or moving. A gesture may be performed by moving one or more fingers or other objects on the touch I / O device 102 in a specific way, such as tapping, pressing, rocking, rubbing, twisting, reorienting, or pressing with varying pressure, substantially simultaneously, consecutively, or continuously. A gesture may be characterized by, but is not limited to, pinching, sliding, swiping, rotating, flexing, dragging, or tapping actions between one or more other fingers. A single gesture may be performed by one or more hands, by one or more users, or by a combination thereof.
[0018] The computing system 104 can drive a display using image data to display a graphical user interface (GUI). The GUI may be configured to accept touch input through a touch I / O device 102. When implemented as a touchscreen, the touch I / O device 102 may display the GUI. Alternatively, the GUI may be displayed on a separate display from the touch I / O device 102. The GUI may include image elements that are displayed at specific locations within the interface. Image elements may include, but are not limited to, various displayed virtual input devices such as a virtual scroll wheel, virtual keyboard, virtual knob, virtual button, or any virtual UI. The user can perform gestures at one or more specific locations that may be associated with image elements of the GUI on the touch I / O device 102. In another embodiment, the user may perform gestures at one or more locations that are not associated with image elements of the GUI. Gestures performed on the touch I / O device 102 can directly or indirectly manipulate, control, change, move, activate, start, or generally affect cursors, icons, media files, lists, text, images, or all or part of them within the GUI. For example, in the case of a touchscreen, the user can directly interact with image elements on the touchscreen by making gestures over those elements. Alternatively, a touchpad generally provides indirect interaction. Gestures may also affect non-visible GUI elements (such as GUI elements that display a user interface) or other operations within the computing system 104 (such as affecting the state or mode of the GUI, applications, or OS). Gestures may or may not be performed on the touch I / O device 102 in conjunction with a displayed cursor. For example, if a gesture is performed on a touchpad, a cursor (or pointer) may be displayed on the display screen or touchscreen, and that cursor may be controlled through touch input on the touchpad to interact with image elements on the display screen.In another embodiment where gestures are performed directly on the touchscreen, the user can interact directly with objects on the touchscreen, with or without using a cursor or pointer displayed on the touchscreen.
[0019] Feedback may be provided via the communication channel 106 in response to or based on a touch or near touch on the touch I / O device 102. The feedback may be transmitted in a variable or unvariable manner by optical, mechanical, electrical, olfactory, auditory, or any combination thereof.
[0020] Next, embodiments of the system architecture that may be implemented in any portable or non-portable device, including communication devices (e.g., mobile phones, smartphones), multimedia devices (e.g., MP3 players, TVs, radios), portable or handheld computers (e.g., tablets, notebooks, laptops), desktop computers, all-in-one desktops, peripherals, or any other systems or devices that can be adapted to include the system architecture 2000, or two or more combinations of these devices, will be described. Figure 2 is a block diagram of a system 200 that may include one or more computer-readable media 201, a processing system 204, an input / output (I / O) subsystem 206, a radio frequency (RF) circuit 208, and an audio circuit 210. These components may be connected by one or more communication buses or signal lines 203. The system 200 may be identical or similar to the electronic device 100 (Figure 1).
[0021] It is clear that the architecture shown in Figure 2 is an example of the architecture of system 200, and that system 200 may have more or fewer components, or different configurations of components than those shown. The various components shown in Figure 2 can be implemented by hardware, software, firmware, or any combination thereof, including one or more signal processing and / or application-specific integrated circuits.
[0022] The RF circuit 208 is used to send and receive information with one or more other devices over a wireless link or network and has known circuitry for performing its function. The RF circuit 208 and the audio circuit 210 may be connected to the processing system 204 through a peripheral interface 216. The interface 216 may include various known components for establishing and maintaining communication between peripheral devices and the processing system 204. The audio circuit 210 may be connected to an audio speaker 250 and a microphone 252 and also includes known circuitry for processing audio signals received from the interface 216 so that a user can communicate with other users in real time. In some embodiments, the audio circuit 210 includes a headphone jack (not shown).
[0023] The peripheral interface 216 can connect the system's input and output peripherals to the processor 218 and the computer-readable medium 201. One or more processors 218 can communicate with one or more computer-readable mediums 201 through the controller 220. The computer-readable medium 201 may be any device or medium capable of storing code and / or data for use by one or more processors 218. The medium 201 may have, but is not limited to, a memory hierarchy including cache, main memory, and sub-memory. The memory hierarchy can be implemented using any combination of magnetic and / or optical storage devices such as RAM (e.g., SRAM, DRAM, DDRAM), ROM, flash, disk drives, magnetic tape, CD (Compact Disc), and DVD (Digital Video Disc). The medium 201 may also include a transmission medium for carrying information-holding signals that indicate computer instructions and data, and may or may not use a carrier wave to modulate the signals. For example, the transmission medium may include, but is not limited to, communication networks such as the Internet (also known as the World Wide Web), one or more intranets, multiple local area networks (LANs), multiple wide local area networks (WLANs), multiple storage area networks (SANs), and multiple metropolitan area networks (MANs).
[0024] One or more processors 218 can execute various software components stored in the medium 201 to perform various functions for the system 200. In some embodiments, the software components include an operating system 222, a communications module (or instruction set) 224, a touch processing module (or instruction set) 226, a graphics module (or instruction set) 228, one or more applications (or instruction sets) 230, and a notification module 238. Each of these modules and the aforementioned applications corresponds to an instruction set for performing one or more of the functions described above and the methods described in this application (e.g., methods performed by a computer and other information processing methods described herein). These modules (e.g., instruction sets) do not have to be implemented as separate software programs, procedures or modules, and therefore various subsets of these modules may be combined or reconfigured in various embodiments. In some embodiments, the medium 201 may store subsets of the plurality of modules and data structures described above. Furthermore, the medium 201 may store further modules and data structures not described above.
[0025] The operating system 222 may include various procedures, instruction sets, software components, and / or drivers for controlling and managing common system tasks (e.g., memory management, storage device control, power management, etc.) and assisting communication between various hardware and software components.
[0026] The communication module 224 assists in communication with other devices through one or more external ports 236 or RF circuits 208, and includes various software components for handling data received from RF circuits 208 and / or external ports 236.
[0027] The graphics module 228 may include various known software components for rendering, animating, and displaying graphical objects on the display surface. In embodiments where the touch I / O device 102 is a touch-sensitive display (e.g., a touchscreen), the graphics module 228 includes components for rendering, displaying, and animating objects on the touch-sensitive display.
[0028] One or more applications 230 may include, but are not limited to, any applications installed on system 200, including browsers, address books, contacts, email, instant messaging, document creation, keyboard emulation, widgets, Java®-enabled applications, encryption, digital rights management, speech recognition, speech synthesis, location capabilities (such as those provided by GPS), and music players.
[0029] The touch processing module 226 includes, but is not limited to, various software components for performing various tasks related to the touch I / O device 212, including receiving and processing touch input received from the I / O device 212 via the touch I / O device controller 232. For example, the touch processing module 226 may further include software components for performing tasks related to other I / O devices 214. That is, the touch processing module 226 can receive and process input received from the I / O device 214 via another I / O controller 234.
[0030] System 200 may further include a notification module 238 for performing methods / functions as described herein with reference to Figures 5 to 14. The notification module 238 functions to monitor at least notifications received from multiple applications (e.g., multiple applications on System 200 or data providers sending data to System 200). For example, the notification module 238 can receive notifications from both non-third-party and third-party applications. Furthermore, the notification module 238 can receive push-based notifications, trigger-based notifications, and / or other types of personal notifications.
[0031] In response to receiving a notification, the notification module 238 can control how the notification is displayed when the system 200 is operating in a locked or unlocked state. For example, when the system 200 is operating in a locked state, the notification module 238 can display notifications in banners and can also control how these notifications are displayed. As another example, the notification module 238 can group multiple received notifications together and provide the grouped notifications as multiple panes within the notification center. Thus, each pane may be associated with a different application. In some embodiments, the notification module 238 may allow the user to customize how notifications are displayed on the system 200.
[0032] In the locked state, system 200 may restrict user access to certain functions. For example, in the locked state, the user may be prevented from activating various device functions, such as making phone calls or entering emails. In other words, the locked state is designed to prevent unintended access to system 200. When system 200 is unlocked, the user has full access to all functions of the system.
[0033] Furthermore, the notification module 238 can provide the data provider with a specific data format that enables the data provider to send specific notifications to different users. Those skilled in the art will understand that any preferred format may also be used. For example, in order to display a notification on system 200, the notification module 238 may require the data provider to specify a title (e.g., username), a subtitle (e.g., subtitle of incoming message or warning), and a body (e.g., body of message).
[0034] The notification module 238 may further interact with the touch processing module 226 to receive user input. Furthermore, the notification module 238 may interact with the graphics module 228 to display various graphical objects on the display. The notification module 238 may be implemented as hardware, software, firmware, or a combination thereof. Although the notification module 238 is illustrated as residing within the medium 201, all or part of the notification module 238 may be implemented within other components of the system 200, or the entire module may be implemented as a separate component within the system 200.
[0035] The I / O subsystem 206 is connected to a touch I / O device 212 and one or more other I / O devices 214 to control or perform various functions. The touch I / O device 212 communicates with the processing system 204 via a touch I / O device controller 232 and includes various components for processing user touch input (e.g., scanning hardware). One or more of the other input controllers 234 receive / transmit electrical signals to and from the other I / O devices 214. The other I / O devices 214 may include physical buttons, dials, slide switches, sticks, keyboards, touchpads, additional display screens, or any combination thereof.
[0036] When implemented as a touchscreen, the touch I / O device 212 displays visual output to the user in a GUI. The visual output may include text, graphics, video, and any combination thereof. Some or all of the visual output may correspond to user interface objects. The touch I / O device 212 forms a contact-sensing surface that accepts touch input from the user. The touch I / O device 212 and the touchscreen controller 232 (together with the associated module and / or instruction set in medium 201) detect and track touches or near touches (and the movement or release of such touches) on the touch I / O device 212 and translate the detected touch input into interaction with a graphical object, such as one or more user interface objects. When device 212 is implemented as a touchscreen, the user can interact directly with the graphical objects displayed on the touchscreen. On the other hand, when device 212 is implemented as a touch device other than a touchscreen (e.g., a touchpad), the user can interact indirectly with the graphical objects displayed on a separate display screen implemented as I / O device 214.
[0037] The touch I / O device 212 may be similar to the multi-touch sensing surfaces described in U.S. Patents 6,323,846, 6,570,557, and / or U.S. Patent 6,677,932, and / or U.S. Patent Publication 2002 / 001502A1 to Westerman et al., each of which is incorporated herein by reference.
[0038] In embodiments where the touch I / O device 212 is a touchscreen, the touchscreen may utilize LCD (liquid crystal display) technology, LPD (polymer light-emitting display), OLED (organic LED), or OEL (organic electroluminescence), but in other embodiments, other display technologies may be used.
[0039] The touch I / O device 212 may provide feedback based on what is currently displayed and / or the state or status of the computing system, and the user's touch input. The feedback may be transmitted in a variable or non-variable manner by optical (e.g., light signals or display images), mechanical (e.g., haptic feedback, touch feedback, force feedback, etc.), electrical (e.g., electrical stimulation), olfactory, auditory (e.g., beeps, etc.), or any combination thereof.
[0040] The system 200 may include a power system 244 for supplying power to various hardware components, and may also include a power management system, one or more power sources, a charging system, a power fault detection circuit, a power converter or inverter, a power status indicator, and any other components particularly related to the generation, management, and distribution of power within the portable device.
[0041] In some embodiments, the peripheral interface 216, one or more processors 218, and the memory controller 220 may be implemented on a single chip, such as the processing system 204. In some other embodiments, they may be implemented on separate chips.
[0042] The notification module 238 can interact with one or more application programming interfaces (APIs) to provide a notification center capable of generating various types of notifications when the system 200 is locked or unlocked. Furthermore, the notification module 238 can provide multiple settings for customizing the notification center.
[0043] An API is an interface implemented by a program code component or hardware component (hereinafter referred to as an API implementing component) that enables different program code components or hardware components (hereinafter referred to as API calling components) to access or use one or more functions, methods, procedures, data structures, classes, and / or other services provided by the API implementing component. An API can define one or more parameters that are passed between the API calling component and the API implementing component.
[0044] An API enables developers of API calling components (which may be third-party developers) to utilize specific functionalities provided by API implementing components. There may be one or more API calling components. An API may also be a source code interface provided by a computing system or program library to support service requests from applications. An operating system (OS) may have multiple APIs that applications running on the OS can call, and a service (such as a program library) may have multiple APIs that applications using the service can call. An API may specify a programming language that can be translated or compiled when an application is built.
[0045] In some embodiments, an API implementing component may consist of multiple APIs, each providing a different mode of access to or a different view of different aspects of the functionality implemented by the API implementing component. For example, one API of an API implementing component may provide a first set of functionality and may be disclosed to third-party developers. Another API of the API implementing component may be hidden (not disclosed) and provide a subset of the first set of functionality, in addition to another set of functionality not included in the first set, such as test and debug functionality. In some other embodiments, an API implementing component may itself call one or more other components via an underlying API, and so the API implementing component also functions as an API calling component.
[0046] An API defines the language and parameters that an API calling component uses to access and utilize a specified function of an API implementing component. For example, an API calling component accesses a specified function of an API implementing component through one or more API calls or invocations disclosed by the API (e.g., performed by function or method calls), and passes data and control information using parameters through the API calls or invocations. An API implementing component can respond to an API call from an API calling component by returning a value through the API. While the API defines the syntax and results of an API call (e.g., how to invoke the API and what the API call does), the API does not need to show how an API call achieves the function identified by that API call. Various API calls are forwarded through one or more application programming interfaces between the caller (the API calling component) and the API implementing component. The forwarding of an API call may include issuing, starting, invoking, calling, receiving, replying, or responding to a function call or message. In other words, forwarding can describe the actions of either the API calling component or the API implementing component. A function call or other invocation of the API may send or receive one or more parameters through a parameter list or other structure. Parameters may be constants, keys, data structures, objects, object classes, variables, data types, pointers, arrays, or lists or pointers to functions, methods, or other methods for referencing data to be passed via the API.
[0047] Furthermore, data types or classes may be provided by the API and implemented by the API implementing component. Accordingly, the API calling component may use the provisions provided by the API to declare variables, use pointers, and use or create instances of constants of such types or classes.
[0048] Generally, an API can be used to access services or data provided by an API implementing component, or to initiate the execution of an operation or computation provided by an API implementing component. For example, an API implementing component and an API calling component may each be an operating system, library, device driver, API, application program, or other module (it should be understood that the API implementing component and the API calling component may be the same or different types of modules). In some cases, an API implementing component may be implemented, at least in part, in firmware, microcode, or other hardware logic. In some embodiments, an API allows a client program to use services provided by a software development kit (SDK) library. In other embodiments, an application or other client program may use APIs provided by an application framework. In some embodiments, an application or client program may combine calls to functions or methods provided by the SDK and provided by the API, or use data types or objects defined in the SDK and provided by the API. In these embodiments, the application framework may provide a main event loop for programs to respond to various events defined by the framework. The API allows an application to specify events and to respond to those events using the application framework. In some embodiments, API calls can report to an application the capabilities or states of a hardware device in terms of input capabilities and states, output capabilities and states, processing capabilities, power states, memory capacity and states, communication capabilities, etc., and the API may be implemented in part by firmware, microcode, or other low-level logic that runs partly on the hardware component.
[0049] An API calling component may be a local component (for example, located on the same data processing system as the API implementing component) or a remote component (for example, located on a different data processing system than the API implementing component) that communicates with the API implementing component over a network via the API. It should be understood that an API implementing component may behave as an API calling component (for example, by making API calls to APIs disclosed by another API implementing component), and an API calling component may behave as an API implementing component by implementing APIs disclosed to another API calling component.
[0050] An API may be implemented in a specific programming language, but it may also allow multiple API calling components written in different programming languages to communicate with an API implementing component (therefore, the API may include functionality for translating calls and responses between the API implementing component and the API calling component). In one embodiment, an API calling component may call multiple APIs from different providers, such as one set of APIs from an OS provider, another set of APIs from a plugin provider, and yet another set of APIs from another provider (e.g., a software library provider) or the creator of another set of APIs.
[0051] Figure 3 is a block diagram showing an exemplary API architecture 300 that can be used in some embodiments of the present invention. As shown in Figure 3, the API architecture 300 includes an API implementing component 302 (e.g., an operating system, library, device driver, API, application program, software, or other module) that implements API 304. API 304 defines one or more functions, methods, classes, objects, protocols, data structures, formats, and / or other functionalities of the API implementing component 302 that may be used by an API calling component 306. API 304 can define at least one calling rule that a function in the API implementing component 302 receives parameters from the API calling component 30 and how the function returns results to the API calling component 306. The API calling component 306 (e.g., an operating system, library, device driver, API, application program, software, or other module) makes API calls through API 304 to access and use the functionalities of the API implementing component 302 defined by API 304. The API implementing component 302 may return values to the API calling component 306 through API 304 in response to the API call.
[0052] It will be clear that the API implementing component 302 may include further functions, methods, classes, data structures, and / or other functionalities that are not defined through API 304 and are not available to the API calling component 306. It should be understood that the API calling component 306 may reside on the same system as the API implementing component 302, or it may be located separately and access the API implementing component 302 over a network using API 304. While Figure 3 shows only one API calling component 306 interacting with API 304, it should be understood that other API calling components, which may be written in other languages (or the same language) as API calling component 306, may also use API 304.
[0053] The API implementation component 302, API 304, and API calling component 306 may be stored on a machine-readable medium, which includes any mechanism for storing information in a format readable by a machine (e.g., a computer or other data processing system). For example, the machine-readable medium includes magnetic disks, optical disks, random-access memory, read-only memory, flash memory® devices, and the like.
[0054] In Figure 4 (software stack), which is an exemplary embodiment, the application can make calls to service A or B using several service APIs, and to the operating system (OS) using several OS APIs. Services A and B can make calls to the OS using several OS APIs.
[0055] Service 2 has two APIs: one (Service 2 API1) receives calls from Application 1 and returns a value to Application 1, and the other (Service 2 API2) receives calls from Application 2 and returns a value to Application 2. Service 1 (which may be a software library, for example) makes a call to OS API1 and receives a return value from OS API1. Service 2 (which may be a software library, for example) makes calls to both OS API1 and OS API2 and receives return values from both OS API1 and OS API2. Application 2 makes a call to OS API2 and receives a return value from OS API2.
[0056] As described above, the notification module of an electronic device (for example, the notification module 238 in Figure 2) can control how it receives notifications from applications and delivers them to the user. For example, the notification module can consolidate multiple notifications received from different applications and present the consolidated notifications as a series of panes (or lists) in the notification center. Thus, by accessing the notification center, the user can see a list of recently received notifications. In some cases, the notification center may only be accessible when the electronic device is operating in an unlocked state.
[0057] Any preferred method can be used to launch the notification center. For example, a user may launch the notification center by pressing a button on an electronic device. Alternatively, if an electronic device (e.g., electronic device 100 in Figure 1 or system 200 in Figure 2) is one in which a predetermined set of functions are operated via a touchscreen and / or touchpad (e.g., touch I / O device 212), a user may launch the notification center by touching or touching an image on the touchscreen.
[0058] For example, referring to Figure 5, a display screen 500 of the home screen of an electronic device is shown. The display screen 500 may be the same as the touch I / O device 212 in Figure 2, or it may be able to interact with the touch I / O device 212. The display screen 500 may contain multiple selectable icons 502.
[0059] The notification module may be configured to accept multiple gestures to launch the notification center. For example, a user can perform a gross swipe gesture by quickly flicking one or more fingers downwards from the top of the screen. Alternatively, a user can slowly drag one or more fingers downwards from the top of the screen.
[0060] The notification module can detect user swipes or drags in a specific area of screen 500 (for example, the top 20 pixels of screen 500). Specifically, when the notification module detects movement in multiple pixels within the 20-pixel area, it can initiate the display of the notification center.
[0061] In some embodiments, the notification module can display the notification center in the same manner, regardless of how the user activates the notification center. In other embodiments, the notification module may respond differently to gestures made by the user. For example, if the user performs a gross swipe gesture, the notification module may immediately pull down the notification center to the bottom of the screen 500. Alternatively, if the user slowly drags one or more fingers downwards, the notification module may pull down the notification center to the top of the screen 500 in real time.
[0062] In some cases, a visual indicator may be displayed at the top of the display screen 500 to indicate the presence of the notification center. In other embodiments (and as shown on the display screen 500), a visual indicator of the presence of the notification center may not be necessary. Doing so avoids distracting the user while using the electronic device and saves valuable screen space.
[0063] Those skilled in the art will understand that the notification center can be accessed from any suitable portion of the display screen 500 (e.g., the right, left, or bottom of the display screen 500) instead of the top of the display screen 500. Furthermore, the notification module may allow the user to specify which portion of the display screen 500 is used to launch the notification center.
[0064] Those skilled in the art will also understand that although Figure 5 shows the home screen, it is possible to launch the notification center at any preferred time. In particular, the notification center may be launched when the device is displaying a specific application.
[0065] Figures 6A to 6E show the display screen of the notification center of an electronic device. Those skilled in the art will understand that although the notification center is shown in Figures 6A to 6E when the electronic device is operating in portrait mode, the notification center can also be displayed when the electronic device is operating in landscape mode.
[0066] First, referring to Figure 6A, in response to the user dragging one or more fingers downwards from the top of the display screen 600, the notification module can pull down the notification center 602 towards the bottom of the display screen 600. The notification center 602 may contain tabs 604 at the bottom.
[0067] In some cases, in order to remove the notification center 602 from the display screen 600, the user may need to drag the notification center 602 to the top of the display screen and off-screen. Persons skilled in the art will understand that any other suitable method (e.g., pressing a home or on / off button) may be used to remove the notification center 602 from the display screen 600.
[0068] Next, Figure 6B shows the notification center 602 fully pulled down to the bottom of the display screen 606. The notification center 602 can contain one or more panes, each of which can contain widgets representing different applications on the electronic device. For example, the notification center 602 may contain a weather pane 608, a stock pane 610, a social network pane 612, and an email main pane 614.
[0069] The notification center 602 may be scrollable so that the user can touch and drag the notification center 602 up or down to see fewer or more notifications. In some embodiments, only a predetermined portion of the notification center 602 may be scrollable. As a result, one or more panes (e.g., the weather pane 608 and the stock pane 612) may remain fixed, while other panes are scrollable.
[0070] The weather pane 608 can display the weather for the electronic device's current location. Alternatively, the weather pane 608 may display the weather for any default location specified by the user. The user may touch the weather pane 608 to open the device's weather application. Furthermore, the user may swipe the weather pane 608 left or right to view the weather for a different city.
[0071] The stock pane 610 may include, for example, a scrollable stock ticker that scrolls from right to left independently of user interaction. The user may also be able to drag the stock pane 610 left or right to view other hidden or partially visible stocks. In some cases, the user may select any one of the stock tickers (e.g., one of stock tickers 617-619) by touching it. In response to the user's selection, the notification module may open a stock widget. The stock widget may be based on the contextually selected stock ticker (for example, the stock widget may display detailed stock information corresponding to the selected company).
[0072] The user may select (for example, touch) any pane in the notification center 602 to access the application associated with that pane. For example, in response to the user selecting the social network pane 612, the notification module can provide the user with a social network application.
[0073] Each of the panes 608-614 may be associated with an option that allows the user to manually dismiss a notification from that pane. For example, button 616 may allow the user to dismiss a notification from the notification center 602 for pane 612. Specifically, in response to the user selecting button 616, the notification module may display a “Dismiss” button (for example, button 616 may be flipped over to “Dismiss”, enlarged to become a “Dismiss” button, and / or transition to a “Dismiss” button). If the user then selects the “Dismiss” button, the user can manually dismiss one or more notifications from the notification center 602.
[0074] In some cases, button 616 may allow the user to clear all notifications in a particular pane (or application). As a result, the corresponding pane may be removed from the notification center 602. However, when a new notification about that application is received, the pane corresponding to that application may reappear in the notification center 602. Those skilled in the art will understand that even notifications deleted from the notification center 602 are still accessible from the application that generated them. Therefore, if a user wants to view notifications deleted from the notification center 602, they can do so by accessing the corresponding application.
[0075] Some panes, such as panes 612 and 614, may have lists of one or more associated notifications. For example, the social network pane 612 has a list 613 that presents one notification, and the email pane 614 has a list 615 that presents two email notifications. Any number of notifications can be listed as part of the associated lists. Each displayed notification may be selectable, and when selected, that notification opens in the application corresponding to the associated pane. For example, if a user selects the first email notification in list 615, that email opens in the email application for viewing.
[0076] Panes with associated lists may be vertically scrollable (for example, the user can scroll from one pane to the next to view the associated lists). These panes are in contrast to panes 608 and 610, which are horizontally scrollable. The user can scroll from one pane with an associated list to another while keeping panes like 608 and 610 in place. Thus, the user can always scroll horizontally through panes 608 and 610, and vertically through the panes with associated lists.
[0077] Referring to Figure 6C, a display screen 620 is shown showing a notification center 602 which may include a calendar pane 622. The calendar pane 622 can display a list of notifications (e.g., upcoming events) for a predetermined period (e.g., the next 24 hours) in the user's calendar. In some cases, the calendar pane 622 can organize the upcoming events chronologically. For example, the most imminent event can be displayed at the top of the notification list, followed by the next most imminent event, and so on. Alternatively, the most imminent event can be displayed at the bottom of the notification list.
[0078] The calendar pane 622 may be adjusted in real time while an event is in progress. For example, as shown in Figure 6C, notification 621 may include text 623 (40m ago) indicating that the event "Yoga" started 40 minutes ago. The notification module can continuously update text 623 while the event is ongoing.
[0079] In some embodiments, the user can configure a predetermined number of notifications to be displayed for each application. As a result, if the number of displayable notifications exceeds the predetermined number, the notification module can automatically remove notifications from the calendar pane 622. Notification settings for specifying the predetermined number of notifications will be described in more detail with reference to Figures 9E and 9F.
[0080] As shown in Figure 6C, the predetermined number of notifications may be set to 5. Therefore, when a new notification is received, the notification module can automatically remove the notification currently displayed in the calendar pane 622. For example, now referring to Figure 6D, when a new notification 626 is received from the calendar application, the notification module can add the new notification 626 to the top of the calendar pane 622. However, because the number of notifications that can be displayed exceeds the predetermined number of notifications, the notification module can remove notification 628 from the calendar pane 622. In some cases, notification 628 may be associated with the event that has the latest start time compared to other events displayed in the calendar pane 622. Then, when another notification is removed from the calendar pane 622 (for example, when notification 626 is completed or canceled), notification 628 can be returned to the calendar pane 622.
[0081] Once the time for a calendar event has elapsed, one or more notifications corresponding to that event may be automatically removed from the calendar pane 622. For example, if the event "Yoga" lasts for one hour, the notification 621 (Figure 6C) corresponding to "Yoga" may be removed from the calendar pane 622 as soon as the event is complete. For example, as shown in Figure 6E, once the time for the "Yoga" event has elapsed, the notification module can automatically remove notification 621 from the notification center 602. In addition to removing notification 621, the notification module can add a new notification 632 to the calendar pane 622.
[0082] Those skilled in the art will understand that the panes included in Figures 6A to 6E are merely illustrative. Therefore, the notification center 602 may include any suitable pane associated with one or more applications of the device. In some cases, the notification center 602 may include notifications displayed when the device is operating in a locked state. These types of notifications will be described in detail with reference to Figures 8A to 8F.
[0083] Referring to Figures 6F to 6H, several exemplary display screens are shown that illustrate how the Notification Center appears when a user is currently actively participating in a third-party application such as a game. In Figure 6F, display screen 640 shows an actively running third-party application, such as a game. While participating in an active third-party application, the user can access the Notification Center according to one embodiment of the present invention. The user first swipes their finger downwards from the top of the screen so that tab 654 appears on screen 650 in Figure 6G. Once tab 654 is displayed, the user places their finger on tab 654 and drags it downwards, as partially shown on screen 660 in Figure 6H, so that the Notification Center 662 appears. When the user drags tab 654 to the bottom of screen 660, the entire Notification Center 662 is displayed.
[0084] In some embodiments, while the electronic device is operating in an unlocked state, the notification module can display one or more banners that can respond to notifications received from various applications. The notification module can, for example, rotate the banners on the display screen.
[0085] If the user does not select the banner within a specified time (e.g., 5 or 6 seconds), the notification module can remove the banner from the display screen. For example, the banner may be rotated off-screen. Alternatively, the user can push the banner away by swiping or pushing it back.
[0086] In some embodiments, if the notification module receives two or more banners almost simultaneously, those banners may be rotated on the display screen at the same time. That is, multiple banners may be rotated on the display screen simultaneously. Alternatively, to minimize user distraction, the notification module may adjust the timing of banner display so that only one banner is displayed at a time.
[0087] Those skilled in the art will understand that any suitable visual method may be used to display the banner. For example, the banner may scroll across the display screen, bounce up / down, or flutter into the display screen. Furthermore, the banner may be removed in a similar manner. The notification module may allow the user to specify the permitted display and / or removal methods for the banner.
[0088] In some cases, if a user ignores or removes a banner without accessing it, the notification module may add the notification associated with that banner to the notification center (e.g., notification center 602 in Figures 6A-6E). As a result, if the user subsequently chooses to view the notification center, the notification center can provide the user with all accumulated notifications that the user did not access.
[0089] Referring to Figures 7A to 7E, display screens are shown that illustrate various types of banners that can be displayed on an electronic device. Those skilled in the art will understand that banners can be displayed at any appropriate time while the device is operating in an unlocked state (for example, while the device is displaying the home screen or a specific application). For example, banners may be displayed while the user is playing a video game, accessing a website, changing system settings, or watching a video. Those skilled in the art will understand that while Figures 7A to 7E show banner displays while the electronic device is operating in portrait mode, banners may also be displayed while the electronic device is operating in landscape mode. Those skilled in the art will understand that banners can be displayed in any suitable position on the display screen (for example, on the right, left, top, or bottom). Furthermore, the notification module may allow the user to specify where on the display screen the banner may be displayed.
[0090] First, referring to Figure 7A, a display screen 700 is shown which may include a banner 702. The banner 702 can display recently received notifications (for example, text messages received from the user's address book). As shown in Figure 7A, the banner 702 can be displayed while the user is playing a video game.
[0091] The banner 702 may include an icon 704, text 706, and media 708. The icon 704 may indicate the type of application that generated the notification. The text 706 may include address information and / or one or more parts of the received text message. In some cases, the text 706 may be a shortened version of the full text of the notification (for example, the text 706 may include part of the text or email body). The media 708 may be embedded media associated with the text message (for example, a photo from the address book or a media file attached to the text message).
[0092] In some embodiments, the notification module can detect when a user selects banner 702 (for example, by touching banner 702). In response to the user's selection, the notification module can present the associated notification in the application that generated the notification. For example, in response to the user selecting banner 702, the notification module can display a specific text message corresponding to banner 702 in a text messaging application.
[0093] In some embodiments, the user may drag banner 702 downwards to view other notifications associated with the application. Alternatively, depending on whether the user has dragged banner 702 downwards, the notification module may display a notification center. For example, the notification module may display a portion of the notification center that contains the application panel associated with banner 702. As another example, the notification module may display a portion of the notification center that centers on its text message.
[0094] Referring to Figure 7B, a display screen 710 is shown which may include a banner 710. The banner 710 may include media 712, which may be video attached to the notice. Those skilled in the art will understand that the media 712 may display any suitable media, such as still images, videos, audio files, maps, electronic business cards, etc.
[0095] Furthermore, banner 710 may include text 713 indicating that the notification is associated with multiple still images and videos, but not with text. Specifically, text 713 could indicate that there are two attachments in addition to media 712. Therefore, text 713 may vary depending on the number of attachments not displayed in banner 710.
[0096] Figure 7C shows a display screen 716 which may include a banner 718. The banner 718 may include a map 720 which can be generated based on a notification associated with a map URL. For example, the map 720 may be a localized map of a location very close to the location associated with the map URL. Furthermore, the map 720 may include pins embedded in a specific location associated with the map URL (e.g., the location of a restaurant or a movie theater).
[0097] Referring to Figure 7D, a display screen 722 is shown which may include a banner 724. The banner 724 may be a combined banner; that is, the banner 724 may be information about multiple notifications being queued for a particular application. For example, as shown in Figure 7D, the banner 724 indicates that there are seven new email notifications for an email application.
[0098] The notification module may generate the merged banner using any other method. For example, the notification module can detect two or more notifications associated with at least one common parameter (e.g., a specific target). Once it detects that two or more notifications are associated with at least one common parameter, the notification module can combine those two or more notifications into a single message in the merged banner. Alternatively, the notification module can shorten (e.g., summarize) those two or more notifications into a single message in the merged banner.
[0099] In some cases, the notification module can simultaneously display multiple combined banners (e.g., groups of banners), each of which may display a single message. These banners indicate that new notifications are queued for multiple applications.
[0100] A notification module can also provide banners based on the occurrence of one or more trigger events (e.g., one or more trigger events based on time or location). For example, if a notification module receives a notification associated with a time-based trigger event (e.g., a reminder to perform a task at a specific time), the notification module can display a banner associated with that event at the start of the event or a predetermined time before its start.
[0101] As another example, in response to receiving a notification associated with a location-based trigger event (e.g., a reminder to buy milk at a grocery store), the notification module may display a banner associated with that event when the electronic device is detected at the location of a grocery store. In some embodiments, these alarm banners may include a “snooze” button that allows the user to stop the alarm for a predetermined time.
[0102] Banners displayed on electronic devices may be discreet. That is, banners may not interfere with user access to overlapping control areas on the display screen. For example, referring to Figure 7E, a display screen 726 is shown which may include a banner 728. The banner 728 may be superimposed on the Notifications button 730. Because the banner 728 is a discreet banner, the user can still press the Notifications button 730 even while the banner 728 is positioned on top of the Notifications button 730. In some embodiments, one or more visual cues may be further displayed to indicate to the user that the Notifications button 730 is still selectable even with the banner 728 superimposed.
[0103] In some embodiments, the notification module can control how the electronic device displays notifications when it is locked (e.g., when the electronic device is not in use). Specifically, when the device is operating in a locked state, it may receive one or more notifications from various applications. Specifically, the electronic device may receive one or more push events (e.g., phone calls, voicemails, emails, or third-party push events) or device alerts (e.g., reminders or alarms).
[0104] In response to receiving a notification, the electronic device can wake up (for example, the processor can wake up the graphics module), and the notification module can display the received notification on a display screen. In some cases, the notification may be displayed as a large-format notification. Figures 8A to 8F show display screens illustrating various types of notifications that can be displayed while the electronic device is operating in a locked state.
[0105] First, referring to Figure 8A, a display screen 800 is shown which may contain a notification 802. The notification 802 may be displayed after being received from a third-party application while the electronic device is operating in a locked state. Specifically, the notification 802 may include an icon 804 indicating the application that generated the notification 802. Furthermore, the notification 802 may include text 806 which can provide the associated text or a portion of the text received from the application.
[0106] Upon viewing notification 802, the user can choose to jump directly to the message associated with notification 802. For example, the user can access notification 802 by tapping and holding the notification. In response to user interaction, the notification module can display a slider on the display screen (for example, by flipping the notification over) (for example, by animating notification 802). Referring to Figure 8B, for example, a display screen 808 is shown which may include a slider 810 that may be embedded as a component on the back of notification 802. The user may operate the slider 810 by dragging the slider button 812 in a specific direction (for example, to the right).
[0107] When the notification module detects that the slider 810 has been operated, it can directly unlock the electronic device. After unlocking the device, the notification module can present the notification in the application that generated it. In some cases, even if the electronic device has received multiple notifications from a particular application, the notification module can ignore the other notifications and present the specific notification that the user has explicitly requested.
[0108] Referring to Figure 8C, a display screen 814 is shown which may include a notification 816. The notification 816 may be displayed in response to an image text message received by an electronic device. In particular, the notification 816 may include an embedded image 818. Furthermore, the notification 816 may include text 819 that provides identification information of the sender of the text message. Furthermore, the notification 816 may include text 820 that may be accompanying the image. As shown in Figure 8C, the image 818 may be displayed prominently within the notification 816 (for example, the image 818 may be enlarged in comparison to the texts 819 and 820).
[0109] Similar to Figures 8A and 8B, when the user makes a selection to access notification 816 (for example, by tapping and holding notification 816), the notification module can display a slider. When the user manipulates the slider by dragging it, the notification module can unlock the device and directly provide image 818 to the user (for example, by displaying image 818 in the image viewer of a chat application).
[0110] Those skilled in the art will understand that a notification module may display any preferred type of media within a notification. For example, a notification may include one or more audio, one or more electronic business cards, one or more video, and one or more map URLs (for example, the notification module may display a map of the location of that URL). Furthermore, similar to combined banners, a notification module may display in a single notification the combined information of multiple notifications that are queued for a particular application.
[0111] Furthermore, notifications may be displayed in response to one or more trigger events (e.g., time-based or location-based trigger events). For example, in response to receiving a notification associated with a location-based trigger event, the notification module may display the notification associated with that event when the electronic device is detected at the location of that trigger event.
[0112] As another example, when a notification module receives a notification associated with a time-based trigger event, the notification module may display the notification associated with that event at the start of the event or a predetermined time before its start. For example, referring to Figure 8D, a display screen 822 is shown along with a notification 824. The notification 824 may include text 826 that indicates the notification 824 was displayed in response to a time-based trigger event (e.g., an alarm). Furthermore, text 826 may provide a description of the alarm.
[0113] The notification 824 may further include a "Snooze" button 828. In response to the user's selection of the "Snooze" button 828, the notification module can suspend the alarm for a predetermined period. This feature allows the user to control the alarm without unlocking the electronic device.
[0114] Display screens 800 (Figure 8A), 808 (Figure 8B), 814 (Figure 8C), and 822 (Figure 8D) may include pull-down options 830 positioned above the displayed notification. Those skilled in the art will understand that although the pull-down options 830 are shown above the notification in Figures 8A to 8D, the pull-down options 830 can be positioned in any suitable location on the display screen (e.g., left, right, or bottom of the display screen). In addition, when the electronic device is in sleep mode, the pull-down options 830 may be made visible to the user by pressing a button on the electronic device (e.g., an on / off button and / or a home button).
[0115] The pull-down option 830 allows the user to view previously received notifications (for example, all notifications received while the electronic device was operating in a locked state). The user can select the pull-down option 830 by dragging it downwards on the display screen.
[0116] Referring to Figure 8E, a display screen 832 is shown showing a notification list 834, which may be a list of notifications received in the past. Specifically, when each notification in the notification list 834 is first received, it may be displayed as a large-format notification (for example, as shown in Figures 8A to 8D). However, because the user did not respond to the notification, it was added to the notification list 834 as a separate element. In some embodiments, the initial display of a notification in lock mode can be larger than when the same notification is displayed in the notification list 834. For example, notifications 802 (Figure 8B), 816 (Figure 8C), and 824 (Figure 8D) can be larger than elements 835, 837, and 838, respectively. That is, elements 835, 837, and 838 may be displayed in a smaller format.
[0117] The elements of the notification list 834 may be stacked on top of each other. For example, a notification module can display multiple text messages received by an electronic device as individual elements of the notification list 834.
[0118] In some embodiments, the notification list 834 may be arranged based on the time each notification was received (for example, based on chronological order). That is, the most recent received notification can be added to the top of the notification list 834. Alternatively, the most recent received notification can be added to the bottom of the notification list 834. For example, as shown in Figure 8E, the notification list 834 is arranged chronologically such that the most recent notification is at the top of the list 834.
[0119] In another embodiment, the notification list 834 may be arranged based on user-selected parameters. For example, the user can specify which application notifications should appear first, second, third, ... Based on the user-selected parameters, the notification module can sort the received notifications. For example, notifications corresponding to each application can be grouped first, and then the applications can be arranged in a predetermined order. For example, notifications corresponding to voicemail can be listed first, notifications corresponding to email can be listed second, notifications corresponding to text messages can be listed third, and so on. The user's choice of how to arrange the notification list 834 will be described in more detail with reference to Figure 9B.
[0120] The notification list 834 may be scrollable. Specifically, the area 836 of the display screen 832 may be configured to be scrollable so that the notification list 834 can move up or down when the user swipes or drags a portion of the area 830. As a result, the notification list 834 has the ability to display a large number of notifications (for example, all notifications received while the device is operating in a locked state). In some embodiments, the notification list may be displayed automatically regardless of whether the pull-down option 830 is displayed and operated by the user.
[0121] Furthermore, each notification in notification list 834 may be individually accessible. For example, each notification may be associated with an individual slider. As described above, a user can choose to access a notification in notification list 834 by tapping and holding down the notification. For example, a user can tap and hold notification 838, and in response to this user action, the notification may display a slider in notification list 834 (for example, by flipping notification 838).
[0122] Referring to Figure 8F, the display screen 840 shows the notification list 834 along with the back of the notification 838. In particular, the notification 838 may include a slider 842. Similar to the slider 810 (Figure 8B), the slider 842 may be embedded in the notification 838. The user may operate the slider 842 by dragging the slider button 844 in one direction (for example, to the right on the display screen 840).
[0123] When slider 842 is operated, the notification module can detect that slider 844 has been operated, and the notification module can unlock the electronic device. After the device is unlocked, the notification module can present the notification in the application that generated the notification.
[0124] In some embodiments, the user may choose to unlock the device. For example, the user may choose to unlock the device by pressing a button (e.g., an on / off button or a home button) or by sliding the “unlock” slider 846. In response to the user's action, the notification module may display a notification center on the display screen (e.g., similar to the notification center 602 in Figures 6A–6E). In another embodiment, in response to the user unlocking the device, the notification module may not display the notification center until the user explicitly launches it. In some embodiments, the “unlock” slider 846 (or other user input unlock area) may contain context-dependent text that changes based on when the notification was received. For example, if an email is received and displayed in the notification list 834, the text is “Slide to read.” As another example, if a reminder notification is received, the text may be “Slide to view.”
[0125] In some cases, the notification module may allow the user to specify privacy settings. Therefore, if the user turns on privacy settings, one or more notifications or types of notifications (e.g., notifications associated with text messages) received while the device is locked will not be displayed as long as the device remains locked. Then, when the user chooses to unlock the device, the notification module can display the received notifications in one or more banners (e.g., similar to the banners in Figures 7A-7E).
[0126] As mentioned above, users will have varying preferences regarding how notifications are displayed, so electronic devices should allow users to customize their notification settings. Specifically, users should be able to customize notification settings for both the locked state (e.g., notifications) and the unlocked state (e.g., notification center and banners).
[0127] Returning to Figure 5, the display screen 500 may include a "Settings" option 504. Specifically, a user may select the "Settings" option 504 to change one or more settings of the electronic device. Thus, depending on the user's selection of the "Settings" option 504, the electronic device can provide a display screen that allows the user to change system settings. For example, Figures 9A to 9F show display screens related to customizing notification settings.
[0128] First, referring to Figure 9A, we see a display screen 900 that includes a settings list 902 which may be displayed after the user selects the "Settings" option 504 (Figure 5). The settings list 902 may include the "Notifications" option 904. The user may select the "Notifications" option 904 (for example, by tapping the "Notifications" option 904) to access and change one or more notification settings.
[0129] In response to detection that the user has selected the “Notification” option 904, the electronic device may provide one or more notification settings on its display screen. These notification settings may allow the user to change one or more banner options or notification center options (for example, when the electronic device is unlocked) or one or more notification options (for example, when the electronic device is locked). For example, Figure 9B shows a display screen 906 that may contain multiple notification settings.
[0130] For example, the display screen 906 may include a manual sorting option 908 and an automatic sorting option 910. The sorting options 908 and 910 are user-selectable parameters that allow specifying the order in which notifications are displayed in one or more contexts, such as a notification list (e.g., the notification list 834 in Figures 8E and 8F).
[0131] When the user selects sorting option 908, the notification module (for example, notification module 238 in Figure 2) can allow the user to manually specify the order in which notifications appear in the notification list (for example, by providing the user with an option). In other words, the user can specify which application's notifications should appear first, second, (and so on). Based on the user's selection of sorting option 908, the notification module can sort the received notifications in the order specified by the user.
[0132] In some embodiments, the order in which applications are sorted may correspond to the order in which applications are listed in the “In Notification Center” group 911. In another embodiment, the electronic device may display another display screen (not shown) that allows the user to specify the order in which applications are sorted.
[0133] When a notification module categorizes notifications into groups based on the corresponding applications, the notifications can be assigned a predetermined order to each group. For example, for each group, the notification module can arrange the associated notifications based on the time each notification was received (e.g., chronologically). Those skilled in the art will understand that other predetermined orders can be used instead.
[0134] In contrast, if the user selects sorting option 910, the notification module can assign a predetermined order to display notifications in the notification list. Specifically, the notification module can arrange received notifications based on the time each notification was received (for example, based on chronological order). That is, the most recent received notification can be added to the top (or bottom) of the notification list. When a newer notification is received, the top notification may be pushed down in the notification list.
[0135] The display screen 906 may further include an option 912 that allows the user to specify which applications to display in the notification center (e.g., the notification center 602 in Figures 6A to 6E). As shown in the display screen 906, option 912 may include multiple interactive lists (e.g., a "Include in Notification Center" group 911 and a "Do not include in Notification Center" group 913). Notifications for applications included in the "Include in Notification Center" group 911 will be displayed in the notification center. On the other hand, notifications for applications included in the "Do not include in Notification Center" group 913 will be excluded from the notification center.
[0136] Users can specify which applications to include in the notification center using any and their preferred method. For example, a user may select the "Edit" option 914 and manually adjust option 912. When a user selects the "Edit" option 914, the electronic device may provide a display screen that allows the user to manually move applications to and from groups 911 and 913.
[0137] Referring to Figure 9C, a display screen 920 may be shown depending on whether the user has selected the "Edit" option 914 (Figure 9B). As shown in display screen 920, the user can move option 912 to / from the "In Notification Center" group 911 and the "Not In Notification Center" group 913, respectively. For example, the user can tap option 922 and drag it from the "Not In Notification Center" group 913 to the "In Notification Center" group 911.
[0138] Figure 9D shows a display screen 924 that may be displayed when option 922 is moved to the bottom of the “Include in Notification Center” group 911. In some cases, the order in which applications are arranged within the “Include in Notification Center” group 911 may determine the order in which application panes are displayed within the Notification Center. For example, based on the “Include in Notification Center” group 911 in Figure 9D, the Notification Center may include the weather panel at the top, followed by the mail panel, and so on. Thus, the user may adjust the order in which application panes are displayed in the Notification Center by moving each option 922, 926, 928, or 930 up or down (for example, by tapping and dragging each option).
[0139] Once the user has finished editing which applications should appear in the notification center, they can select the "Done" option 932. After the user makes this selection, the electronic device can return to a display screen similar to the display screen 906 in Figure 9B.
[0140] As another example, the user may specify which applications should appear in the notification center by tapping an option within option 912. For example, referring to Figure 9B, the user can select the "Mail" option 916. In response to the user's selection, the electronic device may provide a detailed screen of display options for the "Mail" application.
[0141] Referring to Figure 9E, a display screen 940 is shown that can provide a detailed screen of display options for the "Mail" application. The display screen 940 may include a switch 941 that allows the user to specify whether or not to include notifications received from the "Mail" application in the Notification Center. Specifically, if the user sets the switch 941 to "ON", notifications received from the "Mail" application will be displayed in the Notification Center. On the other hand, if the user sets the switch 941 to "OFF", notifications received from the "Mail" application will not be displayed in the Notification Center.
[0142] If notifications from a particular application are selected to be included in the Notification Center, the user may specify a predetermined number of notifications that should be displayed for that application by selecting the “Show” option 942.
[0143] Referring to Figure 9F, the electronic device may provide a display screen 950 that may be displayed in response to the user selecting the “Display” option 942. The display screen 950 may include an option list 952. The options included in the option list 952 may allow the user to specify a different number (e.g., 1, 5, 10) of notifications for an application to be displayed in the notification center. For example, if the user selects option 954, the application pane corresponding to the mail application (e.g., application pane 614 in Figure 6B) may display up to 10 notifications. In some cases, a higher number may be set for some applications (e.g., email and social networking applications) and a lower number for others (e.g., weather applications) based on the frequency of updates.
[0144] Those skilled in the art will understand that the options provided in Option List 952 are merely illustrative. Specifically, the electronic device may instead provide one or more options that allow the user to specify any predetermined number of notifications (e.g., 1, 5, 10, 20, or more).
[0145] Based on a predetermined number of notifications, if the number of displayable notifications exceeds a predetermined number, the notification module can automatically remove notifications from the application pane (as shown, for example, in Figures 6C and 6D). Because the notification module can automatically remove one or more notifications that exceed a predetermined number, it can provide a concise presentation of notifications in the notification center. Furthermore, this method is convenient for the user because the user does not need to clear notifications from the notification center (for example, by selecting button 616 in Figure 6B).
[0146] Returning to Figure 9E, the display screen 940 may further include an option 943 (View in Lock Screen) that allows the user to choose whether to display notifications associated with the application when the electronic device is operating in a locked state (for example, on the display screens in Figures 8A to 8F). In some embodiments, the user can select option 943. That is, option 943 may be "OFF" by default so that notifications received while the electronic device is locked are not displayed until the lock state is unlocked.
[0147] This setting has advantages because it allows users to customize how notifications are displayed from a privacy perspective. For example, a user might not want new email messages to appear on the screen while their electronic device is locked. However, once the user unlocks their electronic device, they might want to be able to view received email messages by launching the notification center or through one or more banners. However, if the user chooses to set option 943 to "ON," the notification module can immediately display any new notifications received, even while the electronic device is locked.
[0148] Option 944 allows the user to specify how notifications should be displayed when the electronic device is operating in an unlocked state. For example, option 944 could include "None" option 945, "Banners" option 946, and "Alerts" option 947.
[0149] If the user selects the "None" option 945, the notification module can stop providing visual notifications for a particular application. However, notifications may still appear in the notification center. Alternatively, if the user selects the "Banner" option 946, the notification module can display received notifications on the screen as one or more banners (for example, the banners shown in Figures 7A to 7E). For example, a user might select the "Banner" option 946 if a particular application sends important but frequently generated notifications.
[0150] If the user selects the "Warning" option 947, the notification module can display the received notification as a message requiring a user response (for example, the user may be prompted to select either the "Dismiss" or "View" option depending on the type of application).
[0151] The display screen 940 may further include a “Show Application Icon Badge” option 948 that indicates whether or not to display an image of the application on the banner corresponding to the received notification. For example, if the “Show Application Icon Badge” option 948 is set to “ON”, the notification module can display an icon representing the application that generated the notification (e.g., icon 704 in Figure 7A). If the “Show Application Icon Badge” option 948 is set to “OFF”, the notification module will not display an icon on the banner corresponding to the application. A person skilled in the art will understand that the “Show Application Icon Badge” option may also allow the notification module to add any other visual decoration to the banner in addition to, or instead of, the image of the application.
[0152] The "Sounds" option 949 indicates whether to allow sound to be played when notifications about that application are received. If the "Sounds" option 949 is set to "OFF", no sound will be played when a notification about that application is received. On the other hand, if the "Sounds" option 949 is set to "ON", the notification can play an audible alert when a new notification about that application is received. As a result, even if the "None" option 945 is selected for a particular application (for example, even if there are no visual notifications), the user can still hear an audible alert when a new notification about that application is received. As a result of hearing the audible alert, the user can choose to launch the notification center later to access the notification. Persons skilled in the art will understand that the notification settings considered in Figures 9A to 9F are merely examples and that any other suitable notification settings can be customized.
[0153] As described above, the notification module may be implemented in any suitable electronic device. For example, the notification module may be implemented in an electronic device having a large display and / or touchscreen (e.g., touch I / O device 212 in Figure 2). In such embodiments, the notification center does not have to fill the entire screen, as in embodiments in smaller devices.
[0154] For example, referring to Figures 10A to 10C, display screens for electronic devices with large displays are shown. First, referring to Figure 10A, the display screen 1000 shows that the notification center 1002 does not fill the entire display screen 1000.
[0155] Furthermore, for devices with large displays, the notification module may display a visual indicator when the notification center does not contain any new notifications. For example, as shown in the display screen 1004 of Figure 10B, the notification module may indicate that the notification center 1002 does not currently contain any new notifications. Those skilled in the art will understand that such indicators may also be provided in electronic devices with smaller displays.
[0156] Referring to Figure 10C, the display screen 1006 shows the type of notification that may be displayed when an electronic device with a large screen is locked and in landscape mode. Therefore, in contrast to Figures 8A to 8F, newly received notifications are not initially displayed on the display screen as large individual notifications. Rather, new notifications are displayed in a scrollable notification list 1008. As a result, the notification module would not need to display pull-down options such as the pull-down options 830 in Figures 8A to 8D. Those skilled in the art will understand that the notification list 1008 may also be displayed when the electronic device is in portrait mode.
[0157] A person skilled in the art will understand that each of the notices in Notice List 1008 may have similar characteristics to the notices in Notice List 834 (Figures 8E and 8F). In addition, a person skilled in the art will understand that the display screens shown in Figures 10A to 10C are only one embodiment of the notification center. Accordingly, a notification module implemented in an electronic device equipped with a large display can display the notice in any suitable manner (similar to the methods of presenting the notices shown in Figures 6A to 6E, 7A to 7E, 8A to 8F, and 9A to 9F, for example).
[0158] Figures 11 to 14 show flowcharts of exemplary processes according to several embodiments of the present invention. These processes may be performed by one or more components of an electronic device (e.g., device 100 in Figure 1 or system 200 in Figure 2). For example, at least some of the steps in the processes of Figures 11 to 14 may be performed by a notification module (e.g., notification module 238 in Figure 2). Furthermore, those skilled in the art will understand that some of the steps may be performed in conjunction with a touch processing module (e.g., touch processing module 226 in Figure 2) and / or a graphics module (e.g., graphics module 228 in Figure 2).
[0159] First, referring to Figure 11, we see a process 1100 for displaying a pull-down option in response to receiving multiple notifications. Process 1100 may begin in step 1102, and in step 1104, the notification module can receive multiple notifications from at least one application.
[0160] Then, in step 1106, the notification module can detect that the electronic device is operating in a locked state. In the next step 1108, the notification module can provide pull-down options associated with multiple notifications (for example, pull-down option 830 in Figures 8A-8D). Furthermore, the notification module can provide further notifications on the display screen (for example, notification 802 in Figures 8A and 8B, notification 816 in Figure 8C, and notification 824 in Figure 8D). This notification may be the most recently received notification.
[0161] After providing the pull-down options, process 1100 may proceed to step 1110. In step 1110, the notification module can determine that the user has selected a pull-down option. Then, in step 1112, the notification module may provide a list of multiple notifications (e.g., the notification list 834 in Figures 8E and 8F). Then, process 1110 may end in step 1114.
[0162] Figure 12 shows a process 1200 for displaying a notification center. Process 1200 may begin in step 1202, and in step 1204 the notification module may receive multiple notifications, including at least one of push-based notifications (e.g., notifications from non-third-party or third-party applications) and trigger-based notifications (e.g., alarms or reminders).
[0163] Then, in step 1206, the notification module can detect that the electronic device is in an unlocked state. After detecting that the electronic device is in an unlocked state, process 1200 may proceed to step 1208.
[0164] In step 1208, the notification module can detect that the user has chosen to access the notification center. For example, the notification module can detect that the user has performed a gross swipe gesture (for example, by quickly flicking one or more fingers from the top of the screen downwards). As another example, the notification module can detect that the user has slowly dragged one or more fingers from the top of the screen downwards.
[0165] Continuing to step 1210, the notification module can display the notification center. The notification center may contain multiple panes associated with multiple notifications (for example, panes 608-614 in Figure 6B). Then, process 1200 may end in step 1212.
[0166] Figure 13 shows a flowchart of an exemplary process 1300 for providing a banner. Process 1300 may begin in step 1302, and in step 1304, the notification module may receive a notification from at least one application. In step 1306, the notification module may detect that the electronic device is in an unlocked state.
[0167] Proceeding to step 1308, the notification module may provide a banner associated with the notification. This banner allows the user to access at least one control that overlaps with the banner. For example, as shown in Figure 7E, the notification module may provide a banner 728 that overlaps the "Notify" button 730. However, the notification module can still allow the user to access the "Notify" button 730. After providing the banner, method 1300 may end in step 1310.
[0168] Figure 14 shows a flowchart of an exemplary process 1400 for providing notification settings. Process 1400 may begin in step 1402, in step 1404 the notification module may provide an option to change the device notification settings (e.g., the “Notification” option 904 in Figure 9A). Then, in step 1406 the notification module may detect that the user has selected that option.
[0169] Following step 1408, the notification module may provide multiple notification settings. These multiple notification settings may include options associated with one or more of the following: notification order options (e.g., option 912 in Figure 9B), number of notifications options (e.g., option list 952 in Figure 9F), and warning style options (e.g., warning style option 944 in Figure 9E). Then, process 1400 may end in step 1410.
[0170] It should be understood that processes 1100, 1200, 1300, and 1400 in Figures 11 to 14 are merely illustrative. Any of these steps may be removed, modified, or combined without exceeding the scope of the present invention, and any additional steps may be added.
[0171] The embodiments described in this invention are presented for illustrative purposes only and not for limiting purposes.
Claims
1. It is a method, In electronic devices having a display, The first notification having a first appearance is displayed via the aforementioned display, and the first notification corresponds to an application. Detecting a first input that begins at a specific location on the display, wherein the first input includes a drag gesture that begins at the specific location outside the location of the first notification and is occupied by a specific user interface element. A method comprising: in response to the detection of the first input, displaying a second notification having a second appearance different from the first appearance via the display, wherein the second notification corresponds to the first notification.
2. The method according to claim 1, further comprising terminating the display of the first notification having the first appearance in response to the detection of the first input.
3. The method according to claim 1 or 2, wherein the first input includes substantial vertical movement.
4. The first appearance corresponds to the first notification size, The method according to any one of claims 1 to 3, wherein the second appearance corresponds to a second notification size, and the second notification size is smaller than the first notification size.
5. The method according to any one of claims 1 to 4, wherein the second notice having the second appearance is closer to the top edge of the display than the first notice having the first appearance.
6. The first notification having the first appearance includes a first representation of image data, The method according to any one of claims 1 to 5, wherein the second notification having the second appearance includes a second representation of the image data having a different size from the first representation of the image data.
7. The first notice having the first appearance includes a first visual representation corresponding to an audio medium. The method according to any one of claims 1 to 6, wherein the second notice having the second appearance includes a second visual representation corresponding to the audio media, which is different from the first visual representation corresponding to the audio media.
8. To detect a second input corresponding to the second notification having the second appearance, The method according to any one of claims 1 to 7, further comprising: detecting the detection of the second input corresponding to the second notification having the second appearance, and displaying a user interface corresponding to the second notification in the application corresponding to the first notification.
9. The method according to any one of claims 1 to 8, wherein displaying the first notice having the first appearance includes displaying one or more affordances corresponding to the application.
10. While the aforementioned electronic device is in the locked state, To detect a third input corresponding to one or more of the aforementioned affordances, The method according to claim 9, further comprising detecting the third input corresponding to one or more affordances and performing a specific action corresponding to the first notification.
11. A computer program that causes a computer to perform the method described in any one of claims 1 to 10.
12. It is an electronic device, A memory for storing the computer program described in claim 11, An electronic device having one or more processors capable of executing the computer program stored in the memory, wherein the electronic device is configured to communicate with a display.
13. An electronic device configured to communicate with a display, An electronic device having means for performing the method described in any one of claims 1 to 10.