On-demand loading of notification images
Computing devices efficiently manage notification image loading by initially rendering at low resolution and upgrading to higher resolution on demand, addressing resource inefficiencies and enhancing user experience.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2024-12-17
- Publication Date
- 2026-06-25
AI Technical Summary
Computing devices consume unnecessary computational resources and degrade user experience by fully downloading images for notifications, especially in devices with limited resources or slow connections, even when users do not view the images.
Computing devices generate and output notifications at a low initial resolution and dynamically load higher resolution images on demand based on user interactions, reducing resource consumption and latency.
This approach reduces computational resource usage, improves user experience, and minimizes latency by loading and rendering notification images only when requested, optimizing power and memory usage.
Smart Images

Figure US2024060540_25062026_PF_FP_ABST
Abstract
Description
Docket No.: 1333-936WO01ON-DEMAND LOADING OF NOTIFICATION IMAGESBACKGROUND
[0001] Applications or services may generate “notifications” for alerting a user to new or interesting information for a variety of reasons. For example, an application or service may generate notifications to alert the user to a new text message, a reminder, a sports score, a news headline, and the like. A user may use multiple different computing devices at the same time that are each able to output indications of notifications. For example, a user may use a smartphone, a smart watch, and computerized headphones that each are able to output indications of notifications.SUMMARY
[0002] In general, the techniques of this disclosure are directed to loading and outputting various resolutions of images associated with notifications. A computing device may obtain a first intermediate notification corresponding to a notification associated with one or more images. For example, the computing device may obtain (e.g., from a companion computing device, from a computing system, from a network, from modules executed by the computing device, etc.) a first representation of a notification (e.g., a message or alert with notification data generated by a software application) associated with one or more images as a first intermediate notification that includes a portion of data associated with at least one image of the one or more images at a first resolution. The first resolution may indicate a first downsampling of one or more images or videos associated with a notification, such as a reduction in pixels per inch, reduction in quality, change or reduction in color palette, change or reduction in a frame rate or frequency, etc., compared to an original version of the one or more images or videos associated with the notification. The first resolution associated with the at least one image may include a first rendering of at least one image associated with a notification using a first portion of data corresponding to the at least one image at the first resolution, where the first portion of data may be determined according to a device class associated with the computing device. The computing device may load the at least one image at the first resolution included in the first intermediate notification to create the first representation of the notification. The computing device may output, for display via a display device associated with the computing device, the first representation of the notification as graphical data for the first intermediate notification including the loaded, atDocket No.: 1333-936WO01 least one image at the first resolution.
[0003] Based on a request associated with the first intermediate notification displayed via the display device, the computing device may obtain additional data to generate one or more additional intermediate notifications that include one or more images associated with a notification at resolutions that are greater than the first resolution of the first intermediate notifications (e.g., a second intermediate notification with an image at a second resolution that has a greater pixel per inch, quality, color palette, frame rate, or frequency, etc., compared to a first resolution of the image in a first intermediate notification). For example, responsive to the computing device receiving, via user inputs associated with the display device, an indication associated with expanding the first intermediate notification, the computing device may obtain (e.g., from a companion computing device, a computing system, a network, locally stored data representing the at least one image associated with the notification, etc.) additional data associated with the image that includes a second portion of notification data for the at least one image that was not included in the at least one image at the first resolution. The computing device may obtain the additional data based on the device class associated with the computing device. The computing device may generate a second representation of the notification as a second intermediate notification based on a rendering of the at least one image at the second resolution using the at least one image at the first resolution and the obtained additional data. The computing device may output, for display via the display device, the second representation of the notification as graphical data for the second intermediate notification.
[0004] In some aspects, the techniques described herein relate to a method including: obtaining, by a computing device, a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; outputting, by the computing device and for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtaining, by the computing device, additional data for the image associated with the notification, and outputting, by the computing device and for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
[0005] In some aspects, the techniques described herein relate to a computing deviceDocket No.: 1333-936WO01 including: a processing unit; a display device; and a storage device that stores instructions executable by the processing unit to: obtain a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; output, for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtain additional data for the image associated with the notification; and output, for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
[0006] In some aspects, the techniques described herein relate to a non-transitory computer- readable storage medium including instructions, that when executed by one or more processors, cause the one or more processors of a computing device to: obtain a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; output, for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtain additional data for the image associated with the notification; and output, for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
[0007] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.BRIEF DESCRIPTION OF DRAWINGS
[0008] FIG. l is a conceptual diagram illustrating an example computing system for on- demand loading of notification images at various resolutions, in accordance with one or more aspects of the present disclosure.
[0009] FIG. 2 is a block diagram illustrating an example computing device configured to load notification images at various resolutions, in accordance with one or more aspects of theDocket No.: 1333-936WO01 present disclosure.
[0010] FIG. 3 is a conceptual diagram illustrating an example operation of an example computing device requesting a notification image from an application with a specific resolution, in accordance with one or more aspects of the present disclosure.
[0011] FIG. 4 is a block diagram illustrating a first example computing device requesting notification data from a second example computing device, in accordance with one or more aspects of the present disclosure.
[0012] FIG. 5 is a conceptual diagram illustrating an example operation of a first example computing device requesting notification data from a second example computing device, in accordance with one or more aspects of the present disclosure.
[0013] FIG. 6 is a flowchart illustrating example operations performed by a first example computing device that is configured to load notification images at various resolutions, in accordance with one or more aspects of the present disclosure.DETAILED DESCRIPTION
[0014] FIG. 1 is a conceptual diagram illustrating example computing system 100 for on- demand loading of notification images at various resolutions, in accordance with one or more aspects of the present disclosure. In the example of FIG. 1, computing devices 110A-110N of computing system 100 each represents an individual mobile or non-mobile computing device. Examples of each of computing devices 110A-110N may include a mobile phone, a tablet computer, a laptop computer, a desktop computer, a wearable device (e.g., a computerized watch, computerized eyewear, computerized headphones, computerized gloves, etc.), a virtual reality or augmented reality device, a spatial computing device, a server, a mainframe, a set-top box, a television, a home automation device or system (e.g., an intelligent thermostat or home assistant device), a gaming system, a media player, an e-book reader, a television platform, an automobile navigation or infotainment system, or any other type of mobile, non-mobile, wearable, and non-wearable computing device configured to receive, and output an indication (e.g., audible alert, visual alert, haptic alert, voice alert, or other type of indication) of, notification data.
[0015] Computing device 110A may be communicably coupled to computing devices 11 OB- 11 ON via BLUETOOTH, BLE, WI-FI, ultra-wideband (UWB), near-field communication (NFC), or any other suitable wireless communication protocol. In some examples, computing device 110A may be a wearable computing device, such as a smart watch, smartDocket No.: 1333-936WO01 glasses, or the like. In some examples, computing devices 11 OB-1 ION may be companion computing devices, such as a smartphone, smart home assistant device, a laptop computer, or the like. In some instances, computing device 110A may communicate with computing devices 11 OB-1 ION over a network, such as the Internet.
[0016] Computing device 110, in the example of FIG. 1, may include user interface component (UIC) 112, user interface (UI) module 120, notification module 124, and one or more applications 126. UIC 112 of computing device 110A may function as an input and / or output device for computing device 110A. UIC 112 may be implemented using various technologies. For instance, UIC 112 may function as an input device using presence-sensitive input screens, microphone technologies, infrared sensor technologies, or other input device technology for use in receiving user input. UIC 112 may function as an output device configured to present output to a user using any one or more display devices, speaker technologies, haptic feedback technologies, or other output device technology for use in outputting information to a user.
[0017] UIC 112 may detect input (e.g., touch and non-touch input) from a user of computing device 110A. UIC 112 may detect indications of input by detecting one or more gestures performed by a user (e.g., the user touching, pointing, and / or swiping at or near one or more locations of UIC 112 with a finger or a stylus pen). UIC 112 may output information to a user in the form of a user interface, which may be associated with functionality provided by computing device 110A.
[0018] UI module 120 of computing device 110A may manage user interactions with UIC 112 and other components of computing device 110A. In other words, UI module 120 may act as an intermediary between various components of computing device 110A to make determinations based on indications of user inputs detected by UIC 112 and generate output at UIC 112 in response to the user inputs. UI module 120 may receive instructions from an application, service, platform, or other module of computing device 110A to cause UIC 112 to output graphical user interfaces.
[0019] Notification module 124 may perform functions associated with receiving, managing, and otherwise handling at least a portion of notification data generated and / or received by platforms, applications, and services executing at, or in communication with, computing device 110A. Such notification data may be generated by applications and services executing at computing device 110A (e.g., notification data generated by applications 126) or received by computing device 110A from an external system, such as a cloud computing system, notification management system, or the like. As used throughout the disclosure, the termDocket No.: 1333-936WO01“notification” is used to describe various types of information (e.g., various types of indications associated with messages, alerts, reports, notices, etc.) that may indicate the occurrence of an event, update, reminder, etc. within an execution environment (e.g., that includes platforms, applications, and services executing at, or in communication with, computing device 110A) of computing device 110A. A notification may include, but is not limited to, information specifying an event such as the receipt of a communication message (e.g., e-mail, instant message, text message, direct message, private message, etc.) by a messaging account associated with computing device 110A, the receipt of information by a social networking account associated with computing device 110A (e.g., a private message, a reply to a social media post, a reaction to a social media post, etc.), a reminder of a calendar event (meetings, appointments, etc.) associated with a calendar account of computer device 110A, information generated and / or received by a third-party application executing at or in communication with computing device 110A such as meal delivery updates, sports scores, news headlines, etc., the end of a timer, an alarm, the transmittal and / or receipt of intercomponent communications between two or more components of platforms, applications, and / or services executing at computing device 110A, or any other information that may be of interest to a user of computing device 110A.
[0020] Computing device 110A may execute one or more applications 126. One or more applications 126 may include computer readable instructions associated with functionality of a software application, such as a messaging application, a social media application, a health application, a gaming application, a streaming application, a camera application, a word processor, a web browser, a text application, an operating system, a distributed computing application, a graphic design application, a video editing application, a web development application, or any other type of application. In some examples, computing devices 11 OB- 11 ON communicably coupled to computing device 110A may execute corresponding companion applications associated with one or more applications 126. One or more applications 126 may exchange data or otherwise communicate with instances of corresponding companion applications using a wireless communication protocol connected computing device 110A to computing devices 110B-1 ION. For example, applications 126 may use notification module 124 to send and / or receive notification data associated with applications 126 to and / or from computing devices 110B-1 ION.
[0021] Computing device 110A may generate and / or receive notification data that includes images. For example, applications 126 may generate notification data for a notification that includes an image (e.g., JPEG images, High-Efficiency Image Format, HEIF, PortableDocket No.: 1333-936WO01Network Graphics, PNG, Graphics Interchange Format, GIF, Tagged Image File Format, TIFF, uncompressed image formats, compressed image formats, motion photos, etc.). A notification may correspond to information or indications of messages, alerts, or other notices associated with a software application that may inform a user about a particular event, update, reminder, or the like. A notification may include notification data indicating data for particular event, update, reminder, or the like (e.g., data indicating one or more images or other multimedia elements associated with a notification, data indicating text associated with a notification, data indicating actionable data associated with a notification, data indicating sender or source information associated with a notification, data indicating a timestamp associated with a notification, data indicating a priority or urgency associated with a notification, data indicating a notification type associated with a notification, etc.). For example, a notification may include notification data for a graphical element associated with a new message associated with a messaging application. Applications 126 may locally store generated notification data for a notification as cached data.
[0022] Typically, computing devices may fully download images based on locally cached notification data and / or fully download images based on notification data received from any of computing devices 11 OB-1 ION or an external notification system when preparing notifications for display. For example, a computing device may generate and / or receive notification data for a notification including one or more images. The computing device may fully download the one or more images associated with the notification data to prepare a notification to output for display via a display device associated with the computing device. However, fully downloading the one or more images may consume computational resources (e.g., memory usage, processing usage, power consumption, etc.) associated with the computing device, which may be unnecessary especially in instances where a user operating the computing device dismisses the notification without viewing the one or more images or in instances where the user dismisses the notification after viewing a preview of the notification. Additionally, or alternatively, in instances where the computing device is a wearable computing device with limited screen size and computational resources, for example, fully downloading the one or more images may decrease the user’s experience as a result of the limited screen size making it difficult for the user to effectively browse or view the one or more images and / or as a result of slower connectivity or limited computational resources associated with the computing device fully downloading the one or more images. For example, the user’s experience may be detrimentally affected by fully downloading the one or more images by consuming a power source of the computing device to fully download theDocket No.: 1333-936WO01 one or more images even when the user does not view the one or more images. In another example, the user’s experience may be detrimentally affected by fully downloading the one or more images via a slow connection, which may result in a delay associated with outputting the notification associated with the one or more images.
[0023] In accordance with the techniques described herein, computing device 110A may output representations of a notification as intermediate notifications that include images associated with the notification at various resolutions. “Resolution,” as described herein, may refer to parameters indicating a particular sampling or rendering of an image or video, such as a pixel per inch, an image or video quality, a color palette, a frame rate or frequency, or other parameter computing device 110A may implement when rendering images or videos. Notification module 124 of computing device 110A may obtain first intermediate notification 138A corresponding to a notification for a software application of applications 126. Notification module 124 may obtain first intermediate notification 138A that includes first resolution image 156A (e.g., an image associated with the notification that has been rendered at a first resolution). First resolution image 156A may include a first down-sampling of an image associated with a notification that is rendered at a first resolution (e.g., a first resolution with parameters indicating a low pixel per inch, a low image quality, a low or reduced color palette, a low frame rate or frequency, etc. associated with the first downsampling).
[0024] In one example, notification module 124 may obtain an indication of a notification from a software application of applications 126 that generated notification data for the notification (e.g., data generated by the software application indicating content, attributes, etc. of the notification), including data for one or more images. Notification module 124 may store the raw notification data for the notification as cached data based on the indication of the notification obtained from the software application. Notification module 124 may generate first intermediate notification 138A based at least on a portion of the cached data for the notification that is associated with first resolution image 156A. For example, notification module 124 may generate first intermediate notification 138A by rendering a portion of cached data for a notification to load first resolution image 156A that is associated with one or more images, indicated in the cached data, according to a first, low-resolution. Notification module 124 may generate first intermediate notification 138A to include first resolution image 156A as an image at a first resolution according to a resolution specified in a device class assigned to computing device 110A. For example, notification module 124 may generate first intermediate notification 138A to include first resolution image 156A asDocket No.: 1333-936WO01 one or more images that are rendered according to a resolution associated with a device class assigned to computing device 110A (e.g., device classes indicating device specifications associated with a wearable device, a smartphone, a tablet, a laptop, or the like). In some instances, notification module 124 may, responsive to receiving first intermediate notification 138A, delete the portion of cached data associated with first resolution image 156A to reduce memory usage associated with storing notification data associated with first resolution image 156A.
[0025] In another example, computing device 110A may obtain data for first intermediate notification 138A from at least one of computing devices 110B-1 ION. For example, computing device HOB may receive a notification associated with a software application (e.g., an application of applications 126). Computing device HOB may store the notification as cached data. Computing device 110B may generate, based on a portion of the cached data, data for first intermediate notification 138A to include first resolution image 156A as one or more images rendered at a first, low resolution. Computing device 110B may generate data for first intermediate notification 138A to include first resolution image 156A as one or more images rendered at the first resolution based on a device class associated with computing device 110A. Computing device 110B may send data for first intermediate notification 138A to computing device 110A via a wireless communication protocol (e.g., BLE, WIFI, NFC, etc.), for example. In some instances, computing device 110B may, responsive to receiving second intermediate notification 138B, delete the portion of cached data associated with first resolution image 156A (e.g., the additional data) to reduce memory usage associated with storing notification data associated with first resolution image 156A.
[0026] Computing device 110A may output, for display, first intermediate notification 156A including first resolution image 156A as one or more images associated with a notification that are rendered at a first resolution. For example, responsive to obtaining (e.g., from notification module 124, from computing device 110B, from a computing system, from a network, etc.) data for first intermediate notification 138A, UI module 120 may generate data for a graphical user interface (e.g., a notification tray) that includes a graphical element indicating first intermediate notification 138A including first resolution image 156A as a first representation of a notification. UI module 120 may output the data for the graphical user interface for display via UIC 112, as illustrated in the example of FIG. 1.
[0027] In response to receiving request 158 associated with first intermediate notification 138A displayed as a first representation of a notification, computing device 110A may obtain additional data for one or more images associated with the notification. For example,Docket No.: 1333-936WO01 responsive to UI module 120 determining request 158 as a user input selecting first intermediate notification 138A via a user interface (e.g., notification tray) displayed at UIC 112, notification module 124 may request and obtain additional data to further render one or more images associated with first resolution image 156A. Computing device 110A may obtain additional data for the one or more images that includes data that was not rendered or otherwise included in first resolution image 156A. For example, computing device 110A may obtain additional data, stored as cached data at one or more of computing devices 110, for the one or more images to further render first resolution image 156A for second intermediate notification 138B. The additional data obtained by computing device 110A may be based on a device class associated with computing device 110A. For example, based on computing device 110A being associated with a device class of a wearable computing device, computing device 110A may receive additional data that corresponds to wearable computing device specifications (e.g., screen size) that improves a user’s experience viewing one or more images at a second resolution that are rendered using the additional data (e.g., second resolution image 156B of second intermediate notification 138B).
[0028] Notification module 124 may generate second intermediate notification 138B based on additional data for one or more images associated with a notification initially represented as first intermediate notification 138A. For example, notification module 124 may update first resolution image 156A (e.g., one or more images associated with the notification at the first resolution) included in first intermediate notification 138A (e.g., by implementing progressive image rendering techniques) to include the additional data in a way that renders second resolution image 156B (e.g., the one or more images at a second resolution that is greater than the first resolution of first resolution image 156A). In other words, notification module 124 may generate, responsive to receiving request 158 associated with first intermediate notification 138, second intermediate notification 138B to include second resolution image 156B as one or more images, associated with a notification, at a second resolution that is greater than the first resolution associated with a first representation of the notification (e.g., a second resolution with parameters indicating a greater pixel per inch, a greater image or video quality, a greater color palette, a greater frame rate or frequency, etc. compared to parameters indicated in a first resolution associated with first resolution image 156A of first intermediate notification 138A). Notification module 124 may generate second intermediate notification 138B to include second resolution image 156B as one or more images at a second resolution according to a device class associated with computing device 110A that may be specific to device specifications of computing device 110A to improve aDocket No.: 1333-936WO01 user’s experience viewing second resolution image 156B.
[0029] Computing device 110A may output a second representation of a notification as second intermediate notification 138B including second resolution image 156B as one or more images associated with the notification at a second resolution that is greater than a first resolution associated with first resolution image 156A of first intermediate notification 138A. For example, notification module 124 may send data for second intermediate notification 138B including second resolution image 156B to UI module 120. UI module 120 may generate data for a graphical user interface that includes a graphical element indicating second intermediate notification 138B as a second representation of a notification. UI module 120 may output the data for the graphical user interface indicating second intermediate notification 138B for display via UIC 112 in a way that replaces first intermediate notification 138A as a representation of a notification associated with an application of applications 126. Although discussed with respect to images, the techniques described herein may similarly be applied to videos, GIFs, or other modes of notification data.
[0030] The techniques described herein may provide one or more technical advantages that realize one or more practical applications. For example, computing device 110A may reduce latency associated with outputting notifications and / or reduce computational resource consumption (e.g., reduce computational resource consumption associated with utilization of a power source, utilization of memory resources, utilization of communication resources, etc.) by outputting low-resolution renderings of notification images by default and dynamically loading notification images at higher resolutions when requested. Computing device 110A may quickly output notifications via UIC 112 by loading and rendering only a portion of notification data for a notification, potentially reducing latency associated with the time between receiving an indication of the notification and outputting a representation of the notification. Computing device 110A may potentially reduce computational resource consumption associated with generating and outputting notifications by loading and rendering portions of notification images on-demand (e.g., when computing device 110 receives a request associated with an intermediate notification). In this way, computing device 110A may not utilize computational resources (e.g., improve battery life of a power source of computing device 110, reduce memory usage of computing device 110, etc.) associated with generating and outputting complete notification data for a notification in instances where a user operating computing device 110A dismisses the notification without viewing the content of the notification.Docket No.: 1333-936WO01
[0031] Additionally, or alternatively, computing device 110A may conserve computational resources associated with generating intermediate notifications by using progressive image rendering techniques. For example, computing device 110A may request additional data that is not included in a previous rendering of notification images to update the previous rendering of notification images without redundantly downloading notification data for the notification images. Computing device 110A may progressively delete cached notification data used to generate notification images at different resolutions to conserve memory usage and / or reduce power consumption associated with managing notifications. In some examples, by dynamically downloading and deleting portions of data based on a device class associated with computing device 110A, computing device 110A may improve a user’s experience by outputting intermediate notifications (e.g., first intermediate notification 138A, second intermediate notification 138B, etc.) considering device specifications of computing device 110A in a way that reduces latency and computational resources (e.g., reduce power consumption, memory usage, communication usage, etc.) associated with generating and outputting notifications.
[0032] FIG. 2 is a block diagram illustrating example computing device 210 configured to load notification images at various resolutions, in accordance with one or more aspects of the present disclosure. Computing device 210, user interface component (UIC) 212, notification module 224, one or more applications 226, and user interface (UI) module 220 of FIG. 2 may be example or alternative implementations of any of computing devices 110, UIC 112, notification module 124, one or more applications 126, and UI module 120 of FIG. 1, respectively.
[0033] Communication channels 250 (“COMM channel 250”) may interconnect each of the components 240, 212, 244, 246, 252, and 248 for inter-component communications (physically, communicatively, and / or operatively). In some examples, communication channel 250 may include a system bus, a network connection, an inter-process communication data structure, or any other method for communicating data.
[0034] Power source 252 may provide power to one or more components of computing device 210. In some examples, power source 252 may be a battery. Power source 252 may provide power to components 240, 212, 244, 246, and 248 of computing device 210, for example. Examples of power source 252 may include, but are not necessarily limited to, batteries having zinc-carbon, lead-acid, nickel cadmium (NiCd), nickel metal hydride (NiMH), lithium ion (Li-ion), and / or lithium polymer (Lipo) chemistries. In some examples, power source 252 may have a limited capacity (e.g., 1000-3000 mAh).Docket No.: 1333-936WO01
[0035] One or more input / output components 246 (referred to herein as “I / O components 246”) of computing device 210 may receive inputs and outputs. Examples of input are tactile, audio, and video input. I / O components 246 may include a presence-sensitive display, a fingerprint sensor, touch-sensitive screen, mouse, keyboard, voice responsive system, video camera, microphone, or any other type of device for detecting input from a human or machine. Examples of outputs are tactile, audio, and video output. I / O components 246 may include a presence-sensitive display, sound card, video graphics adapter card, speaker, liquid crystal display (LCD), or any other type of device for generating output to a human or machine and receiving inputs provided by a human or machine. In some instances, UIC 212 may be a component of I / O components 246.
[0036] Communication units 244 of computing device 210 may communicate with one or more external devices via one or more wired and / or wireless networks by transmitting and / or receiving network signals on the one or more networks. Examples of communication units 244 may include a network interface card (e.g., Ethernet card), an optical transceiver, a radio frequency transceiver, a GNSS receiver, or any other type of device that can send and / or receive information. Other examples of communication units 244 may include short wave radios, cellular data radios (for terrestrial and / or satellite cellular networks), wireless network radios, as well as USB controllers. Communication units 244 may, in some instances, implement functionality and / or execute instructions associated with communication protocol 270 and / or notification module 224 (e.g., in instances where processing circuitry 240 is operating in low-power mode). Wireless communication protocol 270 may include instructions for implementing one or more wireless communication protocols (e.g., BLUETOOTH, WIFI, Near Field Communication, etc.) to communicate information (e.g., intermediate notifications, instructions for obtaining notification data, etc.) between computing device 210 and other computing devices associated with computing device 210.
[0037] Processing circuitry 240 may implement functionality and / or execute instructions within computing device 210. For example, processing circuitry 240 may receive and execute instructions that provide the functionality of notification module 224, one or more applications 226, UI module 220, operating system (OS) 228, and / or communication protocol 270. These instructions executed by processing circuitry 240 may cause computing device 210 to store and / or modify information within storage components 248 or processing circuitry 240 during program execution. Processing circuitry 240 may execute instructions of notification module 224, one or more applications 226, UI module 220, OS 228, and / or communication protocol 270 to perform one or more operations. That is notification moduleDocket No.: 1333-936WO01224, one or more applications 226, UI module 220, OS 228, and / or communication protocol 270 may be operable by processing circuitry to perform various functions described herein.
[0038] One or more storage components 248 (referred to herein as “storage components 248”) may store information for processing during operation of computing device 210 (e.g., computing device 210 may store data accessed by notification module 224, one or more applications 226, UI module 220, OS 228, and / or communication protocol 270 during execution at computing device 210). In some examples, storage components 248 may include temporary memory, meaning that a primary purpose of storage components 248 is not long-term storage. Storage components 248 may be configured for short-term storage of information as volatile memory and therefore not retain stored contents if powered off. Examples of volatile memories include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories.
[0039] Storage components 248 may include one or more computer-readable storage media. Storage components 248 may be configured to store larger amounts of information than volatile memory. Storage components 248 may further be configured for long-term storage of information as non-volatile memory space and retain information after power on / off cycles. Examples of non-volatile memories include magnetic hard discs, optical discs, flash memories, or forms of electronically programmable memories (EPROM) or electronically erasable and programmable (EEPROM) memories. Storage components 248 may store program instructions and / or information associated with notification module 224, one or more applications 226, UI module 220, OS 228, and / or communication protocol 270.
[0040] OS 228 may control operation of components of computing device 210. For example, OS 228 may facilitate the communication of notification module 224, one or more applications 226, UI module 220, OS 228, and / or communication protocol 270 with processing circuitry 240, communication units 244, UIC 212, I / O components 246, power source 252, and storage components 248. In some examples, OS 228 may manage interactions between software applications (e.g., one or more applications 226) and a user of computing device 210. OS 228 may have a kernel that facilitates interactions with underlying hardware of computing device 210 and provides a fully formed application space capable of executing a wide variety of software applications having secure partitions in which each of the software applications executes to perform various operations.
[0041] Notification module 224, in the example of FIG. 2, may include rendering module 234, notification application programming interfaces (APIs) 236, machine learning modelDocket No.: 1333-936WO01272, device class notification rules 232, and notification data 238. Notification APIs 236 may include computer readable instructions for rules, protocols, or other tools that interface applications 226 with operations performed by notification module 224. In one example, notification APIs 236 may receive, from applications 226, rules and protocols associated with notification module 224 preparing intermediate notifications. For instance, notification APIs 236 may receive, from a software application of applications 226, a reference to image data associated with a notification and callback instructions for dynamically requesting data for creating the image at a particular resolution.
[0042] In another example, notification APIs 236 may include an interface that allows developers of applications 226 to store notification rules for a device class associated with computing device 210 as device class notification rules 232. Device class notification rules 232 may store notification rules associated with a device class of computing device 210. For example, in instances where computing device 210 is assigned a device class of “wearable computing device,” device class notification rules 232 may include rules indicating resolutions for images when generating intermediate notifications, rules indicating user- specified preferences associated with outputting notifications for applications 226, rules indicating developer-specified preferences associated with outputting notifications for applications 226, or other rules associated with handling notifications output by computing device 210.
[0043] In another example, notification APIs 236 may include an interface for applications 226 to cache notification data for notifications at notification data 238 and / or an external computing device or computing system (e.g., any of computing devices 110 of FIG. 1, a notification management system, a cloud system, a computing system, etc.). For instance, notification APIs 236 may receive, from a software application of applications 226, notification data for a notification associated with the software application. Notification APIs 236 may store the notification data as cached data at notification data 238 according to a device classification indicated in device class notification rules 232. For example, notification APIs 236 may store image data of the notification data in distinct portions corresponding to resolutions for intermediate notifications defined by rules stored at device class notification rules, as well as store call back instructions for accessing the distinct portions when generating the intermediate notifications.
[0044] In some examples, a notification with notification data stored at notification data 238 may be associated with large image albums. In such examples, notification APIs 236 may implement device class notification rules indicating that a first intermediate notification mayDocket No.: 1333-936WO01 include a preview of a subset of images from the large image albums at a first resolution (e.g., low-resolution renderings of the subset of images), and a second intermediate notification may include each image from the large image albums at a second resolution greater than the first resolution (e.g., higher-resolution renderings of the large image albums). In this way, computing device 210 may potentially computational resources associated with fully downloading a large volume of content, such as large image albums.
[0045] In some instances, notification APIs 236 may implement device class notification rules indicating that large images are not to be included in first intermediate notifications. For example, notification APIs 236 may specify a data size limit for images to be included in first intermediate notifications. Notification APIs 236 may prevent computing device 210 from obtaining large images for first intermediate notifications to potentially reduce latency associated with outputting a notification and / or conserve computational resources associated with receiving and storing data for first intermediate notifications including large images. If a user requests to view a large image associated with a first intermediate notification that was output without the large image, notification module 224 may request the large image at one or more resolutions to generate one or more subsequent intermediate notifications for output.
[0046] In examples where notification data is obtained from an external device, communication units 244 may obtain, from the external computing device (e.g., a companion computing device associated with computing device 210 and registered to the same account) and using communication protocol 270, a first intermediate notification as a first representation of a notification with callback instructions for accessing additional data for rendering images for a second intermediate notification. Communication units 244 may send the first intermediate notification and the callback instructions to notification APIs 236.Notification APIs 236 may store the first intermediate notification and the callback instructions as cached data at notification data 238.
[0047] In some instances, machine learning model 272 may include one or more machine learning models configured to generate device classification rules to store at device class notification rules 232. For example, machine learning model 272 may include a generative machine learning model trained to generate device classification rules based on statistics associated with computing device 210. Machine learning model 272 may obtain statistics associated with computing device 210 responsive to receiving explicit consent from a user operating computing device 210. Statistics associated with computing device 210 may include utilization of processing circuitry 240, UIC 212, communication units 244, VO components 246, power source 252, and / or storage components 248. Statistics associatedDocket No.: 1333-936WO01 with computing device 210 may additionally or alternatively include user preferences or detected user behaviors associated with viewing, selecting, dismissing, or otherwise interacting with notifications associated with applications 226. Machine learning model 272 may process statistics associated with computing device 210 to generate rules indicating how many intermediate notifications to create for particular software applications and / or indicating resolutions to render images for the intermediate notifications. For example, based on statistics indicating a user of computing device 210 consistently dismisses a notification associated with a first application and indicating the user consistently opens a notification associated with a second application, machine learning model 272 may generate, and store at device class notification rules 232, a first rule for the first application indicating that two or more intermediate notifications with images at low resolutions should be generated for notifications associated with the first application (e.g., to conserve computational resources associated with rendering images for notifications that may be consistently dismissed) and a second rule indicating that no intermediate notification should be generated for notification associated with the second application. In this way, machine learning model 272 may improve a user’s experience interacting with software application notifications while potentially conserving computational resources associated with outputting complete renderings of notification images.
[0048] In situations in which the computing device 210 discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g. , information about a user’s social network, social actions or activities, profession, a user’s preferences, or a user’s current location), or to control whether and / or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user’s identity may be treated so that no personally identifiable information can be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and used by computing device 210.
[0049] Rendering module 234 may process notification data 238 to generate intermediate notifications. For example, rendering module 234 may access a portion of notification data 238 associated with an image associated with an application at a first resolution. Rendering module 234 may determine a first resolution for rendering a first intermediate notificationDocket No.: 1333-936WO01 based on device classification rules indicated in device class notification rules 232.Rendering module 234 may render (e.g., decode, scale, etc.), based on determining a first intermediate notification is associated with a first resolution based on device class notification rules 232, an image associated with a notification at the first resolution. For example, rendering module 234 may render the image at the first resolution according to layout or design specifications defined in device class notification rules 232. Rendering module 234 may generate a first intermediate notification to include the rendered image at the first resolution. Rendering module 234 may send UI module 220 the first intermediate notification to output for display via UIC 212.
[0050] In response to receiving an indication of an action associated with a first intermediate notification, rendering module 234 may generate a second intermediate notification to include an image at a second resolution that is greater than a resolution of a first image included in the first intermediate notification. For example, UI module 220 may determine a user input (e.g., selecting), detected by UIC 212, associated with a first intermediate notification displayed via UIC 212. UI module 220 may send an indication of the user input to rendering module 234. Rendering module 234 may execute callback instructions, stored at notification data 238 and associated with the first intermediate notification, to access additional data for creating a higher resolution image associated with the lower resolution image of the first intermediate notification. Rendering module 234 may obtain additional data based on device classification rules indicated in device class notification rules. For instance, rendering module 234 may determine a second resolution, greater than a first resolution associated with an image of a first intermediate notification, for a device classification assigned to computing device 210. Rendering module 234 may obtain additional data from notification data 238 based on data needed to update the image of the first intermediate notification to be at a higher resolution. Rendering module 234 may render a second resolution image by, for example, using progressive image techniques to update the image of the first intermediate notification to be a determined, second resolution. Rendering module 234 may generate a second intermediate notification to include the second resolution image. Rendering module 234 may send the second intermediate notification to UI module 220 to output the second intermediate notification via UIC 212. In some instances, a second intermediate notification may include an image, associated with a notification with notification data stored at notification data 238, at a resolution associated with a complete rendering of the image. In such instances, notification data associated with the image may include data associated with the image rendered at a first resolution and additional data used to render the image at theDocket No.: 1333-936WO01 second notification. Notification module 224 may delete the notification data associated with the image responsive to sending a second intermediate notification indicating a complete rendering of the notification data.
[0051] In some examples, based on device class notification rules 232, rendering module 234 may generate a third intermediate notification responsive to an indication associated with a second intermediate notification that has been output after a first intermediate notification. For example, rendering module 234 may generate, based on device class notification rules 232, a second intermediate notification that includes an image at a resolution that is not a complete rendering of the image. In this example, rendering module 234 may execute first callback instructions associated with the second intermediate notification to obtain a first set of additional data for rendering the image at a second resolution (e.g., determined based on device class notification rules 232). In response to receiving an indication associated with the second intermediate notification, rendering module 234 may execute second callback instruction associated with a third intermediate notification to obtain a second set of additional data for rendering the image at a higher resolution than the second resolution. Rendering module 234 may render the image at a third resolution (e.g., determined based on device class notification rules 232) using the second set of additional data. For instance, rendering module 234 may implement progressive image techniques to update, based on the second set of additional data, the second resolution image of the second intermediate notification to be a third resolution image. Rendering module 234 may generate a third intermediate notification to include the third resolution image. Rendering module 234 may send the third intermediate notification to UI module 220 to output for display via UIC 212.
[0052] FIG. 3 is a conceptual diagram illustrating an example operation of an example computing device requesting a notification image from an application with a specific resolution, in accordance with one or more aspects of the present disclosure. Computing device 310, application 326, notification module 324, and UI module 320 of FIG. 3 may be example or alternative implementations of computing device 210, applications 226, notification module 224, and UI module 220 of FIG. 2, respectively.
[0053] In the example of FIG. 3, application 226 may post a first intermediate notification to notification module 324 (SI). For example, application 226 may receive, from an external device (e.g., a notification management system, a cloud system, a companion computing device, etc.), an initial representation of a notification associated with one or more images as a first intermediate notification including an image of the one or more images at a first resolution. Application 226 may receive, with the first intermediate notification, callbackDocket No.: 1333-936WO01 instructions for obtaining, from the external device, additional data to create one or more subsequent intermediate notifications responsive to a request associated with the first intermediate action. Application 226 may post the first intermediate notification by, for example, storing the callback instructions as cached data and sending the data for the first intermediate notification to notification module 324.
[0054] Notification module 324 may send, to UI module 320, data for the first intermediate notification including data for an image, associated with a notification represented by the first intermediate notification, at a first resolution (S2). UI module 320 may generate data for a graphical user interface (e.g., notification tray) including at least a graphical element representing the image at the first resolution of the first intermediate notification. UI module 320 may output the data for the graphical user interface for display via a display device of computing device 310. UI module 320 may receive a user input indicating a request associated with the first intermediate notification (S3). For example, UI module 320 may receive an indication of the request as a signal, from the display device of computing device 310, associated with a user input for expanding the image at the first resolution of the first intermediate notification displayed via the display device. UI module 320 may send an indication of a request associated with a first intermediate notification to notification module 324 (S4).
[0055] In response to receiving the request of step S4, notification module 324 may execute callback instructions for obtaining additional data to generate a second intermediate notification (S5). For example, notification module 324 may execute callback instructions (e.g., obtained at step SI and stored as cached data) associated with a second intermediate notification for application 326. Notification module 324 may execute the callback instructions to determine a resolution for the second intermediate notification based on a device class assigned to computing device 310. For instance, notification module 324 may execute callback instructions to determine a resolution (e.g., as indicated in device class rules for computing device 310) for one or more images to be included in second intermediate notifications for application 326. Notification module 324 may execute the callback instructions to determine a set of additional data, associated with an image at a first resolution of a first intermediate notification, to obtain from the external device to further render the image at the first resolution to be the image at a second resolution that is greater than the first resolution.
[0056] Notification module 324 may send application 326 a request to obtain additional data to generate a second intermediate notification (S6). For example, notification module 324Docket No.: 1333-936WO01 may send application 326 references associated with a determined set of additional data for updating an image at a first resolution, associated with a first intermediate notification, to be an image at a second resolution associated with a second intermediate notification. Application 326 may obtain the requested additional data (e.g., from an external device, cached notification data of computing device 310, etc.). Application 326 may send notification module 324 the requested additional data (S7). Notification module 324 may generate a second intermediate notification using the obtained additional data at step S7. For example, notification module 324 may generate a second intermediation notification by further rendering, using the obtained additional data, an image at a fist resolution, associated with a first intermediate notification, to be the image at a second resolution associated with a second intermediate notification and greater than the first resolution. Notification module 324 may send a second intermediate notification to UI module 320 (S8). UI module 320 may generate data to update a graphical user interface (e.g., a notification tray) to include a graphical element indicating the second intermediate notification including an image at a second resolution, greater than a first resolution associated with a first intermediate notification (S9). UI module 320 may output the data for the updated graphical user interface for display via a display device of computing device 310.
[0057] FIG. 4 is a block diagram illustrating a first example computing device requesting notification data from a second example computing device, in accordance with one or more aspects of the present disclosure. Computing devices 410A-410B, application instances 426A-426B, notification modules 424A-424B, communication units 444A-444B, user interface (UI) module 420, and user interface components (UIC) 412 of FIG. 4 may be example or alternative implementations of computing device 210, applications 226, notification module 224, communication units 444, UI module 220, and UIC 212 of FIG. 2, respectively.
[0058] Application instance 426 A may obtain first intermediate notification 438 A including an image at a first resolution. For example, application instance 426 A may obtain first intermediate notification 438 by generating first intermediate notification 438 to include an image rendered at a first, low resolution, and / or obtain, via communication unit 444A, first intermediate notification 438A with the image rendered at the first, low resolution (e.g., generated by application instance 426B based on a device class associated with computing device 410A) from computing device 410B.
[0059] Application instance 426 A may send the first intermediate notification 438 A with the image at the first resolution to notification module 424A. Notification module 424A mayDocket No.: 1333-936WO01 send (e.g., responsive to a processing unit of computing device 410A exiting a low power mode) UI module 420 data for first intermediate notification 438 A. UI module 420 may generate data for a notification tray to include a graphical element displaying first intermediate notification 438 A with the image at the first resolution. UI module 420 may output the data for the notification tray for display via UIC 412.
[0060] UI module 420 may determine, based on a user input applied to UIC 412 at a location associated with the graphical element for first intermediate notification 438, a request associated with the image at the first resolution of first intermediate notification 438 A. UI module 420 may send an indication of the request to notification module 424A. Notification module 424A may execute, responsive to receiving the indication of the request from notification module 424A, callback instructions for obtaining additional data to update the image at the first resolution of first intermediate notification 438 according to a device class of computing device 410A indicating a second resolution to render the image for second intermediate notification 438B. For example, notification module 424 A may execute callback instructions to determine a second resolution, greater than the first resolution associated with first intermediate notification 438 A, associated with application instance 426 A executing at computing device 410A. Notification module 424 A may determine references to additional data 454 as references or indications of additional data that may be used to generate the image at the determined, second resolution. Notification module 424A may send references to additional data 454 to notification module 424B via communication units 444 A, 444B.
[0061] Notification module 424B may send references to additional data 454 to application instance 426B. Application instance 426B may generate second intermediate notification 438B based on references to additional data 454. For example, application instance 426B may fetch additional data from cached notification data based on indications to the additional data of references to additional data 454. Application instance 426B may generate, based on the additional data, second intermediate notification 438B to include an image at a second resolution greater than a first resolution of the image of first intermediate notification 438 A. For example, application instance 426B may use the additional data, obtained using references to additional data 454, to render the image at the second resolution and generate second intermediate notification 438B to include the image at the second resolution. Application instance 426B may send second intermediate notification 438B, including the image at the second resolution, to notification module 424B. Notification module 424B may send data for second intermediate notification 438B to notification module 424 A viaDocket No.: 1333-936WO01 communication units 444 A, 444B.
[0062] Notification module 424 A may send data for second intermediate notification 438B including the image at the second resolution to UI module 420. UI module 420 may generate data to update a notification tray to replace a graphical element for first intermediate notification 438 A, including an image at a first resolution, with a graphical element for second intermediate notification 438B, including the image at a second resolution greater than the first resolution. UI module 420 may output data for the updated notification tray, including the graphical element for second intermediate notification 438B, for display via UIC 412.
[0063] FIG. 5 is a conceptual diagram illustrating an example operation of a first example computing device requesting notification data from a second example computing device, in accordance with one or more aspects of the present disclosure. Computing device 510A, communication unit 544A, notification module 524A, UI module 520, computing device 510B, application instance 526B, notification module 524B, and communication unit 544B of FIG. 5 may be example or alternative implementations of computing device 410A, communication unit 444A, notification module 424A, UI module 420, computing device 410B, application instance 426B, notification module 424B, and communication unit 444B of FIG. 4, respectively.
[0064] In the example of FIG. 5, application instance 526B may post a notification associated with one or more images to notification module 524B (S10). Notification module 524B may cache data for the one or more images associated with the notification (SI 1). Notification module 524B may generate a first intermediate notification to include an image of the one or more images at a first resolution. Notification module 524B may send the first intermediate notification with the image at the first resolution to communication unit 544B (S12). Communication unit 544B may send data for the first intermediate notification to communication unit 544A (S13). In some examples, responsive to step S13, notification module 524B may delete cached data associated with the image at the first resolution.
[0065] Communication unit 544A may send data for the first intermediate notification with the image at the first resolution to notification module 524A. Notification module 524A may instruct UI module 520 to generate a graphical element associated with the first intermediate notification including the image at the first resolution for a notification tray (SI 5). UI module 520 may generate and output data for the graphical element via a display device of computing device 510A. UI module 520 may receive a request associated with the first intermediate notification (e.g., a signal detected from a portion of the display deviceDocket No.: 1333-936WO01 associated with expanding the image at the first resolution of the first intermediate notification) (SI 6). In response to step SI 6, UI module 520 may send notification module 524A an indication of the request associated with the first intermediate notification (SI 7). Notification module 524A may process the request by determining a second resolution for rendering the image associated with the first intermediate notification (e.g., a second resolution associated with second intermediate notifications for application instance 526B and / or for a device class associated with computing device 510A). Notification module 524A may send communication unit 544A a request for the image at a second resolution (SI 8). Communication unit 544A may forward the request for the image at the second resolution to communication unit 544B (SI 9). Communication unit 544B may send the request for the image at the second resolution to notification module 524B (S20).
[0066] Notification module 524B may determine additional data of cached notification data (e.g., notification data cached at step SI 1) for rendering one or more images of a notification at a second resolution associated with a request received in step S20. Notification module 524B may render, using additional data associated with one or more images of a notification at a second resolution, the one or more images at the second resolution. Notification module 524B may generate a second intermediate notification to include the one or more images at the second resolution. Notification module 524B may send the second intermediate notification to communication unit 544B (S21). Communication unit 544B may send data for a second intermediate notification including one or more images at a second resolution, greater than a first resolution associated with an image of a first intermediate notification, to communication unit 544A (S22). In some examples, responsive to step S22, notification module 524B may delete cached data associated with the additional data.
[0067] Communication unit 544A may send the data for the second intermediate notification to notification module 524A (S23). Notification module 524A may send instructions to UI module 520 to update a graphical element for a first intermediate notification displayed in a notification tray to a graphical element for a second intermediate notification including one or more images at a second resolution, greater than a first resolution associated with the first intermediate notification (S24). UI module 520 may generate data for a graphical element for a second intermediate notification including one or more images at a second resolution (S25). UI module 520 may update a notification tray displayed via a display device of computing device 510A to include the graphical element for the second intermediate notification including the one or more images at the second resolution, in place of a previously displayedDocket No.: 1333-936WO01 graphical element for a first intermediate notification including an image at a first resolution less than the second resolution.
[0068] FIG. 6 is a flowchart illustrating example operations performed by a first example computing device that is configured to load notification images at various resolutions, in accordance with one or more aspects of the present disclosure. FIG. 6 may be discussed with respect to FIG. 1 for example purposes only.
[0069] Computing device 110A may obtain a first intermediate notification (e.g., first intermediate notification 138A) corresponding to a notification associated with a software application executing at computing device 110A (e.g., a software application of applications 126), wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution (602). Computing device 110A may output, for display, the first intermediate notification including the image at the first resolution (604). Computing device 110A may, responsive to receiving a request associated with the first intermediate notification, obtain additional data for the image associated with the notification (606). Computing device 110A may output, for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution (608).
[0070] Aspects of this disclosure include the following examples.
[0071] Example 1 : A method includes obtaining, by a computing device, a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; outputting, by the computing device and for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtaining, by the computing device, additional data for the image associated with the notification; and outputting, by the computing device and for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
[0072] Example 2: The method of example 1, wherein receiving the request associated with the first intermediate notification comprises receiving a user input of an indication to expand the first intermediate notification.Docket No.: 1333-936WO01
[0073] Example 3: The method of any of examples 1 and 2, wherein the computing device is a first computing device, and wherein obtaining the first intermediate notification comprises receiving, by the first computing device, the first intermediate notification from a second computing device via a wireless communication protocol.
[0074] Example 4: The method of example 3, further includes receiving, by the second computing device, the notification; generating, by the second computing device, the first intermediate notification based on a device class associated with the first computing device; and sending, by the second computing device to the first computing device, the first intermediate notification via the wireless communication protocol.
[0075] Example 5: The method of any of examples 3 and 4, further includes storing the notification as cached data using an application programming interface associated with the software application, the cached data stored at one of: the first computing device, the second computing device, or a computing system; in response to receiving the first intermediate notification, deleting data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, deleting the additional data from the cached data.
[0076] Example 6: The method of example 5, wherein obtaining the additional data comprises: determining the additional data from the cached data based on a device class associated with the first computing device; and receiving, by the first computing device from the second computing device, the additional data.
[0077] Example 7: The method of any of examples 3 through 6, wherein receiving the first intermediate notification comprises: receiving, by the first computing device from the second computing device via the wireless communication protocol, the first intermediate notification with callback instructions for accessing the additional data, and wherein obtaining the additional data comprises: executing the callback instructions to obtain the additional data.
[0078] Example 8: The method of any of examples 1 through 7, further includes storing notification data for the notification as cached data using an application programming interface associated with the software application; generating, based on a first portion of the cached data, the image at the first resolution as a low-resolution rendering of the image; generating the first intermediate notification to include the image at the first resolution.
[0079] Example 9: The method of example 8, further includes in response to receiving the first intermediate notification, deleting data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, deleting the additional data from the cached data.Docket No.: 1333-936WO01
[0080] Example 10: The method of any of examples 1 through 9, wherein data for the image includes data associated with the image at the first resolution and the additional data, and wherein the image at the second resolution is a complete rendering of the image.
[0081] Example 11 : The method of any of examples 1 through 10, further includes generating, using the additional data, the image at the second resolution as a high-resolution rendering of the image at the first resolution; and generating the second intermediate notification to include the image at the second resolution.
[0082] Example 12: The method of any of examples 1 through 11, wherein the additional data is a first set of additional data, and wherein the method further comprises: in response to receiving a request associated with the second intermediate notification: obtaining a second set of additional data for the image associated with the notification; and outputting, for display, a third intermediate notification including the image at a third resolution, wherein the image at the third resolution includes the second set of additional data, and wherein the third resolution is greater than the second resolution.
[0083] Example 13: The method of any of examples 1 through 12, wherein the notification includes a plurality of images including the image, the first intermediate notification includes a low-resolution rendering of the image, and the second intermediate notification includes higher-resolution renderings of the plurality of images.
[0084] Example 14: A computing device includes a processing unit; a display device; and a storage device that stores instructions executable by the processing unit to: obtain a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; output, for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtain additional data for the image associated with the notification; and output, for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
[0085] Example 15: The computing device of example 14, wherein to receive the request associated with the first intermediate notification, the storage device stores instructions executable by the processing unit to: receive a user input of an indication to expand the first intermediate notification.Docket No.: 1333-936WO01
[0086] Example 16: The computing device of any of examples 14 and 15, wherein the computing device is a first computing device, and wherein to obtain the first intermediate notification, the storage device stores instructions executable by the processing unit to: receive the first intermediate notification from a second computing device via a wireless communication protocol.
[0087] Example 17: The computing device of example 16, wherein the storage device further stores instructions executable by the processing unit to: store the notification as cached data using an application programming interface associated with the software application, the cached data stored at one of: the first computing device, the second computing device, or a computing system; in response to receiving the first intermediate notification, delete data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, delete the additional data from the cached data.
[0088] Example 18: The computing device of example 17, wherein to obtain the additional data, the storage device stores instructions executable by the processing unit to: determine the additional data from the cached data based on a device class associated with the first computing device; and receive, from the second computing device, the additional data.
[0089] Example 19: The computing device of any of examples 16 through 18, wherein to receive the first intermediate notification, the storage device stores instructions executable by the processing unit to: receive, from the second computing device via the wireless communication protocol, the first intermediate notification with callback instructions for accessing the additional data, and wherein to obtain the additional data, the storage device stores instructions executable by the processing unit to: execute the callback instructions to obtain the additional data.
[0090] Example 20: The computing device of any of examples 14 through 19, wherein the storage device further stores instructions executable by the processing unit to: store notification data for the notification as cached data using an application programming interface associated with the software application; generate, based on a first portion of the cached data, the image at the first resolution as a low-resolution rendering of the image; generate the first intermediate notification to include the image at the first resolution.
[0091] Example 21 : The computing device of example 20, wherein the storage device further stores instructions executable by the processing unit to: in response to receiving the first intermediate notification, delete data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, delete the additional data from the cached data.Docket No.: 1333-936WO01
[0092] Example 22: The computing device of any of examples 14 through 21, wherein data for the image includes data associated with the image at the first resolution and the additional data, and wherein the image at the second resolution is a complete rendering of the image.
[0093] Example 23: The computing device of any of examples 14 through 22, wherein the storage device further stores instructions executable by the processing unit to: generate, using the additional data, the image at the second resolution as a high-resolution rendering of the image at the first resolution; and generate the second intermediate notification to include the image at the second resolution.
[0094] Example 24: The computing device of any of examples 14 through 23, wherein the additional data is a first set of additional data, and wherein the storage device further stores instructions executable by the processing unit to: obtain a second set of additional data for the image associated with the notification; and output, for display, a third intermediate notification including the image at a third resolution, wherein the image at the third resolution includes the second set of additional data, and wherein the third resolution is greater than the second resolution.
[0095] Example 25: The computing device of any of examples 14 through 24, wherein the notification includes a plurality of images including the image, the first intermediate notification includes a low-resolution rendering of the image, and the second intermediate notification includes higher-resolution renderings of the plurality of images.
[0096] Example 26: Computer-readable storage media encoded with instructions that, when executed, cause a computing device to: obtain a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; output, for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtain additional data for the image associated with the notification; and output, for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
[0097] Example 27: The computer-readable storage media of example 26, wherein to receive the request associated with the first intermediate notification, the instructions cause the computing device to: receive a user input of an indication to expand the first intermediate notification.Docket No.: 1333-936WO01
[0098] Example 28: The computer-readable storage media of any of examples 26 and 27, wherein the computing device is a first computing device, and wherein to obtain the first intermediate notification, the instructions cause the computing device to: receive the first intermediate notification from a second computing device via a wireless communication protocol.
[0099] Example 29: The computer-readable storage media of example 28, wherein the instructions further cause the computing device to: store the notification as cached data using an application programming interface associated with the software application, the cached data stored at one of: the first computing device, the second computing device, or a computing system; in response to receiving the first intermediate notification, delete data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, delete the additional data from the cached data.
[0100] Example 30: The computer-readable storage media of example 29, wherein to obtain the additional data, the instructions cause the computing device to: determine the additional data from the cached data based on a device class associated with the first computing device; and receive, from the second computing device, the additional data.
[0101] Example 31 : The computer-readable storage media of any of examples 28 through 30, wherein to receive the first intermediate notification, the instructions cause the computing device to: receive, from the second computing device via the wireless communication protocol, the first intermediate notification with callback instructions for accessing the additional data, and wherein to obtain the additional data, the instructions cause the computing device to: execute the callback instructions to obtain the additional data.
[0102] Example 32: The computer-readable storage media of any of examples 26 through 31, wherein the instructions further cause the computing device to: store notification data for the notification as cached data using an application programming interface associated with the software application; generate, based on a first portion of the cached data, the image at the first resolution as a low-resolution rendering of the image; generate the first intermediate notification to include the image at the first resolution.
[0103] Example 33: The computer-readable storage media of example 32, wherein the instructions further cause the computing device to: in response to receiving the first intermediate notification, delete data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, delete the additional data from the cached data.Docket No.: 1333-936WO01
[0104] Example 34: The computer-readable storage media of any of examples 26 through 33, wherein data for the image includes data associated with the image at the first resolution and the additional data, and wherein the image at the second resolution is a complete rendering of the image.
[0105] Example 35: The computer-readable storage media of any of examples 26 through 34, wherein the instructions further cause the computing device to: generate, using the additional data, the image at the second resolution as a high-resolution rendering of the image at the first resolution; and generate the second intermediate notification to include the image at the second resolution.
[0106] Example 36: The computer-readable storage media of any of examples 26 through 35, wherein the additional data is a first set of additional data, and wherein the instructions further cause the computing device to: obtain a second set of additional data for the image associated with the notification; and output, for display, a third intermediate notification including the image at a third resolution, wherein the image at the third resolution includes the second set of additional data, and wherein the third resolution is greater than the second resolution.
[0107] Example 37: The computer-readable storage media of any of examples 26 through 36, wherein the notification includes a plurality of images including the image, the first intermediate notification includes a low-resolution rendering of the image, and the second intermediate notification includes higher-resolution renderings of the plurality of images.
[0108] Example 38: A computing system comprising means for performing any of the methods of examples 1-13.
[0109] Example 39: Computer-readable storage media encoded with instructions that cause a computing system to perform any of the methods of examples 1-13.
[0110] Example 40: A computer program product comprising at least one non-transitory computer-readable media including one or more instructions that, when executed by at least one processor, cause the at least one processor to perform any of the methods of examples 1- 13.
[0111] By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other storage medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer- readable medium. For example, if instructions are transmitted from a website, server, or otherDocket No.: 1333-936WO01 remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer-readable storage mediums and media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead directed to nontransient, tangible storage media. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of a computer-readable medium.
[0112] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the term “processor,” as used herein may refer to any of the foregoing structures or any other structures suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.
[0113] The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chip set). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require realization by different hardware units. Rather, as described above, various units may be combined in a hardware unit or provided by a collection of interoperative hardware units, including one or more processors as described above, in conjunction with suitable software and / or firmware.
[0114] Various embodiments have been described. These and other embodiments are within the scope of the following claims.
Claims
Docket No.: 1333-936WO01WHAT IS CLAIMED IS:
1. A method comprising: obtaining, by a computing device, a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; outputting, by the computing device and for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtaining, by the computing device, additional data for the image associated with the notification, and outputting, by the computing device and for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
2. The method of claim 1, wherein receiving the request associated with the first intermediate notification comprises receiving a user input of an indication to expand the first intermediate notification.
3. The method of any of claims 1 and 2, wherein the computing device is a first computing device, and wherein obtaining the first intermediate notification comprises receiving, by the first computing device, the first intermediate notification from a second computing device via a wireless communication protocol.
4. The method of claim 3, further comprising: receiving, by the second computing device, the notification; generating, by the second computing device, the first intermediate notification based on a device class associated with the first computing device; and sending, by the second computing device to the first computing device, the first intermediate notification via the wireless communication protocol.
5. The method of any of claims 3 and 4, further comprising:Docket No.: 1333-936WO01 storing the notification as cached data using an application programming interface associated with the software application, the cached data stored at one of the first computing device, the second computing device, or a computing system; in response to receiving the first intermediate notification, deleting data associated with the image at the first resolution from the cached data; and in response to obtaining the additional data, deleting the additional data from the cached data.
6. The method of claim 5, wherein obtaining the additional data comprises: determining the additional data from the cached data based on a device class associated with the first computing device; and receiving, by the first computing device from the second computing device, the additional data.
7. The method of any of claims 3 through 6, wherein receiving the first intermediate notification comprises: receiving, by the first computing device from the second computing device via the wireless communication protocol, the first intermediate notification with callback instructions for accessing the additional data, and wherein obtaining the additional data comprises: executing the callback instructions to obtain the additional data.
8. The method of any of claims 1 through 7, further comprising: storing notification data for the notification as cached data using an application programming interface associated with the software application; generating, based on a first portion of the cached data, the image at the first resolution as a low-resolution rendering of the image; and generating the first intermediate notification to include the image at the first resolution.
9. The method of any of claims 1 through 8, further comprising: generating, using the additional data, the image at the second resolution as a high- resolution rendering of the image at the first resolution; and generating the second intermediate notification to include the image at the second resolution.Docket No.: 1333-936WO0110. The method of any of claims 1 through 9, wherein the additional data is a first set of additional data, and wherein the method further comprises: in response to receiving a request associated with the second intermediate notification: obtaining a second set of additional data for the image associated with the notification; and outputting, for display, a third intermediate notification including the image at a third resolution, wherein the image at the third resolution includes the second set of additional data, and wherein the third resolution is greater than the second resolution.
11. A computing device, comprising: a processing unit; a display device; and a storage device that stores instructions executable by the processing unit to: obtain a first intermediate notification, the first intermediate notification corresponding to a notification associated with a software application executing at the computing device, wherein the notification is associated with an image, and wherein the first intermediate notification includes the image at a first resolution; output, for display, the first intermediate notification including the image at the first resolution; and responsive to receiving a request associated with the first intermediate notification: obtain additional data for the image associated with the notification; and output, for display, a second intermediate notification including the image at a second resolution, wherein the image at the second resolution includes the additional data, and wherein the second resolution is greater than the first resolution.
12. The computing device of claim 11, further comprising means for performing any of the methods of claims 2-10.
13. A computing system comprising means for performing any of the methods of claims 1-10.
14. Computer-readable storage media encoded with instructions that cause a computing system to perform any of the methods of claims 1-10.Docket No.: 1333-936WO0115. A computer program product comprising at least one non-transitory computer- readable media including one or more instructions that, when executed by at least one processor, cause the at least one processor to perform any of the methods of claims 1-10.