HK1192781B - Systems and methods for displaying notifications received from multiple applications - Google Patents
Systems and methods for displaying notifications received from multiple applications Download PDFInfo
- Publication number
- HK1192781B HK1192781B HK14105972.5A HK14105972A HK1192781B HK 1192781 B HK1192781 B HK 1192781B HK 14105972 A HK14105972 A HK 14105972A HK 1192781 B HK1192781 B HK 1192781B
- Authority
- HK
- Hong Kong
- Prior art keywords
- notification
- notifications
- user
- electronic device
- display
- Prior art date
Links
Abstract
Systems and methods are disclosed for displaying notifications received from multiple applications. In some embodiments, an electronic device can monitor notifications that are received from the multiple applications. Responsive to receiving the notifications, the electronic device can control the manner in which the notifications are displayed while the device is operating in a locked or an unlocked state. In some embodiments, the electronic device can allow users to customize how notifications are to be displayed while the device is in the locked and/or unlocked states.
Description
Technical Field
The disclosed embodiments relate generally to electronic devices and, more particularly, to electronic devices that display notifications received from multiple applications.
Background
Portable electronic devices today are capable of integrating a variety of functionalities. These devices are capable of running multiple applications. In particular, some of these applications may generate trigger events that may cause the display of notifications.
Because electronic devices may include many applications, the potential for application-based notifications can become cumbersome, especially if the user is required to individually access each application to view application-specific notifications. What is needed, therefore, is a more efficient and intuitive way to organize notifications and provide users with immediate access to those notifications.
Disclosure of Invention
Systems and methods for displaying notifications received from multiple applications are disclosed. An electronic device may have a touch-sensitive input/output ("I/O") device (e.g., a touch screen) equipped with a graphical user interface ("GUI"), one or more processors, memory, and one or more modules, programs, or sets of instructions stored in the memory for performing a plurality of functions.
In particular, the electronic device may include a notification module that may interface with one or more application programming interfaces ("APIs") to generate various types of notifications while the device is in a locked state or an unlocked state. Further, the notification module may provide options to customize the notification settings.
In some implementations, the notification module can monitor notifications received from multiple applications. In response to receiving the notification, the notification module may control a manner in which the notification is displayed while the electronic device is operating in the locked or unlocked state. In some implementations, the electronic device can allow a user to customize how notifications are displayed when the device is in a locked and/or unlocked state.
In some implementations, the notification module can display a pull-down option when the device is operating in the locked state, which can allow the user to view previously received notifications. In some implementations, the notification module can aggregate received notifications and can provide the aggregated notifications as a plurality of panes (panes) in a notification center. Thus, each pane of the notification center can be associated with a different application. In addition, the notification module can display a flag corresponding to one or more notifications received from different applications.
One or more APIs that interface with the notification module may be in an environment that calls program code to interact with another program code being called through one or more interfaces. Various function calls, messages, or other types of calls (which may further include various types of parameters) may be passed between the caller and the code being called via the API. In addition, the API may provide the calling program code with the ability to use the data types or classes defined in the API and implemented in the called program code.
At least some embodiments include an environment in which calling software components interact with called software components through an API. A method for operating through an API in this environment includes passing one or more function calls, messages, and/or other types of calls or parameters through the API.
Drawings
The above aspects and advantages and other aspects and advantages of the present invention will become more apparent from the following detailed description when considered in conjunction with the accompanying drawings; like reference characters refer to like parts throughout the drawings, and wherein:
FIGS. 1 and 2 are block diagrams of electronic devices configured in accordance with various embodiments of the invention;
FIGS. 3 and 4 are block diagrams of an application programming interface ("API") architecture according to various embodiments of the present invention;
FIG. 5 is a display screen associated with a home screen of an electronic device in accordance with various embodiments of the present invention;
6A-6E are display screens associated with an illustrative notification center according to various embodiments of the invention;
6F-6H are display screens associated with an illustrative notification center according to various embodiments of the invention;
FIGS. 7A-7E are display screens associated with illustrative flags according to various embodiments of the invention;
8A-8F are display screens associated with displaying notifications when an electronic device is operating in a locked state, in accordance with various embodiments of the present invention;
9A-9F are display screens associated with customizing notification settings, according to various embodiments of the present invention;
10A-10C are display screens associated with notifications according to various embodiments of the present invention;
FIG. 11 is a flow diagram of an illustrative process for displaying a drop down option in response to receiving multiple notifications in accordance with various embodiments of the invention;
FIG. 12 is a flow diagram of an illustrative process for displaying a notification center in accordance with various embodiments of the invention;
FIG. 13 is a flow chart of an illustrative process to provide a flag in accordance with various embodiments of the invention;
FIG. 14 is a flow diagram of an illustrative process for providing notification settings in accordance with various embodiments of the invention.
Detailed Description
Systems and methods are provided for displaying notifications received from multiple applications.
FIG. 1 illustrates a block diagram of an electronic device 100, the electronic device 100 including a touch I/O device 102, the touch I/O device 102 being receptive to touch input for interacting with a computing system 104 via a wired or wireless communication channel 106. Touch I/O device 102 may be used to provide user input to computing system 104 in place of or in combination with other input devices, such as a keyboard, mouse, and the like. One or more touch I/O devices 102 can be used to provide user input to computing system 104. The touch I/O device 102 may be an integral part of the computing system 104 (e.g., a touch screen on a laptop computer), or may be separate from the computing system 104.
Touch I/O device 102 may include a touch sensitive panel that is transparent, translucent, non-transparent, opaque, or any combination thereof, in whole or in part. The touch I/O device 102 may be embodied as a touchscreen, touchpad, touchscreen functioning as a touchpad (e.g., a touchscreen that replaces the touchpad of a laptop computer), touchscreen or touchpad in conjunction with or incorporating any other input device (e.g., a touchscreen or touchpad disposed on a keyboard), or any multi-dimensional object having a touch-sensitive surface for receiving touch input.
In one example, touch I/O device 102 embodied as a touchscreen may include a transparent and/or translucent touch sensitive panel positioned partially or completely over at least a portion of a display. According to this embodiment, touch I/O device 102 is used to display graphical data transmitted from computing system 104 (and/or another source) and is also used to receive user input. In other embodiments, touch I/O device 102 may be embodied as an integrated touch screen, where the touch sensitive component/device is integral with the display component/device. In other embodiments, the touch screen may be used as a supplemental or additional display screen for displaying supplemental graphical data or the same graphical data as the main display, as well as receiving touch input.
Touch I/O device 102 may be configured to detect the location of one or more touches or near touches on device 102 based on capacitive, resistive, optical, acoustic, inductive, mechanical, chemical measurements, or any phenomenon that may be measured with respect to the occurrence of one or more touches or near touches near device 102. The measurements of the detected touches may be processed using software, hardware, firmware, or any combination thereof to identify and track one or more gestures. The gesture may correspond to a stationary or non-stationary, single or multiple touches or an approximate touch on touch I/O device 102. Gestures may be performed by moving one or more fingers or other objects in a particular manner on touch I/O device 102, such as tapping, pressing, rocking, swiping, twisting, changing direction, pressing with varying pressure, substantially simultaneously, continuously, sequentially. The gesture may be characterized as, but is not limited to: pinching, sliding, wiping, rotating, flexing, dragging or tapping with or with any other finger or fingers. A single gesture may be performed with one or more hands, by one or more users, or any combination thereof.
The computing system 104 may use the graphical data to drive a display to display a Graphical User Interface (GUI). The GUI may be configured for touch input via touch I/O device 102. Touch I/O device 102 embodied as a touch screen may display a GUI. Alternatively, the GUI may be displayed on a display separate from the touch I/O device 102. The GUI may include graphical elements displayed at specific locations within the interface. The graphical elements may include, but are not limited to, a variety of displayed virtual input devices, including virtual scroll wheels, virtual keyboards, virtual knobs, virtual buttons, any virtual UI, and the like. The user may perform a gesture at one or more particular locations on touch I/O device 102 that may be associated with a graphical element of the GUI. In other implementations, the user may perform the gesture at one or more locations that are independent of the location of the graphical element of the GUI. Gestures performed on touch I/O device 102 may directly or indirectly manipulate, control, modify, move, launch, or generally affect graphical elements within the GUI, such as all or a portion of a cursor, an icon, a media file, a list, text, an image, or the like. For example, in the case of a touch screen, a user may interact directly with a graphical element on the touch screen by performing a gesture over the graphical element. Alternatively, touchpads generally provide indirect interaction. The gesture may also affect GUI elements that are not displayed (e.g., cause a user interface to appear), or may affect other actions within the computing system 104 (e.g., affect a state or mode of a GUI, application, or operating system). The gesture may or may not be performed on touch I/O device 102 in conjunction with a displayed cursor. For example, in the case of a gesture performed on a touch pad, a cursor (or pointer) may be displayed on the display screen or touch screen, and the cursor may be controlled via touch input on the touch pad so as to interact with a graphical object on the display screen. In other implementations where the gesture is performed directly on the touchscreen, the user may interact directly with the object on the touchscreen with or without a cursor or pointer being displayed on the touchscreen.
Feedback may be provided to the user 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 optically, mechanically, electrically, olfactively, acoustically, or in any combination thereof, and may be transmitted in a variable or non-variable manner.
Attention is now directed to embodiments of system architectures that may be embodied within any portable or non-portable device, including, but not limited to, communication devices (e.g., mobile phones, smart phones), multimedia devices (e.g., MP3 players, televisions, radios), portable or handheld computers (e.g., tablet computers, netbooks, laptops), desktop computers, all-in-one desktop computers, peripheral devices, or any other system or device that may be suitable for inclusion within system architecture 2000, including combinations of two or more of these types of devices. FIG. 2 is a block diagram of one embodiment of a system 200, where the system 200 may include one or more computer-readable media 201, a processing system 204, an input/output (I/O) subsystem 206, Radio Frequency (RF) circuitry 208, and audio circuitry 210. These components may be coupled by one or more communication buses or signal lines 203. System 200 may be the same as or similar to electronic device 100 (fig. 1).
It should be appreciated that the architecture shown in FIG. 2 is merely one example architecture for system 200, and that system 200 may have more or fewer components than shown, or a different configuration of components. The various components shown in fig. 2 can be implemented in hardware, software, firmware, or any combination thereof, including one or more signal processing circuits and/or application specific integrated circuits.
The RF circuitry 208 is used to transmit and receive information over a wireless link or network to one or more other devices and includes well-known circuitry for performing this function. The RF circuitry 208 and the audio circuitry 210 may be coupled to the processing system 204 via a peripherals interface 216. The interface 216 may include various known components for establishing and maintaining communication between peripherals and the processing system 204. Audio circuitry 210 may be coupled to an audio speaker 250 and a microphone 252 and include known circuitry for processing voice signals received from interface 216 to enable a user to communicate in real-time with other users. In some implementations, the audio circuit 210 includes a headphone jack (not shown).
The peripherals interface 216 may couple input peripherals and output peripherals of the system to the processor 218 and the computer-readable medium 201. The one or more processors 218 may communicate with the one or more computer-readable media 201 via the controller 220. The computer-readable medium 201 may be any device or medium that can store code and/or data for use by the one or more processors 218. The medium 201 may include a hierarchy of memories including, but not limited to, a cache, a main memory, and a secondary memory. The memory hierarchy may be implemented using any combination of the following: RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and/or optical storage devices, such as disk drives, magnetic tape, CDs (compact discs) and DVDs (digital video discs). Medium 201 may also comprise a transmission medium for conveying an information bearing signal indicative of computer instructions or data (whether modulated onto a carrier wave or not). For example, a transmission medium may include a communication network, including, but not limited to, the Internet (also known as the world Wide Web), one or more intranets, Local Area Networks (LANs), wide area networks (WLANs), Storage Area Networks (SANs), Metropolitan Area Networks (MANs), and the like.
The one or more processors 218 may execute various software components stored in the medium 201 to perform various functions of the system 200. In some implementations, the software components include an operating system 222, a communication module (or set of instructions) 224, a touch processing module (or set of instructions) 226, a graphics module (or set of instructions) 228, one or more applications (or sets of instructions) 230, and a notification module 238. Each of the applications and modules described above corresponds to a set of instructions for performing one or more of the functions described above as well as the methods described herein (e.g., the computer-implemented methods and other information processing methods described herein). These modules (e.g., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. In some implementations, the medium 201 may store a subset of the modules and data structures noted above. In addition, the media 201 may store additional modules and data structures not described above.
The operating system 222 may include various processes, sets of instructions, software components, and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and supporting communication between various hardware and software components.
The communication module 224 supports communication with other devices through one or more external ports 236 or via the RF circuitry 208 and includes various software components for processing data received from the RF circuitry 208 and/or the external ports 236.
The graphics module 228 may include various known software components for rendering, animating and displaying graphical objects on a display surface. In embodiments where touch I/O device 212 is a touch-sensitive display (e.g., a touch screen), graphics module 2028 includes components for rendering, displaying, and animating objects on the touch-sensitive display.
The one or more applications 230 may include any application installed on the system 200, including but not limited to: browsers, address books, email, instant messaging, word processing, keyboard emulation, widgets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, location determination capabilities (such as those provided by the Global Positioning System (GPS)), music players, and the like.
Touch processing module 226 includes various software components for performing various tasks associated with touch I/O device 212, including but not limited to: touch input received from I/O device 212 via touch I/O device controller 232 is received and processed. For example, the touch processing module 226 may also include software components for performing tasks associated with other I/O devices 214. That is, the touch processing module 226 may receive and process inputs received from the I/O devices 214 via the other I/O controllers 234.
The system 200 may also include a notification module 238 for performing the methods/functions described herein in connection with fig. 5-14. The notification module 238 may be used at least to monitor notifications received from multiple applications (e.g., multiple applications on the system 200, or data providers that transmit data to the system 200). For example, the notification module 238 can receive notifications from both non-third party applications and third party applications. Additionally, notification module 238 can receive push-based notifications, trigger-based notifications, and/or other types of personal notifications.
In response to receiving the notification, the notification module 238 may control the manner in which the notification is displayed when the system 200 is operating in the locked state or the unlocked state. For example, the notification module 238 may display notifications in flags and control the manner in which the notifications are displayed when the system 200 is operating in a locked state. As another example, notification module 238 can aggregate received notifications and can provide the aggregated notifications as multiple panes in a notification center. Thus, each pane may be associated with a different application. In some implementations, the notification module 238 can allow a user to customize how notifications are displayed on the system 200.
In the locked state, the system 200 may restrict access to certain features by a user. For example, in the locked state, a user may not be able to activate various device features such as placing a phone call or entering an email. In other words, the locked state is intended to prevent inadvertent access to the system 200. When the system 200 is in the unlocked state, the user has full access to all features of the system.
Additionally, the notification module 238 may provide a particular type of data formatting to the data provider, which in turn may allow the data provider to send particular notifications to various users. Those skilled in the art will appreciate that any suitable type of formatting may also be used. For example, to display a notification on system 200, notification module 238 may ask the data provider to specify a title (e.g., a user name), a subheading (e.g., a subheading of an incoming message or reminder), and a body (e.g., a message body).
The notification module 238 may also interface with the touch processing module 226 to receive user input. Additionally, the notification module 238 may interface with the graphics module 228 to display various graphical objects on the display. The notification module 238 may be embodied as hardware, software, firmware, or any combination thereof. Although the notification module 238 is shown as residing within the medium 201, all or a portion of the module 238 may be embodied within other components within the system 200, or entirely embodied as a separate component within the system 200.
I/O subsystem 206 is coupled to touch I/O device 212 and to one or more other I/O devices 214 for controlling or performing various functions. Touch I/O device 212 communicates with processing system 204 via touch I/O device controller 232, which touch I/O device controller 232 includes various components for processing user touch input (e.g., scanning hardware). One or more other input controllers 234 receive electrical signals from/transmit electrical signals to other I/O devices 214. Other I/O devices 214 may include physical buttons, dials, slider switches, levers, keyboards, touch pads, additional display screens, or any combination thereof.
If touch I/O device 212 is embodied as a touch screen, it displays visual output to the user in the 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. Touch I/O device 212 forms a touch-sensitive surface that accepts touch input from a user. Touch I/O device 212 and touch screen controller 232 (along with any associated modules and/or sets of instructions in media 201) detect and track touches or near touches (and any movement or release of touches) on touch I/O device 212 and translate the detected touch inputs into interactions with graphical objects, such as one or more user interface objects. Where device 212 is embodied as a touch screen, the user may interact directly with graphical objects displayed on the touch screen. Alternatively, where device 212 is embodied as a touch device (e.g., a touchpad) other than a touch screen, the user may indirectly interact with graphical objects displayed on a separate display screen embodied as I/O device 214.
Touch I/O device 212 may be similar to a multi-touch sensitive surface described in: U.S. Pat. No. 6,323,846(Westerman et al), U.S. Pat. No. 6,570,557(Westerman et al), and/or U.S. Pat. No. 6,677,932(Westerman et al), and/or U.S. Pat. publication No. 2002/0015024A 1, each of which is incorporated herein by reference.
In embodiments where the touch I/O device 212 is a touch screen, the touch screen may use LCD (liquid crystal display) technology, LPD (light emitting polymer display) technology, OLED (organic LED), or OEL (organic electroluminescence), although in other embodiments other display technologies may be used.
Feedback can be provided by touch I/O device 212 based on touch input by the user and one or more states of the thing being displayed and/or the computing system. The feedback may be transmitted optically (e.g., light signals or displayed images), mechanically (e.g., tactile feedback, touch feedback, force feedback, etc.), electrically (e.g., electrical stimulation), olfactory, acoustically (e.g., beeping, etc.), or in any combination thereof, and may be transmitted in a variable or non-variable manner.
The system 200 may also include a power supply system 244, the power supply system 244 for supplying power to the various hardware components, and may include a power management system, one or more power sources, a charging system, power failure detection circuitry, a power converter or inverter, a power status indicator, and any other components typically associated with power generation, management, and distribution in portable devices.
In some embodiments, peripherals interface 216, one or more processors 218, and memory controller 220 may be implemented on a single chip, such as in processing system 204. In some other embodiments, they may be implemented on separate chips.
Notification module 238 can interface with one or more application programming interfaces ("APIs") to provide a notification center that can generate various types of notifications when system 200 is in a locked state or an unlocked state. Additionally, the notification module 238 can provide a number of settings for customizing the notification center.
An API is an interface implemented by a program code component or a hardware component (hereinafter "API-implementing component") that allows different program code components or hardware components (hereinafter "API-calling components") to access and use one or more functions, methods, procedures, data structures, classes, and/or other services provided by the API-implementing component. The API may define one or more parameters that are passed between the API-calling component and the API-implementing component.
The API allows a developer of the API-calling component (which may be a third party developer) to take advantage of the specified features provided by the API-implementing component. There may be one API-calling component or there may be more than one such component. An API may be a source code interface provided by a computer system or library to support service requests from applications. An Operating System (OS) may have multiple APIs to allow applications running on the OS to call one or more of those APIs, and a service (such as a library) may have multiple APIs to allow applications using the service to call one or more of those APIs. The API may be specified in a programming language that is interpreted or compiled when the application is built.
In some embodiments, the API-implementing component may provide more than one API, each of which provides a different overview of, or has different aspects with access to, 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 functions and may be exposed to third party developers, and another API of the API-implementing component may be hidden (not exposed) and provide a subset of the first set of functions, and also provide another set of functions, such as test functions or debug functions that are not among the first set of functions. In other embodiments, the API-implementing component may itself invoke one or more other components via the underlying API, and thus act as both an API-calling component and an API-implementing component.
The API defines the language and parameters used by the API-calling component in accessing and using the specified features of the API-implementing component. For example, the API-calling component accesses specified features of the API-implementing component through one or more API calls or callouts (e.g., embodied by function calls or method calls) exposed by the API and uses parameters to pass data and control information via the API calls or callouts. The API-implementing component may return a value through the API in response to an API call from the API-calling component. While an API defines the syntax and results of an API call (e.g., how the API call is called and what the API call does), the API may not reveal how the API call implements the functionality specified by the API call. Individual API calls are communicated via one or more application programming interfaces between the call (API-calling component) and the API-implementing component. Communicating the API call may include issuing, initiating, invoking, calling, receiving, returning, or responding to a function call or message; in other words, the transfer may describe the actions of 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. A parameter may be a constant, a key, a data structure, an object class, a variable, a data type, a pointer, an array, a list, or a pointer to a function or method, or another way of referencing data or other item to be passed via the API.
Further, data types or classes can be provided by an API and implemented by an API-implementing component. Thus, the API-calling component may declare variables of these types or classes, use pointers to these types or classes, use or instantiate constant values of these types or classes by using definitions provided in the API.
In general, an API may be used to access services or data provided by an API-implementing component or to initiate the execution of operations or computations provided by the API-implementing component. By way of example, the API-implementing component and the API-calling component may each be any one of an operating system, a library, a device driver, an API, an application program, or other module (it being understood that the API-implementing component and the API-calling component may be the same or different types of modules as each other). In some cases, an API-implementing component may be embodied, at least in part, in firmware, microcode, or other hardware logic. In some implementations, the API can allow a client to use services provided by a Software Development Kit (SDK) library. In other embodiments, an application or other client may use an API provided by the application framework. In these embodiments, the application or client may incorporate calls to functions or methods provided by the SDK and provided by the API, or use data types or objects defined in the SDK or provided by the API. In these embodiments, the application framework may provide a main event loop for programs that respond to various events defined by the framework. The API allows applications to specify events and responses to events using an application framework. In some implementations, API calls may report the capabilities or state of a hardware device to an application, including information related to aspects such as input capabilities and state, output capabilities and state, processing capabilities, power states, storage capabilities and state, communication capabilities, and the like, and the API may be implemented in part by firmware, microcode, or other low-level logic that executes in part on the hardware components.
The API-calling component may be a local component (e.g., on the same data processing system as the API-implementing component) or a remote component (e.g., on a different data processing system than the API-implementing component) that communicates with the API-implementing component over the network through the API. It should be appreciated that the APP-implementing component can also act as an API-calling component (e.g., it can make API calls to APIs exposed by different API-implementing components), and the API-calling component can also act as an API-implementing component by implementing APIs exposed to different API-calling components.
The API may allow multiple API-calling components written in different programming languages to communicate with the API-implementing component (thus, the API may include features for translating calls and returns between the API-implementing component and the API-calling component); however, the API may be implemented in the form of a particular programming language. In one embodiment, the API-calling component may call APIs from different providers, such as one set of APIs from an OS provider, and another set of APIs from a plug-in provider, and yet another set of APIs from yet another provider (e.g., a provider of a software library) or creator of yet another set of APIs.
FIG. 3 is a block diagram illustrating an exemplary API architecture 300 that may be used in some embodiments of the present invention. As shown in fig. 3, the API framework 300 includes an API-implementing component 302 (e.g., an operating system, library, device driver, API, application, software, or other module) that implements an API 304. The API304 specifies one or more functions, methods, classes, objects, protocols, data structures, formats, and/or other characteristics of the API-implementing component 302 that may be used by the API-calling component 306. The API304 may specify at least one calling convention that specifies how a function in the API-implementing component 302 receives parameters from the API-calling component 306 and how the function returns results to the API-calling component 306. An API-calling component 306 (e.g., an operating system, library, device driver, API, application, software, or other module) makes API calls through the API304 to access and use the features of the API-implementing component 302 specified by the API 304. The API-implementing component 302 may return a value to the API-calling component 306 through the API304 in response to the API call.
It is to be appreciated that the API-implementing component 302 can include additional functions, methods, classes, data structures, and/or other features not specified by the API304 and not available to the API-calling component 306. It is to be appreciated that the API-calling component 306 can be on the same system as the API-implementing component 302, or can be located remotely and access the API-implementing component 302 through a network using the API 304. Although fig. 3 illustrates a single API-calling component 306 interacting with the API304, it should be understood that other API-calling components written in a different language (or the same language) than the API-calling component 306 may also use the API 304.
The API-implementing component 302, the API304 and the API-calling component 306 may be stored in a machine-readable medium, which includes any mechanism for storing information in a form readable by a machine (e.g., a computer or other data processing system). For example, a machine-readable medium includes magnetic disks, optical disks, random access memories; read only memory, flash memory devices, etc.
In the example embodiment of FIG. 4 (software stack), an application may make calls to service A or service B using several service APIs and make calls to the Operating System (OS) using several OS APIs. Service A and service B may make calls to the OS using several OS APIs.
Note that service 2 has two APIs, one (service 2API1) that receives calls from application 1 and returns values to application 1, and the other (service 2API2) that receives calls from application 2 and returns values to application 2. Service 1 (which may be a software library, for example) makes calls to the OS API1 and receives returned values from the OS API1, and service 2 (which may be a software library, for example) makes calls to both the OS API1 and the OS API2 and receives returned values from the OS API1 and the OS API 2. Application 2 makes calls to the OSAPI2 and receives returned values from the OS API 2.
As discussed above, a notification module (e.g., notification module 238 of fig. 2) of the electronic device may control the manner in which notifications are received from the application and then provided to the user. For example, the notification module can aggregate notifications received from different applications, and can provide the aggregated notifications as a series of panes (or lists) in a notification center. Thus, by accessing the notification center, the user can view a list of recently received notifications. In some cases, the notification center is accessible only when the electronic device is operating in an unlocked state.
Any suitable method may be used to invoke the notification center. For example, a user may invoke a notification center by pressing a button on the electronic device. As another example, when the electronic device (e.g., electronic device 100 of fig. 1 or system 200 of fig. 2) is a device that performs a predetermined set of functions on the device through a touch screen and/or a touchpad (e.g., touch I/O device 212), the user may invoke the notification center by contact or by touching graphics on the touch screen.
For example, referring now to FIG. 5, a display screen 500 of a home screen of an electronic device is shown. The display screen 500 may be the same as or may interface with the touch I/O device 212 of fig. 2. The display screen 500 may include a plurality of selectable icons 502.
The notification module may be configured to accept a plurality of gestures to invoke the notification center. For example, the user may perform a general swipe gesture by flicking one or more fingers quickly in a downward motion from the top of the screen 500. As another example, the user may drag one or more fingers slowly from the top of the screen 500 down.
The notification module may detect a slide or drag made by the user in a particular area of the screen (e.g., the 20 pixel area at the top of the screen 500). In particular, once the notification module detects that there is movement among the plurality of pixels within the 20-pixel region, the notification module may begin displaying the notification center.
In some implementations, the notification module can display the notification center in the same manner regardless of the manner in which the user invokes the notification center. In other embodiments, the notification module may respond differently depending on the gesture 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 screen 500. If the user instead drags one or more fingers slowly down, the notification module can pull down the notification center on the screen 500 in real-time.
In some cases, a visual indication may be displayed on top of the display screen 500 to indicate the presence of a notification center. In other embodiments (and as shown in display screen 500), there may be no visual indication of the presence of the notification center. Thus, the user can be prevented from being bothered when using the electronic device, and valuable space on the screen can be saved.
Those skilled in the art will appreciate that the notification center may be accessed from any suitable portion of the display screen 500 (e.g., the right, left, or bottom of the display screen 500) in addition to the top of the display screen 500. Additionally, the notification module may allow the user to specify which portion of the display screen 500 is to be used to invoke the notification center.
Those skilled in the art will also appreciate that while FIG. 5 illustrates a main screen, the notification center may be invoked at any suitable time. In particular, the notification center may also be invoked when the device is displaying a particular application.
Turning now to fig. 6A-6E, display screens of a notification center on an electronic device are shown. Those skilled in the art will appreciate that although the notification center is displayed when the electronic device is operated in the portrait mode in fig. 6A to 6E, the notification center may also be displayed when the electronic device is operated in the landscape mode.
Turning first to FIG. 6A, in response to a user dragging one or more fingers down from the top of the display screen 600, the notification module can pull down the notification center 602 toward the bottom of the display screen 600. Notification center 602 may include a tab 604 located at the bottom of notification center 602.
In some cases, to remove notification center 602 from display screen 600, a user may need to drag notification center 602 up and off display screen 600. Those skilled in the art will appreciate that the notification center 602 may also be removed from the display screen 600 using any other suitable method (e.g., by pressing a home button or an on/off button).
Turning next to FIG. 6B, display 606 shows notification center 602 pulled all the way to the bottom of screen 606. Notification center 602 can include one or more panes, where each pane can include a widget that represents a different application on the electronic device. For example, notification center 602 may include a weather pane 608, a stock pane 610, a social network pane 612, and a mail pane 614.
Notification center 602 may be scrollable such that a user may contact and drag notification center 602 up and down to view fewer or additional notifications. In some embodiments, only certain portions of notification center 602 are scrollable. As a result, one or more panes may remain fixed (e.g., weather pane 608 and stock pane 610), while other panes may be scrollable.
The weather pane 608 may display the weather for the current location of the electronic device. Alternatively, the weather pane 608 may display the weather for any default location specified by the user. The user may touch weather pane 608 to open a weather application on the device. Additionally, the user may slide the weather pane 608 left or right to view the weather for other cities.
The stock pane 610 may include a scrollable stock ticker (ticker), which scrolls from right to left, for example, independently of any user interaction. The user may be able to drag the stock pane 610 left or right to view other hidden or partially displayed stocks. In some cases, the user may select any of the individual stock quotes by touching one of the quotes (e.g., one of the stock quotes 617 and 619). In response to a user selection, the notification module can open a stock widget. The stock widget may be based on the selected stock quote in context (e.g., the stock widget may display detailed stock information corresponding to the selected company).
A user can select (e.g., touch) any pane in notification center 602 to access an application associated with the pane. For example, in response to a user selecting social network pane 612, the notification module may provide a social network application to the user.
Each of panes 608-614 may be associated with an option to allow the user to manually clear notifications from the pane. For example, button 616 may allow a user to clear notifications of pane 612 from notification center 602. In particular, in response to the user selecting button 616, the notification module may display a "CLEAR" button (e.g., button 616 may scroll, expand, and/or transition to a "CLEAR" button). If the user then selects the "clear" button, the user may manually remove one or more notifications from notification center 602.
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 notification center 602. However, once a new notification for the application is received, the pane corresponding to the application may be displayed again within notification center 602. Those skilled in the art will appreciate that although notifications have been removed from notification center 602, these notifications may still be accessible from the application that generated the notification. Thus, if a user wishes to view notifications that have been purged from notification center 602, he can view these notifications by accessing the corresponding application.
Some panes, such as pane 612 and pane 614, may have an associated list of one or more notifications. For example, social network pane 612 has a list 613 showing one notification, and email pane 614 shows a list 615 showing two email notifications. Any suitable number of notifications may be listed as part of the association list. Each displayed notification can be selected and, upon selection, the notification is presented in the application corresponding to its pane. For example, if the user selects the first email notification in list 615, the email is opened for viewing in the mail application.
Panes with associated lists can be vertically scrollable (e.g., a user can scroll from one pane to the next to view the list associated with each pane). Such panes are in contrast to horizontally scrollable panes 608 and 610. The user may scroll from the list association pane to the list association pane while the panes, such as panes 608 and 610, remain in place. Thus, at any given time, the user may scroll horizontally in panes 608 and 610, or vertically through the list association pane.
Referring now to fig. 6C, display 620 shows notification center 602, which may include a calendar pane 622. The calendar pane 622 may display a list of notifications (e.g., upcoming events) in the user's calendar for a predetermined period of time (e.g., for the upcoming 24 hours). In some cases, the calendar pane 622 can organize upcoming events in chronological order. For example, the most recent upcoming event may be displayed at the top of the notification list, followed by the next upcoming event, and so on. Alternatively, the most recent upcoming event may be displayed at the bottom of the notification list.
The calendar pane 622 may be adjusted in real-time while the event is in progress. For example, as shown in fig. 6C, the notification 621 may include text 623 indicating that the event "yoga" begins 40 minutes ago. The notification module may continuously update the text 623 while the event is in progress.
In some implementations, the user can specify a predetermined number of notifications to be displayed for each application. Thus, if the number of notifications that can be displayed exceeds the predetermined number of notifications, the notification module can automatically clear the notifications from the calendar pane 622. The notification setting for specifying the predetermined notification number will be described in more detail with reference to fig. 9E and 9F.
As shown in fig. 6C, the predetermined notification number may be set to 5. Thus, when a new notification is received, the notification module can automatically remove the notification currently being displayed in the calendar pane 622. For example, turning now to FIG. 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. The notification module can then remove the notification 628 from the calendar pane 622 because the number of notifications that can be displayed exceeds the predetermined number of notifications. In some cases, notification 628 may be associated with an event having a latest start time compared to other events displayed in calendar pane 622. Finally, once another notification is cleared out of calendar pane 622 (e.g., notification 626 has been completed or dismissed), notification 628 can be added back to calendar pane 622.
Once a calendar event has expired, one or more notifications corresponding to the event may be automatically removed from the calendar pane 622. For example, if the "yoga" event lasts 1 hour, the notification 621 (fig. 6C) corresponding to "yoga" may be cleared out of the calendar pane 622 once the event has completed. For example, as shown in fig. 6E, once the "yoga" event has expired, the notification module may automatically remove the notification 621 from the notification center 602. In addition to removing notification 621, the notification module can add new notification 632 to calendar pane 622.
Those skilled in the art will appreciate that the panes included in fig. 6A-6E are merely illustrative. Accordingly, any suitable pane associated with one or more applications on a device may be included in notification center 602. In some cases, notification center 602 may include those notifications that are displayed while the device is operating in a locked state. These types of notifications will be described in more detail in connection with fig. 8A-8F.
Referring now to fig. 6F-6H, several illustrative display screens show the display of a notification center when a user is actively engaged in a third party application, such as a game. In FIG. 6F, the display screen 640 shows a third party application (such as a game) actively running. According to embodiments of the present invention, a user may access a notification center while participating in an active third-party application. The user may access the notification center by first sliding a finger down from the top of the screen to cause tab 654 to be displayed in screen 650 of fig. 6G. As partially shown in screen 660 of fig. 6H, when tab 654 is displayed, the user may then place a finger on tab 654 and drag it down to reveal notification center 622. If the user drags tab 654 all the way to the bottom of screen 660, notification center 662 will be fully shown.
In some implementations, the notification module can display one or more flags that can correspond to notifications received from different applications when the electronic device is operating in the unlocked state. The notification module may display the flag, for example, by rotating the flag onto the display screen.
If the user does not select the banner after a predetermined period of time (e.g., 5 seconds or 6 seconds) has elapsed, the notification module may remove the banner from the display screen. For example, the flag may rotate out of the display. Alternatively, the user may push the flag aside by sliding the flag or pushing the flag.
In some implementations, if two or more flags are received by the notification module at approximately the same time, the flags can be rotated into the display screen at approximately the same time. That is, there may be multiple banners that rotate into the display at the same time. Alternatively, to minimize annoyance to the user, the notification module may stagger the display of the flags such that only one flag is provided at any given time.
Those skilled in the art will appreciate that any suitable visual method may be used to display the banner. For example, the flag may scroll across, flip up or down, or fly into the display. In addition, the banner may be removed from the display screen with a similar function. The notification module may allow a user to specify the manner in which the flag may be displayed and/or removed.
In some cases, if a user ignores or removes a flag without accessing the flag, the notification module may add a notification associated with the flag to a notification center (e.g., the notification center 602 of fig. 6A-6E). As a result, when the user selects to view the notification center at a later time, the notification center may provide the user with an accumulation of all notifications that have not been accessed by the user.
Turning now to fig. 7A-7E, there is shown a display screen for different types of banners that may be displayed on an electronic device. Those skilled in the art will appreciate that the flag may be displayed at any suitable time when the device is operating in the unlocked state (e.g., when the device is displaying a home screen or displaying a particular application). For example, the banner may be displayed while the user is playing a video game, visiting a website, modifying system settings, watching a movie, etc. It will be understood by those skilled in the art that although the flags are displayed when the electronic device is operating in portrait mode in fig. 7A-7E, the flags may also be displayed when the electronic device is operating in landscape mode. Those skilled in the art will also appreciate that the banner may be displayed on any suitable portion of the display screen (e.g., right, left, top, or bottom). Additionally, the notification module may allow the user to specify in which portion of the display the banner may appear.
Referring first to FIG. 7A, a display screen 700 is shown that may include a banner 702. The flag 702 may represent a most recently received notification (e.g., a text message received from a contact of the user). As shown in FIG. 7A, a flag 702 may be displayed while the user is playing a video game.
The banner 702 may include an icon 704, text 706, and media 708. Icon 704 may indicate the type of application that generated the notification. The text 706 may include one or more portions of the contact information and/or the received text message. In some cases, the text 706 can be a truncated version of the full text of the message (e.g., the text 706 can include text or a portion of the body of an email). The media 708 may be embedded media associated with the text message (e.g., a photograph of a contact or a media file attached to the text message).
In some implementations, the notification module can detect when the user has selected the flag 702 (e.g., by touching the flag 702). In response to a user selection, the notification module can present the associated notification in the application that generated the notification. For example, in response to the user selecting the flag 702, the notification module may display a particular text message in the text message application that corresponds to the flag 702.
In some implementations, the user can drag the flag 702 downward to view other notifications that are also associated with the application. Alternatively, in response to the user dragging the flag 702 downward, the notification module may display a notification center. For example, the notification module may display a portion of the notification center that includes an application panel associated with the banner 702. As another example, the notification module may display a portion of a notification center centered on the text message itself.
Turning now to FIG. 7B, a display screen 710 is shown that may include a flag 710. The flag 710 may include media 712, which media 712 may be video attached to the notification. One skilled in the art will appreciate that media 712 may display any suitable media such as, for example, images, videos, sound files, maps, electronic business cards, and the like.
Additionally, the flag 710 may include text 713, which text 713 may indicate that the notification is associated with multiple images and videos, but not with any text. Specifically, text 713 may indicate that there are 2 more attachments in addition to media 712. Thus, text 713 may change based on the number of accessories not displayed in flag 710.
Fig. 7C shows a display 716, which may include a flag 718. The flag 718 may include a map 720, which map 720 may be generated based on the notification associated with the map URL. For example, the map 720 may be a local map near the location associated with the map URL. Additionally, the map 720 may include a marker pin placed at a particular location (e.g., a restaurant or theater location) associated with the map URL.
Turning now to FIG. 7D, a display 722 including a flag 724 is shown. The flag 724 may be a merge flag. That is, the flag 724 may include information about multiple notifications that have been queued for a particular application. For example, as shown in fig. 7D, flag 724 indicates that there are 7 new mail notifications for the mail application.
The notification module may also use any other method to generate the merge flag. For example, the notification module can detect whether two or more notifications are associated with at least one common parameter (e.g., a particular topic). In response to detecting that two or more notifications are associated with at least one common parameter, the notification module may append the two or more notifications to a single message within the merge flag. As another example, the notification module may condense (e.g., summarize) the two or more notifications into a single message in the merge flag.
In some cases, the notification module may simultaneously display multiple consolidated flags (e.g., a set of flags), where each flag may display a single message. The flag may indicate that there are new notifications queued for multiple applications.
The notification module may also provide a flag based on the occurrence of one or more trigger events (e.g., one or more time-based or location-based trigger events). For example, when the notification module receives a notification associated with a time-based triggering event (e.g., a reminder to perform a task at a particular time), the notification module may display a flag associated with the event at the beginning of the event or at a predetermined time before the beginning of the event.
As another example, in response to receiving a notification associated with a location-based triggering event (e.g., a reminder to buy milk at a grocery store), the notification module may display a flag associated with the event when the electronic device is detected at the grocery store location. In some embodiments, these alert flags may include a "SNOOZE" button that allows the user to stop the alert for a predetermined period of time.
The banner displayed on the electronic device may be unobtrusive. That is, the flag may not interfere with the user's access to the controls that overlap on the display screen. For example, referring now to FIG. 7E, a display 726 is shown that may include a banner 728. A flag 728 may be overlaid on the "NOTIFICATIONS" button 730. Since the flag 728 is a non-disruptive flag, the user is still able to press the button 730 while the flag is being located above the "notify" button 730. In some embodiments, one or more visual indicators may also be displayed that may indicate to the user that the "notify" button 730 is still selectable despite the overlay of the flag 728.
In some implementations, the notification module can control the manner in which the notification is displayed when the electronic device is operating in a locked state (e.g., when the electronic device is not being used). In particular, one or more notifications may be received from different applications while the device is operating in a locked state. In particular, the electronic device may receive one or more push events (e.g., a phone call, a voicemail, an email, or a third party push event) or device alerts (e.g., a reminder or alarm).
In response to receiving the notification, the electronic device may wake up (e.g., the processor may wake up the graphics module) and the notification module may display the received notification on the display screen. In some cases, the notification may be displayed as a large format notification. Turning now to fig. 8A-8F, display screens for different types of notifications that may be displayed while the electronic device is operating in a locked state are shown.
Turning first to FIG. 8A, a display screen 800 is shown that can include a notification 802. The notification 802 can be displayed after receiving a notification from a third-party application while the electronic device is operating in the locked state. In particular, the notification 802 can include an icon 804, which icon 804 can indicate the application that generated the notification 802. Additionally, the notification 802 can include text 806, and the text 806 can provide associated text or portions of the text received from the application.
In response to viewing the notification 802, the user may choose to go directly to the message associated with the notification 802. For example, a user may access notification 802 by tapping and holding notification 802. In response to the user's action, the notification module can display a slider (e.g., by flipping the notification 802 to a back view) on the display screen (e.g., by animating the notification 802). For example, referring now to FIG. 8B, the display 808 may include a slider 810, which slider 810 may embed components that are the back of the notification 802. The user may activate the slider 810 by dragging the slider button 812 in a particular direction (e.g., to the right).
Once the notification module detects that the slider 810 has been activated, the notification module may unlock the electronic device directly. After unlocking the electronic device, the notification module can present the particular notification to the user in the application that generated the notification. In some cases, even if the electronic device receives multiple notifications from a particular application, the notification module can bypass the notifications and present the particular notifications as specifically requested by the user.
Referring now to FIG. 8C, a display 814 is shown that can include a notification 816. The notification 816 may be displayed in response to an image text message received by the electronic device. In particular, the notification 816 may include an inline image 818. Additionally, the notification 816 may include text 819, which text 819 may provide the identity of the person who sent the text message. Further, the notification 816 may include text 820, which text 820 may be the text accompanying the image. As shown in fig. 8C, the image 818 may be highlighted in the notification 816 (e.g., the image 818 may be enlarged relative to the text 819 and the text 820).
Similar to fig. 8A and 8B, if the user selects to access the notification 816 (e.g., by tapping and holding the notification 816), the notification module can display a slider. If the user then activates the slider by dragging the slider, the notification module can unlock the device and provide the image 818 directly to the user (e.g., display the image 818 in the image view of the chat application).
Those skilled in the art will appreciate that the notification module may display any suitable type or types of media in the notification. For example, the notification may include one or more sounds, one or more electronic business cards, one or more videos, and one or more map URLs (e.g., the notification module may display a map of the location of the URL). Additionally, similar to the merge flag, the notification module can display information associated with multiple notifications queued for a particular application in a single notification.
Additionally, the notification may be displayed in response to one or more triggering events (e.g., time-based or location-based triggering events). For example, in response to receiving a notification associated with a location-based triggering event, the notification module may display the notification associated with the event upon detecting that the electronic device is located at the location of the triggering event.
As another example, when the notification module receives a notification associated with a time-based triggering event, the notification module may display the notification associated with the event at the beginning of the event or at a predetermined time before the beginning of the event. For example, turning now to FIG. 8D, a display 822 with a notification 824 is shown. The notification 824 may include text 826 that may indicate that the notification 824 is displayed in response to a time-based triggering event (e.g., an alert). Additionally, text 826 may provide a description of the alert.
Notification 824 may also include an "alarm off" button 828. In response to the user selecting the "alarm off" button 828, the notification module may stop the alarm for a predetermined time. As a result of this functionality, the user is able to control the alert without having to unlock the electronic device.
The display screens 800 (fig. 8A), 808 (fig. 8B), 814 (fig. 8C), and 822 (fig. 8D) may include a drop-down option 830, and the drop-down option 830 may be positioned above the displayed notification. Those skilled in the art will appreciate that although the pull-down option 830 is shown in fig. 8A-8D as being above the notification, the pull-down option 830 may be located at any suitable location in the display (e.g., the left, right, or bottom of the display). Additionally, if the electronic device is in a sleep mode, the user may be able to view the pull down option 830 by pressing a button (e.g., an on/off and/or home button) on the electronic device.
Drop down option 830 may allow the user to view previously received notifications (e.g., all notifications received while the electronic device is operating in the locked state). The user may select the drop down option 830 by dragging the option 830 in a downward motion on the screen.
Referring now to fig. 8E, display screen 832 shows a notification list 834, which notification list 834 may be a list of previously received notifications. Specifically, when each notification in the notification list 834 is initially received, the notification may be displayed as a large format notification (e.g., as shown in fig. 8A-8D). However, since the user does not respond to the notification, the notification is then added as a single element to the notification list 834. In some implementations, the instances that notifications are initially displayed in the locked mode may be larger than when the same notification is shown in the notification list 834. For example, notifications 802 (fig. 8B), 816 (fig. 8C), and 824 (fig. 8D) may be larger than elements 835, 837, and 838, respectively. That is, elements 835, 837, and 838 can be displayed in a small format.
The individual elements of the notification list 834 may be overlaid on top of one another. For example, the notification module may display multiple text messages received by the electronic device as a single element in the notification list 834.
In some implementations, the notification list 834 can be arranged based on the time at which each notification is received (e.g., based on a chronological order). That is, the most recently received notifications may be appended to the top of the notification list 834. Alternatively, the most recently received notifications may be appended to the bottom of the notification list 834. For example, as shown in fig. 8E, the list of notifications 834 is arranged in chronological order with the most recent notification at the top of the list 834.
In other implementations, the notification list 834 can be arranged based on user-selected parameters. For example, the user may specify which application's notification should appear first, second, third, and so on. Based on the parameters selected by the user, the notification module may sort the received notifications. For example, notifications corresponding to each application may be first grouped together, and then the applications may be arranged in a predetermined order. For example, notifications corresponding to voice mail may be listed first, notifications corresponding to email may be listed second, and notifications corresponding to text messages may be listed in a third place, and so on. The user's selection of the manner in which the notification list 834 is arranged will be described in more detail in conjunction with FIG. 9B.
The notification list 834 may be scrollable. In particular, a region 836 of the display 832 may be made scrollable such that the notification list 834 may move up or down as the user slides or drags a portion of the region 830. As a result, the notification list 834 may be capable of displaying a large number of notifications (e.g., all notifications received while the device is operating in a locked state). In some implementations, the notification list can be automatically displayed regardless of whether the drop down option 830 is displayed and manipulated by the user.
In addition, each notification in the notification list 834 may be individually accessible. For example, each notification may be associated with its own slider. Similar to the discussion above, the user may select to access notifications in the notification list 834 by tapping and holding the notifications. For example, the user can tap and hold the notification 838, and in response to the user's action, the notification can display a slider in the notification list 834 (e.g., by flipping the notification 838 to the back view).
Turning now to FIG. 8F, display 840 shows a notification list 834 with a back view of notifications 838. In particular, the notification 838 can include a slider 842. Similar to slider 810 (FIG. 8B), slider 842 may be an inline component in notification 838. The user can activate the slider 842 by dragging the slider button 844 in one direction (e.g., to the right of the display 840).
Once the user activates slider 842, the notification module can detect that slider 844 has been activated and the module can unlock the electronic device. After unlocking the device, the notification module can present the particular notification in the application that generated the notification.
In some implementations, the user can select to unlock the device. For example, the user may unlock the device by pressing a button (e.g., on/off and/or home button) or sliding the "unlock" slider 846. In response to the user's action, the notification module can display a notification center (e.g., similar to notification center 602 of fig. 6A-6E) on the display screen. In other implementations, in response to the user unlocking the device, the notification module may not display the notification center until the user explicitly invokes the notification center. In some implementations, the "unlock" slider 846 (or other user input unlock region) can include context-sensitive text that changes based on when the notification is received. For example, if an email is received and displayed in the notification list 834, the text may state "swipe to read". As another example, if a reminder notification is received, the text may state "slide to view".
In some cases, the notification module may allow the user to specify privacy settings. Thus, if the user selects to turn on the privacy settings, one or more notifications or notification types (e.g., notifications associated with text messages) received while the electronic device is in the locked state are not displayed while the device remains in that state. Then, once the user selects to unlock the device, the notification module may display the received notification in one or more flags (e.g., similar to the flags in fig. 7A-7E).
As discussed previously, the electronic device may allow the user to customize the notification settings, as the user may have different preferences as to how the notification is intended to be displayed. In particular, the user may be able to customize the notification settings for the locked state (e.g., notification) and unlocked state (e.g., notification center and flags).
Referring back to fig. 5, display screen 500 may include a "setup" option 504. In particular, the user may select a "settings" option 504 to change one or more settings of the electronic device. Thus, in response to the user selecting the "settings" option 504, the electronic device may provide a display screen that allows the user to change system settings. For example, turning now to FIGS. 9A-9F, display screens associated with customizing notification settings are shown.
Referring first to FIG. 9A, a display screen 900 is shown including a settings list 902, the settings list 902 displayable upon a user selecting the "settings" option 504 (FIG. 5). The settings list 902 may include a "notify" option 904. The user may select the "notification" option 904 to access and modify one or more notification settings (e.g., by tapping on the "notification" option 904).
In response to detecting that the user has selected the "notifications" option 904, the electronic device can provide one or more notification settings on the display screen. These notification settings may allow a user to change one or more flag options or notification center options (e.g., when the electronic device is in a locked state) or one or more notification options (e.g., when the electronic device is in an unlocked state). For example, referring next to FIG. 9B, a display screen 906 is shown that can include a plurality of notification settings.
For example, display 906 may include a manual sort option 908 and an automatic sort option 910. Sort options 908 and 910 are user-selected parameters that may specify, for example, an order in which notifications are displayed in one or more contexts, such as a notification list (e.g., notification list 814 of fig. 8E and 8F).
If the user selects the sort option 908, a notification module (e.g., notification module 238 of FIG. 2) may allow the user (e.g., provide the user with an option) to manually specify the order in which information is displayed in the notification list. That is, the user may specify which application's notification should appear first, second, and so on. Based on the user's selection of the sort option 906, the notification module may sort the received notifications based on the order specified by the user.
In some embodiments, the order in which the applications are sorted may correspond to the order listed in the group 911 of applications "in notification center". In other implementations, the electronic device may display a different display screen (not shown) that may allow the user to specify the order in which the applications are ordered.
Once the notification module has sorted the notifications in the groups based on the corresponding applications, the notifications may be assigned a predetermined order for each group. For example, for each group, the notification module may arrange the associated notifications based on a time of receipt of each notification (e.g., based on a chronological order). It will be appreciated by those skilled in the art that any other predetermined order may alternatively be used.
In contrast, if the user selects the sort option 910, the notification module may assign a predetermined order for displaying the notifications in the notification list. In particular, the notification module may arrange the received notifications based on a time of receipt of each notification (e.g., based on a chronological order). That is, the most recently received notification may be appended to the top (or bottom) of the list of notifications. If an updated notification is received, the top notification in the notification list may be pushed down.
Display screen 906 may also include an option 912 that may allow a user to specify which applications are to be displayed in a notification center (e.g., notification center 602 of fig. 6A-6E). As shown in display 906, options 912 may include a plurality of interactive lists (e.g., "in Notification center" group 911 and "not in Notification center" group 913). Notifications for applications included in the "in notification center" group 911 are displayed in the notification center. In contrast, notifications for applications included in the "not in notification center" group 913 are excluded from the notification center.
The user may specify which applications to include in the notification center by using any suitable method. For example, the user may manually adjust option 912 by selecting "EDIT" (EDIT) option 914. In response to the user selecting the "edit" option 914, the electronic device may provide a display screen that allows the user to manually move the application in and out of sets 911 and 913.
Turning now to FIG. 9C, a display screen 920 may be shown in response to user selection of the "edit" option 914 (FIG. 9B). As shown in display 920, the user may move each of options 912 in and out of "in notification center" group 911 and "not in notification center" group 913. For example, the user may tap option 922 and drag it from "not in notification center" group 913 to "in notification center" group 911.
Fig. 9D shows a display screen 924. Which may be displayed after option 922 has been moved to the bottom of group 911 "in notification center". In some cases, the order of placement of applications in group 911 "in notification center" may represent the order in which application panes will be displayed in the notification center. For example, based on the "in Notification center" group 911 of FIG. 9D, the notification center may include a weather panel at the top, followed by a mail panel, and so on. Accordingly, the user may adjust the order in which the application panes are displayed in the application center by moving each of the options 922, 926, 928, or 930 up or down (e.g., by tapping and dragging each option).
Once the user has completed editing the application to be displayed in the notification center, the user may select a "DONE (DONE)" option 932. After selection by the user, the electronic device may return to a display similar to display 906 of FIG. 9B.
As another example, the user may specify which applications to display in the notification center by tapping on an option in options 912. For example, referring to FIG. 9B, the user may select the "mail" option 916. In response to a user selection, the electronic device can provide a detailed view of the display options for the "mail" application.
Turning now to fig. 9E, display screen 940 may provide a detailed view of the display options for the "mail" application. The display screen 940 may include a switch 941, which may allow a user to specify whether a notification received from a "mail" application is included in the notification center. Specifically, if the user sets the switch 941 to "on", the notification received from the "mail" application will be displayed in the notification center. In contrast, if the user sets the switch 941 to "off", the notification received from the "mail" application will not be displayed in the notification center.
If the notification from the application has been selected for inclusion in the notification center, the user may specify a predetermined number of notifications to be displayed for the application by selecting the "show" option 942.
Referring now to fig. 9F, the electronic device can provide a display screen 950, which display screen 950 can be displayed in response to a user selecting a "show" option 942. The display screen 950 may include a list of options 952, where each option of the list may allow a user to specify a different number of notifications (e.g., 1, 5, or 10 notifications) to be displayed for an application in a notification center. For example, in response to a user selecting option 954, an application pane corresponding to a mail application (e.g., application pane 614 of fig. 6B) may display up to 10 notifications. In some cases, based on the update frequency, the predetermined number of notifications may be set to a higher number for some applications (e.g., email or social networking applications) and may be set to a lower number for other applications (e.g., weather applications).
Those skilled in the art will appreciate that the options provided in the options list 952 are merely illustrative. In particular, the electronic device may alternatively provide one or more options that allow the user to specify any predetermined number of notifications (e.g., 1, 5, 10, 20, or more items, etc.).
Based on the predetermined number of notifications, the notification module can automatically clear the notifications from the application pane when the number of displayable notifications exceeds the predetermined number (e.g., as shown in fig. 6C and 6D). Because the notification module can automatically remove one or more notifications exceeding a predetermined number of notifications, the notification module can provide a concise notification presentation in the notification center. In addition, this approach is convenient for the user, as the user does not have to clear the notification out of the notification center (e.g., by selecting button 616 of FIG. 6B).
Referring back to fig. 9E, the display screen 940 may also include an option 943, which option 943 may allow a user to select whether to display a notification associated with an application when the electronic device is operating in a locked state (e.g., in the display screens of fig. 8A-8A). In some embodiments, the user may select the add option 943. That is, option 943 may have a default state of "off," such that notifications received while the device is in the locked state are not displayed until the device switches to the unlocked state.
This arrangement may be advantageous because it allows the user to customize the display of notifications based on privacy considerations. For example, the user may not want new email messages to appear on the display while the device is operating in the locked state. However, once the user unlocks the device, the user may wish to be able to see the received email by invoking the notification center or by one or more flags. However, if the user selects to set option 943 to "on," the notification module may immediately display a new notification that is received when the device is in the locked state.
Option 944 may allow the user to specify how notifications are to be displayed when the electronic device is operating in the unlocked state. For example, options 944 may include "none" option 945, "banners" option 946, and "reminders" option 947.
In response to the user selecting "none" option 945, the notification module may disable visual notification for a particular application. However, the notification may still be displayed in the notification center. Alternatively, in response to the user selecting the "banners" option 946, the notification module can display the received notification as one or more banners on the display screen (e.g., the banners shown in fig. 7A-7E). For example, if a particular application transmits important but frequently generated notifications, the user may select the "banners" option 946.
In response to the user selecting the "reminder" option 947, the notification module can display the received notification as a message asking for the user's response (e.g., the user is asked to select either the "dismiss" option or the "view" option depending on the type of application).
The display screen 940 may also include a "logo apps icon" option 948, which option 948 may indicate whether an app drawing corresponding to the received notification is displayed within the flag. For example, if "logocons" 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 fig. 7A). Conversely, if the "logo apps icon" is set to "off," the notification module will not display the icon corresponding to the application in the flag. Those skilled in the art will appreciate that in addition to or instead of a drawing of an application, the "logocons" may support the notification module to add any other visual adornments to the flag.
The "sound" option 949 may indicate whether sound is supported when a notification for an application is received. If the "sound" option 949 is set to "off, no sound will be played when a notification for an application is received. Conversely, if the "sound" option 949 is set to "on," the notification may play an audio alert when a new notification for the application is received. As a result, even if the "none" option 945 is selected for a particular application (e.g., no visual notification), the user may still hear the audio alert when a new notification for that application is received. As a result of hearing the audio alert, the user may later select to invoke the notification center in order to access the notification. Those skilled in the art will appreciate that the notification settings discussed in fig. 9A-9F are merely illustrative and that any other suitable notification settings may be made customizable.
As discussed previously, the notification module may be implemented on any suitable electronic device. For example, the notification module can be implemented on an electronic device having a large display and/or touch screen (e.g., touch I/O device 212 of fig. 2). In such embodiments, the notification center may not fill the entire screen as it would on a smaller device.
For example, turning to fig. 10A-10C, a display screen of an electronic device having a large display is shown. Referring first to FIG. 10A, display screen 1000 shows notification center 1002 not filling the entire display screen 1000.
Further, for devices with large displays, the notification module may display a visual indication when the notification center does not include any new notifications. For example, as shown in display 1004 of FIG. 10B, the notification module can indicate that the notification center 1002 does not currently contain a new notification. Those skilled in the art will appreciate that such an indication may also be provided on an electronic device having a smaller display.
Referring now to fig. 10C, a display screen 1006 illustrates the types of notifications that may be displayed when an electronic device with a large screen is in both a locked state and a landscape mode. Thus, compared to fig. 8A-8F, the received new notification is not displayed on the display screen first as a larger single notification. Instead, the new notification is displayed in scrollable notification list 1008. Accordingly, a notification module may not be required to display a pull-down option, such as pull-down option 830 of fig. 8A-8D. Those skilled in the art will appreciate that notification list 1008 may be displayed in a similar manner when the device is in portrait mode.
Those skilled in the art will appreciate that each notification in notification list 1008 may exhibit similar characteristics as the notifications in notification list 834 (fig. 8E and 8F). Additionally, those skilled in the art will appreciate that the display screens shown in FIGS. 10A-10C are but one embodiment of a notification center. Accordingly, a notification module implemented on an electronic device with a large display may display notifications in any suitable manner (e.g., similar to the manner in which notifications are provided in fig. 6A-6E, 7A-7E, 8A-8F, and 9A-9F).
Turning now to fig. 11-14, flow charts of illustrative processes according to various embodiments of the invention are shown. These processes may be performed by one or more components of an electronic device (e.g., device 100 of fig. 1 or system 200 of fig. 2). For example, at least some of the steps in the processes of fig. 11-14 may be performed by a notification module (e.g., notification module 238 of fig. 2). Additionally, those skilled in the art will appreciate that some steps may be performed in conjunction with a touch processing module (e.g., touch processing module 226 of FIG. 2) and/or a graphics module (e.g., graphics module 228 of FIG. 2).
Turning first to FIG. 11, a process 1100 for displaying drop down options in response to receiving multiple notifications is illustrated. Process 1100 may begin at step 1102, and in step 1104, a notification module may receive a plurality of notifications from at least one application.
Then, in step 1106, the notification module can detect that the electronic device is operating in a locked state. Continuing to step 1108, the notification module can provide a drop-down option (e.g., drop-down option 830 of fig. 8A-8D) associated with the plurality of notifications. Additionally, the notification module can also provide a notification (e.g., notification 802 of fig. 8A and 8B, notification 816 of fig. 8C, or notification 824 of fig. 8D) on the display screen, where the displayed notification can be the most recently received notification.
After providing the pull-down option, process 1100 may move to step 1110. In step 1110, the notification module may determine that the user has selected the drop down option. Then, in step 1112, the notification module can provide a list of the plurality of notifications (e.g., notification list 834 of fig. 8E and 8F) to the user. Process 1100 may then end at step 1114.
Turning now to FIG. 12, a process 1200 for displaying a notification center is illustrated. Process 1200 may begin at step 1202, and in step 1204, a notification module may receive a plurality of notifications, where the plurality of notifications may include at least one of a push-based notification (e.g., a notification from a third party or third party application) and a trigger-based notification (e.g., an alert or reminder).
Then, in step 1206, the notification module may detect that the electronic device is in an unlocked state. After detecting that the device is in the unlocked state, process 1200 may move to step 1208.
In step 1208, the notification module can detect that the user has selected to access the notification center. For example, the notification module may detect that the user has performed a general swipe gesture (e.g., by flicking one or more fingers quickly in a downward motion from the top of the display screen). As another example, the notification module may detect that the user has slowly dragged one or more fingers down from the top of the display screen.
Continuing with step 1210, the notification module can display a notification center, wherein the notification center can include a plurality of panes (e.g., pane 608 and 614 of FIG. 6B) associated with a plurality of notifications. Process 1200 may then end at step 1212.
Referring now to fig. 13, a flow diagram of an illustrative process 1300 for providing a flag is shown. Process 1300 may begin at step 1302, and in step 1304, a 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.
Continuing to step 1308, the notification module can provide a flag associated with the notification, wherein the flag allows a user to access at least one control that overlaps with the flag. For example, as shown in fig. 7E, the notification module may provide a flag 728 that overlaps with a "notify" button 730. However, the notification module may nonetheless allow the user to access the "notify" button 730. After providing the flag, the process 1300 may end at step 1310.
Referring now to FIG. 14, a flowchart of an illustrative process 1400 for providing notification settings is shown. Process 1400 may begin at step 1402, and in step 1404, the notification module may provide an option to modify the settings for the device notification (e.g., "Notification" option 904 of FIG. 9A). Then, in step 1406, the notification module can detect that the user has selected the option.
Continuing to step 1408, the notification module can provide a plurality of notification settings, wherein the plurality of notification settings can include options associated with one or more of: a notification order option (e.g., option 912 of fig. 9B), a notification number option (e.g., option list 952 of fig. 9F), and a reminder style option (e.g., reminder style option 944 of fig. 9E). Process 1400 may then end at step 1410.
It should be understood that processes 1100, 1200, 1300, and 1400 of fig. 11-14 are merely illustrative. Any steps may be removed, modified, or combined, and any additional steps may be added without departing from the scope of the invention.
The described embodiments of the present invention have been presented for purposes of illustration and not limitation.
Claims (14)
1. A method, comprising:
at an electronic device having a touch-sensitive display,
detecting that the electronic device is operating in a locked state;
while the device is operating in the locked state:
receiving a plurality of notifications from one or more applications;
providing a drop-down option associated with the plurality of notifications, wherein the drop-down option comprises a visual affordance indicating availability of a list of notifications that includes the plurality of notifications while the device is operating in the locked state;
detecting a gesture, including detecting a contact on the touch-sensitive display at a location of the visual affordance, and detecting a movement on the touch-sensitive display; and
in response to detecting the gesture, providing a list of the plurality of notifications.
2. The method of claim 1, wherein each notification of the plurality of notifications comprises representative graphics and text.
3. The method of any of claims 1 and 2, wherein the list of the plurality of notifications is arranged based on a time at which each of the plurality of notifications was received.
4. The method according to any one of claims 1-2, further including:
receiving a user command to unlock the electronic device;
relocking the electronic device; and
upon the electronic device re-entering the locked state, providing a drop-down option associated with a second plurality of notifications that cease to display the list of received notifications that were displayed prior to unlocking the electronic device.
5. The method according to any one of claims 1-2, further including: displaying a user input unlock region, the user input unlock region comprising text.
6. The method of claim 5, wherein the text of the user input unlock region is context sensitive based on a received notification.
7. The method of any of claims 1-2, wherein the locked state is a state that restricts user interaction with the electronic device.
8. An apparatus with a touch-sensitive display, comprising:
means for detecting that the electronic device is operating in a locked state;
while the electronic device is operating in the locked state:
means for receiving a plurality of notifications from one or more;
means for providing a drop-down option associated with the plurality of notifications, wherein the drop-down option includes a visual affordance indicating availability of a list of notifications that includes the plurality of notifications while the electronic device is operating in the locked state;
means for detecting a gesture, wherein detecting a gesture comprises detecting a contact on the touch-sensitive display at a location of the visual affordance and detecting a movement on the touch-sensitive display; and
means for providing a list of the plurality of notifications in response to detecting the gesture.
9. The apparatus of claim 8, wherein each notification of the plurality of notifications comprises representative graphics and text.
10. The apparatus of any of claims 8-9, wherein the list of the plurality of notifications is arranged based on a time at which each of the plurality of notifications was received.
11. The apparatus of any of claims 8-9, further comprising:
means for receiving a user command to unlock the electronic device;
means for re-locking the electronic device; and
means for providing a drop-down option associated with a second plurality of notifications after the electronic device re-enters the locked state, the second plurality of notifications ceasing to display the list of received notifications that were displayed prior to unlocking the electronic device.
12. The apparatus of any of claims 8-9, further comprising: means for displaying a user input unlock region, the user input unlock region comprising text.
13. The device of claim 12, wherein the text of the user input unlock region is context sensitive based on a received notification.
14. The apparatus of any of claims 8-9, wherein the locked state is a state that restricts user interaction with the electronic device.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US61/493,470 | 2011-06-05 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1192781A HK1192781A (en) | 2014-08-29 |
| HK1192781B true HK1192781B (en) | 2018-04-13 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11921980B2 (en) | Systems and methods for displaying notifications received from multiple applications | |
| AU2012268312A1 (en) | Systems and methods for displaying notifications received from multiple applications | |
| HK1192781B (en) | Systems and methods for displaying notifications received from multiple applications | |
| HK1192781A (en) | Systems and methods for displaying notifications received from multiple applications |