CONTEXT-RELATED USER INTERFACES
Computing devices output context-sensitive user interface elements in response to gestures, addressing limited customization of user interactions by using sensor-detected context signals and machine learning for enhanced user experience and accessibility.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- GOOGLE LLC
- Filing Date
- 2025-12-11
- Publication Date
- 2026-06-25
AI Technical Summary
Computing devices have limited ability to configure buttons or sensors to output customized user interface elements in response to gestures, limiting user interaction experiences.
A computing device enhances user interaction by outputting context-sensitive user interface elements in response to gestures, using sensors to detect context signals and select appropriate interface controls based on device context, such as phone, application, and environmental states, with machine learning models for efficient context determination.
Enhances user experience by providing contextually relevant information and actions, improving accessibility and interaction efficiency with the device, particularly through non-intrusive display elements.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
This application claims the benefit of the preliminary US patent application No. 63 / 737,085, filed on December 20, 2024, the entire contents of which are incorporated herein by reference. GENERAL STATE OF THE ART Some computing devices may include touch or other presence sensors that detect user input. For example, a computing device may include a presence-sensitive display that both displays objects and detects user input using presence sensors. Such a presence-sensitive display may allow a user to interact with the computing device by, for example, tapping a displayed element to initiate an action (such as starting an application, changing information displayed by the presence-sensitive display, etc.), moving a finger across the presence-sensitive display to drag an object, and / or causing the computing device to scroll content displayed by the presence-sensitive display, etc.In another example, a computing device may include pressure-sensitive sensors that adjust physical configurations of the computing device, such as the output volume of the computing device. SUMMARY In general, the techniques described in this disclosure are directed toward techniques for outputting one or more context-sensitive user interfaces with one or more context-sensitive user interface controls, determined based on a computing device's context. A computing device may include a sensor (e.g., a pressure-sensitive sensor, a capacitive pressure sensor, etc.) configured to trigger the output of a context-sensitive user interface element in response to a detected gesture. For example, the computing device's sensor may detect a gesture (e.g., a tactile input such as a touch, a push, a swipe, a pull, a long press, etc.).In response to gesture detection, the computing device can output a graphical user interface element to a section of a display device that does not interfere with user interaction with the display device. This element is configured with a user interface control selected based on a context associated with the computing device. The computing device can determine a context associated with it based on context signals gathered in response to obtaining explicit user consent. A context associated with the computing device can be a phone state (e.g., output volume state, display brightness state, power source capacity state, connection state, etc.), an application state (e.g.,Software signals indicating application-defined states associated with a user operating the computing device and interacting with software applications, an environmental state (e.g., heart rate determined by a health sensor, location determined by a communication sensor, atmospheric pressure determined by a barometer, or any other state determined by data collected by a physical sensor of the computing device), and / or other states indicated by data associated with the operation of the computing device. The computing device can select a user interface control based on a context defined for the computing device. For example, the computing device can output a contextual user interface element containing images from an image gallery (e.g., copied from display data generated by a software application), with a user interface control configured to scroll through the images in the image gallery, based on a context for the computing device indicating that the computing device's application state is associated with viewing images in a photo application. In some examples, the computing device can output a stack of contextual user interface elements, each configured with its own user interface control, selected based on one or more contexts associated with the computing device.The computing device can output one or more context-related user interface elements in a section of a display device of the computing device that is associated with the gesture-detecting sensor, such that the context-related user interface element is not intrusive and / or is not blocked by the user operating the computing device. In one example, a procedure involves determining, by a computing device and based on a variety of context signals, a context associated with the computing device; selecting, by the computing device and based on the context, a user interface control from a variety of user interface controls; and, in response to a gesture detected by a sensor of the computing device, outputting, by the computing device and for display on a display device of the computing device, a context-related user interface element configured with the user interface control, wherein the context-related user interface element is displayed in a section of the display device associated with the sensor. In another example, a computing device includes at least one processor; a display device; a sensor; and a storage device that stores instructions executable by the at least one processor to: determine a context associated with the computing device based on a variety of context signals; select a user interface control from a variety of user interface controls based on the context; and, in response to a gesture detected by the sensor, output a context-sensitive user interface element configured with the user interface control to the display device, with the context-sensitive user interface element being displayed in a section of the display device associated with the sensor. In another example, a non-volatile, computer-readable storage medium is encoded with instructions which, when executed, cause at least one processor of a computing device to: determine a context associated with the computing device based on a variety of context signals; select a user interface control from a variety of user interface controls based on the context; and, in response to a gesture detected by a sensor for display on a display device, output a context-sensitive user interface element configured with the user interface control, with the context-sensitive user interface element being displayed in a section of the display device associated with the sensor. The details of one or more examples of the disclosure are set forth in the accompanying drawings and the following description. Further features, objectives, and advantages of the disclosure will be apparent from the description and drawings, as well as from the claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a conceptual diagram illustrating an exemplary computing device with exemplary user interface components for outputting exemplary user interface controls according to one or more aspects of this disclosure. Fig. 2 is a block diagram illustrating an exemplary computing device for outputting user interface elements with context-sensitive user interface controls according to one or more techniques of this disclosure. Fig. 3 is a conceptual diagram illustrating an exemplary computing device with an exemplary user interface element with an exemplary user interface control according to one or more techniques of this disclosure. Fig. 4 is a conceptual diagram illustrating exemplary gestures for switching exemplary user interface controls according to one or more techniques of this disclosure.Figure 5 is a conceptual diagram illustrating an exemplary computing device with an exemplary context-sensitive user interface element according to one or more techniques of this disclosure. Figure 6 is a flowchart illustrating exemplary operations of an exemplary computing device for outputting context-sensitive user interface elements according to one or more techniques of this disclosure. DETAILED DESCRIPTION Fig. 1 is a conceptual diagram illustrating the exemplary computing device 102 with exemplary user interface components 110 for outputting exemplary user interface controls according to one or more aspects of the present disclosure. Fig. 1 illustrates only one particular example of the computing device 102, and many other examples of the computing device 102 may be used in other cases. The computing device 102 may, but is not limited to, include portable, mobile, or other devices such as mobile phones (including smartphones), body-worn computing devices (e.g., smartwatches, smart glasses, etc.), laptop computers, desktop computers, tablet computers, smart speakers, smart television platforms, server computers, mainframe computers, infotainment systems (e.g., televisions, smart TVs, etc.).Vehicle main units), augmented reality and / or virtual reality devices (AR / VR devices), spatial computing devices, artificial intelligence (AI) devices, etc. In some examples, the computing device 102 may represent a cloud computing system that provides one or more services over a network. That is, in some examples, the computing device 102 may be a distributed computing system. The computing device 102 of Fig. 1 may include a subset of the components contained in the exemplary computing device 102, or it may include additional components not shown in Fig. 1. As shown in Fig. 1, the computing device 102 includes user interface components (UIC) 110, a user interface (UI) module 114, a contextual user interface (UI) controller 116, and one or more applications 118 (hereafter collectively referred to as "applications 118").UI components (110) can include hardware and / or software for receiving user input and rendering graphical output. Applications (118) can include programs that provide the user with specific functionalities, such as browsing the web, playing media, or managing communications. The UIC 110 can function as an input and / or output device for the computing device 102. As shown in Fig. 1, the UIC 110 includes a presence-sensitive enclosure 120 and one or more sensors 112. The UIC 110 can be implemented using various technologies. For example, the UIC 110 can include input devices such as a presence-sensitive enclosure and / or one or more presence-sensitive displays, such as capacitive touchscreens or projective capacitive touchscreens. The UIC 110 can include a presence-sensitive enclosure 120, such as a capacitive enclosure. The UIC 110 can also function as an output device (e.g.,Display devices using one or more display devices, such as liquid crystal displays (LCDs), dot matrix displays, light-emitting diode displays (LEDs), organic light-emitting diode displays (OLEDs), E-Ink, or similar monochrome or color displays, are capable of outputting visible information to a user of the computing device 102. In the example of Fig. 1, the presence-sensitive housing 120 can include a presence-sensitive display 106 capable of receiving touch input from a user of the computing device 102. The presence-sensitive display 106 of UIC 110 can detect inputs (e.g., touch and non-touch inputs) from a user of the respective computing device 102. For example, the presence-sensitive display 106 can detect input details by sensing one or more gestures from a user (e.g., the user touches, points, and / or swipes at or near one or more points on the presence-sensitive display 106 with a finger or a stylus). The presence-sensitive display 106 can output information to a user in the form of a user interface, which may be associated with functionality provided by the computing device 102. Such user interfaces may be associated with computing platforms, operating systems, applications, and / or services that run on or are accessible from the computing device 102 (e.g.,electronic messaging applications, chat applications, internet browser applications, mobile or desktop operating systems, social media applications, electronic games, menus and other types of applications). The UI module 114 of the computing device 102 can manage user interactions with the UIC 110 and other components of the computing device 102. In other words, the UI module 114 can act as an intermediary between different components of the computing device 102 to make decisions based on user inputs captured by the UIC 110 and to generate an output at the UIC 110 in response to the user input. The UIC module 114 can receive instructions from an application, service, platform, or other module of the computing device 102 to cause the UIC 110 to output a user interface.The UI module 114 can manage inputs received by the computing device 102 while a user views and interacts with the user interface presented at the UI 110, and can update the user interface in response to receiving additional instructions from the application, service, platform or other module of the computing device 102 that processes the user input. The computing device 102 can include the UI module 114 and applications 118. The UI module 114 and the applications 118 can perform operations described using software, hardware, firmware, or a mixture of hardware, software, and / or firmware located in and / or running on the computing device 102. The computing device 102 can run the UI module 114 and the applications 118 using one or more processors. The computing device 102 can run the UI module 114 and the applications 118 as a virtual machine running on underlying hardware. The UI module 114 and the applications 118 can run as services or components of an operating system or computing platform. The UI module 114 and the applications 118 can run as one or more executable programs on an application layer of a computing platform.The UI module 114 and the applications 118 can be located elsewhere remotely from the computing device 102 and be remotely accessible, for example as one or more network services operating in a network in a network cloud. The applications 118 can run on the computing device 102 to perform a variety of operations. Examples of applications 118 include, but are not limited to, music applications, photo viewing applications, map applications, electronic messaging applications, chat applications, internet browser applications, social media applications, electronic games, menus, and / or other types of applications that can be operated based on user input. During operation, the applications 118 can cause the UI module 114 to generate a graphical user interface (GUI) for display on the UIC 110. The UIC 110 can output a graphical user interface based on instructions from the applications 118. For example, the applications 118 might include a photo viewing application that causes the UI module 114 to generate a GUI containing an image of a mountain for display on the UIC 110. In another example, the applications 118 might include a web browser application that causes the UI module 114 to generate a GUI containing data associated with content from web pages loaded by the web browser. A user may wish to provide user input to the applications 118. For example, if the applications 118 include a photo viewing application, the user may provide gesture input to the UIC 110 in the form of a swipe gesture to swipe between photos in the photo viewing application, or may provide gesture input to the UIC 110 to select a photo album for viewing. The presence-sensitive display 106 can detect the gesture input. For example, if the presence-sensitive display 106 is a capacitive touch panel, it may detect the gesture input by using one or more capacitive touch sensors embedded in the presence-sensitive housing 120. The presence-sensitive housing 120 can fully or partially enclose the exterior of the computing device 102, enabling it to detect user input at any point on the rear (the side of the computing device 102 opposite the side of the display 106) and on the sides of the exterior of the computing device 102. For example, the presence-sensitive housing 120 can detect touch input from a user, but may not require physical contact between the user and the presence-sensitive housing 120 to detect the user input. The presence-sensitive housing 120 can detect user input within a certain distance of the housing. The presence-sensitive housing 120 can be located on the sides, the rear (the side of the computing device 102 opposite a display of the computing device 102), and the front of the computing device 102.The presence-sensitive enclosure 120 can “enclose” the computing device 102 to enable the detection of user input at any point on the exterior of the computing device 102. For example, the presence-sensitive enclosure 120 can detect user touch input at any location along the rear (i.e., the side of the computing device 102 facing the display 106) or the sides of the computing device 102 via signals detected by one or more sensors 112. The presence-sensitive housing 120, as shown in the example in Fig. 1, can include one or more sensors 112 that are embedded in, arranged on, connected to, or otherwise associated with the presence-sensitive housing 120. Sensors 112 (e.g., sensor 112A and / or sensor 112B) associated with the presence-sensitive housing 120 can include pressure-sensitive sensors or buttons, such as touch-sensitive buttons, force-sensitive resistors (FSRs), capacitive pressure sensors, piezoelectric sensors, micro-electro-mechanical systems (MEMS) sensors, tactile matrix sensors, resistive touch sensors, and / or other types of sensors or buttons for detecting gestures applied to the presence-sensitive housing 120. Computing devices may have a limited ability to configure buttons or sensors to output customized user interface elements. For example, a volume button on a computing device may be configured in some computing devices to simply adjust the output volume of the computing device. Such computing devices may be limited in the user interface experiences that can be output in response to gestures detected by buttons or sensors on the computing device. Computing device 102 can, according to the techniques described herein, enhance a user's experience when interacting with computing device 102 (e.g., interacting with applications 118, using computing device 102 to access physical resources, etc.) by outputting, in response to a gesture and / or combination of gestures detected by a sensor (e.g.,A combination of tactile inputs (e.g., a volume button) is detected by one or more sensors 112, triggering the output of context-sensitive user interface elements configured with user interface controls determined based on context signals associated with the computing device 102. In other words, the computing device 102 can enhance its functionality by performing actions (e.g., outputting context-sensitive user interface elements) based on context signals from the computing device 102 and in response to one or more gestures detected by a sensor of the sensors 112 (e.g., a volume button). In accordance with the techniques described herein, the computing device 102 can output a user interface element configured with a context-aware user interface control. The context-aware UI controller 116 of the computing device 102 can include machine-readable instructions for determining a context associated with the computing device 102 and / or for selecting a user interface control based on a particular context. For example, the context-aware UI controller 116 can collect context signals associated with the computing device 102. For example, in response to receiving explicit consent from a user, the computing device 102 can collect data associated with one or more of the following: a telephone state of the computing device 102 (e.g.,Data indicating current power source capacity, data indicating external devices connected via wireless communication devices, etc.), an application state of applications 118 that can be executed by the computing device 102 (e.g., display data generated by a software application and output via the display 106, user input data captured by the display 106 when a user interacts with a software application, etc.), an environmental state of the computing device 102 (e.g., data collected by additional sensors from one or more sensors 112), and / or a state associated with the functionality and operation of the computing device 102. For example, an environmental state could include the ambient light level, the location of the device, or the current temperature. In situations where the systems discussed here can collect or use personal information about users, users can be given an opportunity to control whether programs or functions collect user information (e.g., information about a user's social network, social actions or activities, occupation, user preferences, or current location) or to control whether and / or how content is received from the content server that may be more relevant to the user. For example, UI module 114 can generate data for a graphical user interface that allows a user to configure privacy settings associated with computing device 102, which collects context signals. UI module 114 can output the data for the graphical user interface via display 106. UI module 114 can display user privacy preferences (e.g.,Configurations associated with the collection of context signals are stored on a storage device of Computing Device 102. Furthermore, certain data can be processed in one or more ways before being stored or used to remove personally identifiable information. For example, a user's identity can be treated so that no personally identifiable information can be determined for the user, or a user's geographic location can be generalized when location information is obtained (such as to the level of a city, postal code, or state) so that a specific location of a user cannot be determined. Thus, the user can have control over how information about the user is collected and used by a content server. The context-aware UI controller 116 can determine a context associated with the computing device 102 based on collected context signals. For example, the context-aware UI controller 116 can determine a context associated with the computing device 102 as a state of the computing device 102 (e.g., a phone state, an application state, and / or an environment state of the computing device 102, determined at a time when a gesture is detected by a sensor from one or more sensors 112). In some examples, the text-aware UI controller 116 can determine a context associated with the computing device 102 using one or more machine learning models trained to determine the context of the computing device 102 based on context signals collected by the context-aware UI controller 116.In one example, the contextual UI controller 116 can implement clustering techniques to group context signals in order to identify one or more clusters corresponding to one or more contexts associated with the computing device 102. In some cases, the contextual UI controller 116 can apply machine learning techniques to determine a frequency for identifying one or more contexts associated with the computing device 102 in order to reduce latency and / or computing resource consumption associated with determining the one or more contexts before outputting a contextual user interface element configured with one or more user interface controls selected based on the identified one or more contexts. The context-aware UI controller 116 can select one or more user interface controls from a variety of user interface controls based on one or more specific contexts associated with the computing device 102. For example, the context-aware UI controller 116 can select a user interface control associated with a context that corresponds to a threshold (e.g., a threshold number of context signals, a confidence threshold associated with generating context clusters of context signals, etc.). In some examples, the context-aware UI controller 116 can select a user interface control based on rule-based or hierarchical approaches associated with one or more specific contexts associated with the computing device 102.For example, the context-aware UI controller can maintain 116 configurations that specify rules for selecting and / or ordering a set of user interface controls based on a specific context (e.g., a rule to select and prioritize a first user interface control associated with a first context cluster over a second user interface control selected based on a second context cluster). The contextual UI controller 116 can output a contextual user interface element configured with a selected user interface control. The contextual UI controller 116 can output a contextual user interface element configured with a contextual user interface control in response to a sensor detecting a specific gesture from one or more sensors 112. For example, if sensor 112A is a volume button, sensor 112A can detect a sequence of one or more gestures 152A (also referred to as "gestures 152A") (e.g., tactile inputs such as a touch, a push, a swipe, a drag, or any combination thereof). Sensor 112A can send an indication of the detected gestures 152A to the contextual UI controller 116.In response to receiving the gesture 152A, the contextual UI controller 116 can output a contextual user interface (UI) element 128A configured with a user interface control selected based on a specific context associated with the computing device 102. For example, in response to receiving gestures 152A involving a combination of pressing sensor 112A twice, the contextual UI controller 116 can use the UI module 114 to generate and output data for the contextual UI element 128, configured with a user interface control selected based on a specific context of the computing device 102. In another example, if sensor 112B is a capacitive sensing sensor, it can detect gesture 152B (e.g., tactile input such as touching, pressing, swiping, pulling, or any combination thereof). Sensor 112B can send an indication of the detected gesture 152B to contextual UI controller 116. In response to receiving the gesture 152B indication, contextual UI controller 116 can output a contextual user interface (UI) element 128B configured with a user interface control selected based on a specific context associated with computing device 102. During operation, the context-aware UI controller 116, in response to receiving a signal indicating a specific gesture applied to a sensor from one or more sensors 112, can send one or more user interface controls to the UI module 114. These controls are selected based on one or more contexts defined for the computing device 102. The UI module 114 can generate data for a context-aware user interface element (e.g., context-aware user interface element 128A or context-aware user interface element 128B) as data for a graphical user interface configured with the selected one or more interface controls. The UI module 114 can output data for the context-aware user interface element configured with the functionality of the selected one or more user interface controls for display on the display 106.The UI module 114 can output the contextual user interface element configured with one or more selected user interface controls for display on a section of the display 106 associated with the sensor that detected the specific gesture. The section of display 106 associated with the sensor may include a dedicated area (e.g., a dock) of display 106 that may not be obstructed by a user operating the computing device 102 (e.g., where the section of display 106 is a small area on one side of display 106, allowing a user to view the contextual user interface element while interacting with other areas of display 106). In some cases, the section of display 106 associated with the sensor may improve accessibility for a user operating the computing device 102.For example, the UI module 114 can output a contextual user interface element in a section of the display 106, allowing a user to easily interact with the contextual user interface element and / or the display data shown on the display 106 using a single hand. In some examples, the UI module 114 can provide users with the ability to configure, for example via a settings user interface, the location on the display 106 of the section associated with a sensor from one or more sensors 112. The techniques of this disclosure include one or more advantages. For example, the computing device 102 can enhance the information output via the display 106 to a user operating the computing device 102 in response to a gesture applied to a sensor of the computing device 102. By outputting graphical user interface elements configured with user interface controls selected based on context signals gathered by the computing device 102, the computing device 102 can output contextually relevant information (e.g., data associated with an application state of an application running on the computing device 102) and perform contextually relevant actions (e.g.,The computer 102 can unlock access to physical resources based on a location specified in an environmental state of the computer 102) and / or perform other contextually relevant tasks (e.g., adjust the output volume of the computer 102, adjust the screen brightness of the computer 102, send signals to external devices connected to the computer 102, etc.). The computer 102 can output contextual user interface elements for display on specific sections of the display 106 to enhance the user experience when interacting with the computer 102 (e.g., outputting the contextual user interface element for display on a section of the display 106 that is not obstructed and / or intrusive when a user interacts with content displayed on the computer 102).In this way, the computing device 102 can enhance a user's experience when interacting with the computing device 102 by providing at least contextually relevant information or actions in response to sensor inputs and / or by providing the contextually relevant information or actions in a way that improves the accessibility associated with interacting with the computing device 102 (e.g., improving the accessibility of using the computing device 102 with one hand, improving the accessibility of display data output via the display 106, etc.). Fig. 2 is a block diagram illustrating an exemplary computing device 202 for outputting user interface elements with context-sensitive user interface controls according to one or more techniques of this disclosure. The computing device 202, the user interface component(s) 210 (UIC 210), the input device(s) 212, the context-sensitive user interface controller (UI controller) 216, the user interface (UI) module 214, and the application(s) 218 of Fig. 2 can be exemplary or alternative implementations of the computing device 102, the UIC 110, the one or more sensors 112, the context-sensitive UI controller 116, the UI module 114, and the applications 118 of Fig. 1, respectively. As shown in Fig. 2, the computing device 202 can comprise one or more user interface components 210 (“UIC 210”), one or more processors 242 (“Processor 242”), one or more communication units 246 (“Communication Unit 246”), one or more power sources 248 (“Power Source 248”), and one or more storage devices 208 (“Storage Device 208”). Communication channels 250 (“COMM Channel 250”) can connect any of the components 210, 242, 246, 248, and 208 for communication between components (physical, communicative, and / or operational). In some examples, the communication channel 250 can include a system bus, a network connection, an inter-process communication data structure, or any other method for communicating data. Also shown in Fig. 2, the UIC 210 can include one or more input devices 212 (“input devices 212” or “sensor 212”) and one or more output devices (“output devices 244” or “display 244”). The input device 212 of the computing device 202 can receive inputs. Examples of inputs are tactile, acoustic, and video inputs. In one example, the input device 212 of the computing device 202 includes a capacitive pressure sensor, a touch-sensitive button, a force-sensitive resistor (FSR), a piezoelectric sensor, a presence-sensitive display, a fingerprint sensor, a touch-sensitive screen, a mouse, a keyboard, a speech-responsive system, a video camera, a microphone, or any other type of device for capturing inputs from a person or a machine. The input devices 212 may additionally include one or more environmental sensors. Numerous examples of environmental sensors exist and include any input component configured to obtain data about the circumstances surrounding the computing device 202 and / or physiological information that defines the activity state and / or physical well-being of a user of the computing device 202. In some examples, an environmental sensor may be an input component that obtains physical position, motion, and / or location information of the computing device 202. For example, environmental sensors may include one or more location sensors (e.g., GNSS components, Wi-Fi components, cellular components), one or more temperature sensors, one or more motion sensors (e.g., multi-axis accelerometers, gyroscopes), one or more pressure sensors (e.g., pressure gauges, pressure sensors).The device may include a barometer, one or more ambient light sensors, and one or more other sensors (e.g., microphone, camera, infrared proximity sensor, hygrometer, and the like). Other environmental sensors could include a heart rate sensor, magnetometer, glucose sensor, hygrometer, olfactory sensor, compass sensor, or pedometer sensor, to name just a few non-limiting examples. The output device 244 of the computing device 202 can produce one or more outputs. Examples of outputs include tactile, acoustic, and video outputs. In one example, the output device 244 of the computing device 202 includes a presence-sensitive display, a sound card, a video graphics adapter card, a loudspeaker, a liquid crystal display (LCD), or any other type of device for producing an output to a person or a machine. The communication unit 246 of the computing device 202 can communicate with one or more external devices over 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 246 include a network interface card (such as an Ethernet card), an optical transceiver, a radio frequency transceiver, a GNSS receiver, or any other type of device capable of sending and / or receiving information. Other examples of the communication unit 246 may include shortwave radios, cellular data radios (for terrestrial and / or satellite cellular networks), wireless network radios, and universal serial bus (USB) controllers. The power source 248 can provide power to one or more components of the computing device 202. In some examples, the power source 248 can be a battery. For example, the power source 248 can provide power to components 210, 242, 246, and 208 of the computing device 202. Examples of the power source 248 can include, but are not necessarily limited to, batteries with zinc-carbon, lead-acid, nickel-cadmium (NiCd), nickel-metal hydride (NiMH), lithium-ion (Li-ion), and / or lithium-polymer (LiPo) chemistries. In some examples, the power source 248 can have a limited capacity (e.g., 1000–3000 mAh). In some cases, the power source 248 includes power supplied via an electrical outlet. The processor 242 can implement functionality and / or execute instructions within the computing device 202. For example, the processor 242 can receive and execute instructions that provide the functionality of modules 216, 214, 218, and the operating system (“OS”) 230. These instructions, executed by the processor 242, can cause the computing device 202 to store and / or modify information within the memory device 208 or the processor 242 during program execution. The processor 242 can execute instructions from modules 216, 214, 218, and the OS 230 to perform one or more operations. That is, the modules 216, 214, 218, and the OS 230 can be operated by the processor 242 to perform various functions described herein. The storage device 208 within the computing device 202 can store information for processing during the operation of the computing device 202 (e.g., the computing device 202 can store data accessed by modules 216, 214, 218, and OS 230 during execution on the computing device 202). In some examples, the storage device 208 can be temporary storage, meaning that a primary purpose of the storage device 208 is not long-term storage. The storage device 208 on the computing device 202 can be configured as volatile memory for short-term storage of information and therefore does not retain stored contents when it is powered off. Examples of volatile memory include random-access memory (RAM), dynamic random-access memory (DRAM), static random-access memory (SRAM), and other forms of volatile memory known in the prior art. The storage device 208 can include one or more computer-readable storage media. The storage device 208 can be configured to store larger amounts of information as volatile memory. The storage device 208 can also be configured for long-term storage of information as non-volatile memory, retaining information after power cycles. Examples of non-volatile memory include magnetic hard disks, optical disks, flash memory, or forms of electrically programmable memory (EPROM) or electrically erasable and programmable memory (EEPROM). The storage device 208 can store program instructions and / or information associated with modules 216, 214, 218, and OS 230. The computing device 202 can include the OS 230. The OS 230 can control the operation of components of the computing device 202. For example, the OS 230 can facilitate communication between modules 216, 214, and 218 and the processor 242, the storage device 208, and the communication units 246. In some examples, the OS 230 can manage interactions between software applications (e.g., application 218) and a user of the computing device 202. The OS 230 can include a kernel that facilitates interactions with the underlying hardware of the computing device 202 and provides a fully trained application space capable of running a variety of software applications with secure partitions in which each software application runs to perform different operations. In some examples, the UI module 214 can be considered a component of the OS 230. In accordance with the techniques described herein, the contextual UI controller 216 can output contextual user interface elements configured with contextual user interface controls. In the example of Fig. 2, the contextual UI controller 216 can include the contextual signal collector 222, user interface (“UI”) control configurations 226, the context extractor 232, one or more machine learning models 234, the training module 238, and the user interface (“UI”) control selector 236. With the explicit permission of a user operating the computing device 202, the contextual signal collector 222 can monitor and collect contextual signals as data indicating states associated with the computing device 202. For example, the contextual signal collector 222 can collect data indicating a telephone state (e.g.,Data associated with the processor 242, the communication unit 246, the power source 248, etc., data indicating an application state (e.g., data associated with the applications 218, data displayed via output device 244, etc.), data indicating an environmental state (e.g., data obtained using any UIC 210), or other data indicating other states associated with the computing device 202. The context-related signal collector 222 can store acquired context signals as context signals 224. The context extractor 232 can include computer-readable instructions for determining one or more contexts associated with the computing device 202, based on context signals 224. The context extractor 232 can implement any combination of thresholding, clustering techniques, machine learning techniques, rule-based techniques, hierarchy-based techniques, and / or other prediction-based techniques to process context signals 224 and determine one or more contexts associated with the computing device 202. For example, the context extractor 232 can implement machine learning models 234 to analyze context signals 224 for user interface control predictions. The machine learning models 234 can be one or more traditional machine learning models (e.g., predictive model, classification model, etc.) and / or one or more generative machine learning models (e.g.,The training module 238 can train, retrain, fine-tune, or otherwise adjust parameters associated with the machine learning models 234. For example, the training module 238 can use example context signals labeled with ground-truth user interface controls to train a machine learning model of the machine learning models 234 to predict a user interface control based on the example context signals. The training module 238 can use any combination of example data, such as basic labeled training data, application data from applications 218 (e.g., data obtained through application programming interfaces associated with the applications 218), or other types of context determination training data associated with the computing device 202. The context extractor 232 can provide the context signals 224 to a machine learning model 234 to determine one or more contexts associated with the computing device 202. The context extractor 232 can employ a machine learning model 234 that includes biases and weights associated with different types and attributes of context signals stored in the context signals 224. The machine learning model can include weights and biases assigned to data specifying context signals stored as context signals 224 to determine which context signals 224 are to be used for context determination.For example, based on weights and biases associated with data specifying context signals, the machine learning model can prioritize context signals associated with an application state of computing device 202 over context signals associated with an environmental state associated with computing device 202. The training module 238 can adjust the weights and biases of the machine learning model based on feedback data (e.g., subsequent user inputs captured via input devices 212) and / or additional context signals. The machine learning model can be trained using supervised, unsupervised, or reinforcement learning techniques and can be periodically updated to improve its accuracy and adapt to changing user behavior. In some examples, the context extractor 232 can determine one or more contexts associated with the computing device 202 by generating clusters of context signals collected within a time period. For example, the context extractor 232 can identify a set of context signals 224 with timestamps indicating that the set of context signals was obtained within a time period. Based on the identified set of signals, the context extractor 232 can generate one or more clusters, each representing groupings of the identified set of context signals. The context extractor 232 can identify one or more contexts associated with the computing device 202 by, for example, identifying one or more clusters of the generated clusters based on a volume threshold of context signals within corresponding clusters (e.g.,The context extractor 232 can select the one or more contexts based on configuration data from user interface (UI) control configurations 226 that indicate that the selected one or more clusters correspond to the one or more contexts (e.g., configuration data indicating that a selected cluster of context signals containing display data associated with a software application corresponds to a context of an application state associated with the software application).The context extractor 232 can send the identified, selected one or more contexts to the UI control selector 236. In some cases, the context extractor 232 can determine how many contexts to output to the UI control selector 236, based on the context signals 224. The context extractor 232 can analyze data indicating a phone state (e.g., data indicating a current energy capacity associated with the power source 248, data indicating whether the processor 242 is operating in power-saving mode (e.g., a mode in which the processor operates at a reduced clock frequency or with fewer active cores to save energy), data indicating external devices communicating with the communication unit 246, etc.) to determine a number of contexts to use for user interface control selection.For example, based on data indicating that the energy source 248 has a low current capacity, the context extractor 232 can determine a single context associated with the computing device 202, in order to potentially conserve computing resources associated with analyzing the context signals 224 for context determinations. The UI control selector 236 can select one or more user interface controls corresponding to one or more contexts output by the context extractor 232. The UI control selector 236 can select a user interface control from a variety of user interface controls based on configuration data stored in the UI control configurations 226. The UI control configurations 226 can include configuration data specifying mappings of user interface controls to contexts (e.g., graph data structures specifying correlations between user interface controls and clusters of context signals). For example, the user interface control configurations 226 can include configuration data for a user interface control associated with a context that specifies a particular state associated with the computing device 202.The UI control selector 236 can select the user interface control associated with the context based on receiving a context specification from the context extractor 232. The UI control selector 236 can select a number of user interface controls based on the number of user interface controls associated with one or more contexts determined and output by the context extractor 232. In cases where no user interface controls are associated with the one or more specific contexts associated with the computing device 202, the UI control selector 236 can select a default user interface control specified in the configuration data of the UI control configurations 226. The UI control configurations 226 can include a combination of manually entered and automatically generated configuration information for user interface control-to-context mappings. For example, the UI module 214 can output data for a settings user interface that allows a user operating the computing device 202 to enable, disable, or otherwise define contextual user interface controls to be selected and output as part of a contextual user interface element in response to one or more specific contexts. In some examples, the applications 218 can be associated with application programming interfaces (APIs) that include user interface control configuration information specifying context-to-user interface control mappings.The UI module 214 can output data for a settings user interface that allows a user operating the computing device 202 to enable, disable, or otherwise modify user interface control configuration information executed via APIs associated with applications 218. The UI control configurations 226 can include automatically generated configuration information that specifies user interface control-to-context mappings. For example, a machine learning model 234, with the explicit consent of a user operating the computing device 202, can collect data indicating actions initiated by the user during a period in which one or more contexts are determined by the context extractor 232. The machine learning model can generate or identify one or more context-related user interface elements configured with one or more context-related user interface controls, based on behavior determined according to the collected data, indicating the actions initiated by the user.For example, the machine learning model can analyze the collected data to identify that the user is using the communication unit 246 to activate an external device during a time when the context extractor 232 determines that the computing device 202 is in a specific environmental state (e.g., at a specific location and a specific distance from the external device). The machine learning model can then generate a context-aware user interface element configured with a context-aware user interface control to activate the external device in the future when it is determined that the specific environmental state is a context associated with the computing device 202.The UI module 214 can generate data for a user interface that prompts a user operating the computing device 202 to activate the output of the contextual user interface element configured with the contextual user interface control to activate the external device based on the specified environment state context. In response to receiving a request to activate a contextual user interface element configured with a contextual user interface control, the UI module 214 can output data to a graphical user interface so that a user can provide a gesture that can trigger the output of the user interface element and the control in response to a determination and / or selection of one or more contexts associated with the request to activate the contextual user interface element with the contextual user interface control. For example, in response to receiving a request to activate an automatically generated user interface element and / or a user interface control, the contextual UI controller 216 can record a gesture captured using the input device 212 (e.g.,A combination of tactile inputs, such as a long press followed by an upward swipe applied to a volume button, can be recorded. The contextual UI controller 216 can store configuration data for a gesture by assigning the gesture to a user interface control that is associated with one or more contexts. In some cases, a machine learning model can determine a time interval that specifies when and / or how often the context extractor should determine contexts associated with the computing device 202. For example, in response to explicit consent from a user operating the computing device 202, the machine learning model can collect data indicating how often the input device 212 detects a gesture that triggers the output of a context-aware user interface. The machine learning model can determine a time interval for identifying a context associated with the computing device 202 by predicting, at a minimum based on the collected data, how often the user provides a triggering gesture.For example, the machine learning model can determine that the user provides a first gesture every two hours, which is associated with triggering the output of a first set of contextual user interfaces associated with a first set of contexts. In another example, the machine learning model can determine that a user operating the computing device 202 provides a second gesture, which is associated with triggering the output of a second set of contextual user interfaces associated with a second set of contexts, approximately every 15 minutes between 9:00 AM and 5:00 PM. The machine learning model can issue instructions to the context extractor 232 to analyze context signals associated with a set of contexts (e.g., the first set of contexts associated with the first gesture, the second set of contexts associated with the second gesture, and so on).) according to a time interval (e.g., every two hours, every 15 minutes between 9:00 AM and 5:00 PM, etc.) associated with identified user behavior requesting context-aware user interfaces for the set of contexts. In this way, the machine learning model can conserve computational resources (e.g., power consumption, processing cycles, memory usage, etc.) associated with continuously analyzing each of the context signals 224 to continuously determine a context associated with the computing device 202. Additionally or alternatively, the machine learning model can reduce the latency associated with outputting context-aware user interfaces by predicting how often and / or when a user operating the computing device 202 will request context-aware user interfaces via gestures captured using the input device 212. The UI control selector 236 can use the UI module 214 to output a graphical user interface element configured with a contextual user interface control selected by the UI control selector 236. For example, in response to the input device 212 detecting a gesture associated with triggering an output of the contextual user interface control, the UI control selector 236 can send data associated with the user interface control to the UI module 214. The UI module 214 can generate data for a contextual user interface element as a graphical user interface element (e.g., by populating a contextual user interface element template with data based on context signals, data obtained over a network, artificially generated data, retrieved data, etc.).), which is configured with the selected user interface controller. The UI module 214 can output the data for the contextual user interface for display via the output device 244. The UI module 214 can send instructions to the output device 244 to output the contextual user interface in a section of the output device 244 that is intended for, or otherwise associated with, the sensor of the input device 212 that detected the gesture. In some cases, the contextual UI controller 216 can output contextual user interfaces based on standard gestures detected using the input device 212 (e.g., a combination of tactile inputs applied to a sensor of the input device 212). In some examples, the training module 238 can further train, retrain, and / or fine-tune machine learning models 234 based on feedback data obtained using the input device 212. The training module 238 can adjust parameters, weights, biases, etc., of the machine learning models 234 based on user inputs that specify a preferred user interface control for certain context signals. For example, the training module 238 can decrease weights associated with context signals indicating a particular environmental state (e.g., context signals indicating an elevated heart rate) based on user inputs that specify numerous discards of a user interface control (e.g., changing or canceling the user interface control) issued based on a determination of a context associated with the particular environmental state and in response to a gesture.In some cases, the training module 238 can automatically adjust configuration data (e.g., user interface control-to-context mappings) based on feedback data obtained using the input device 212. For example, in the UI control configurations 226, the training module 238 can change a mapping of a user interface control to a first context to a mapping of the user interface control to the first and a second context, based on feedback data indicating that the user interface control was used by a user operating the computing device 202 in response to a determination of the first and second contexts.In some examples, the UI module 214 can generate and output data for a graphical user interface, requesting feedback from a user operating the computing device 202 to collect feedback data associated with the performance of the context-aware UI controller 216 in determining contexts and / or selecting appropriate user interface controls. Fig. 3 is a conceptual diagram illustrating an exemplary computing device 302, which includes an exemplary user interface element 328 with an exemplary user interface controller 354, according to one or more techniques of this disclosure. The computing device 302, the housing 320, the display 306, the sensors 312, the gestures 352A-352N, the user interface (UI) module 314, the context-sensitive user interface (UI) controller 316, the user interface element 328 and the applications 318 of Fig. 3 can be exemplary or alternative implementations of the computing device 102, the presence-sensitive housing 120, the presence-sensitive display 106, the sensors 112, the gestures 152, the UI module 114, the context-sensitive UI controller 116, the user interface elements 328 and the applications 118 of Fig. 1.The computing device 302, the display 306, the sensors 312A-312N, the UI module 314, the context-aware UI controller 316, the applications 318, one or more processors 342 and one or more communication units 346 of Fig. 3 can be exemplary or alternative implementations of the computing device 202, the output device 244, the input device 212, the UI module 214, the context-aware UI controller 216, the applications 218, the processors 242 and the communication unit 246 of Fig. 2. The computing device 302 can output the contextual user interface element 328 to contain graphical data associated with the functionality of the contextual user interface controller 354. In the example shown in Fig. 3, the computing device 302 can output the contextual user interface element 328 as a slider element configured with the contextual user interface controller 354, which is associated with adjusting a slider value of the slider element and performing a corresponding action. The contextual UI controller 316 can determine a context associated with the computing device 302 and select the contextual user interface controller 354 based on the determined context, according to the techniques described herein.For example, the contextual UI controller 316 can collect and analyze context signals that indicate a state of the computing device 302. The contextual UI controller 316 can process the context signals to determine a context associated with the computing device 302, which includes one or more indications of states associated with the computing device 302. The contextual UI controller 316 can select the contextual user interface control 354 based on user interface control configuration data that indicates that the contextual user interface control 354 corresponds to the specific context associated with the computing device 302. In general, the contextual UI controller 316 can select the contextual user interface control 354 as a user interface control that includes computer-readable instructions for performing an action (e.g.,Adjusting slider values of a slider user interface element, adjusting output parameters of the computing device 302, outputting contextually relevant information, performing application-specific actions and controls, etc.), which is contextually associated with a state specified in a context determined for the computing device 302. In one example, the contextual UI controller 316 can determine, based on context signals indicating a state of the computing device 302, that a context of the computing device 302 indicates a phone state associated with low battery (e.g., low capacity of a power source of the computing device 302). The contextual UI controller 316 can then select the contextual user interface control 354 as a user interface control for adjusting an output setting of the computing device 302 (e.g., adjusting the screen brightness of the display 306, adjusting an output volume of the computing device 302, switching between low-power modes associated with one or more processors 342, etc.) based on the context indicating that the phone state of the computing device 302 is associated with low battery.In this way, the context-aware UI controller 316 can predict that a user wants to conserve computing resources associated with the computing device 302 and issue one or more user interface controls that allow the user to quickly and efficiently reduce or adjust the power consumption of the computing device 302. In another example, the contextual UI controller 316 can determine a context associated with the computing device 302, specifying an application state associated with display data output by the display 306, such as browsing a web page via a web browser application. Based on this context, the contextual UI controller 316 can select the contextual user interface control 354 as a user interface control for scrolling through the content of the web page displayed on the display 306. In another example, the context-aware UI controller 316 can determine a context associated with the computing device 302 and indicate an environmental state associated with data obtained using one or more of the additional sensors 312B-312N. For example, the context-aware UI controller 316 can determine a context associated with the computing device 302 and indicate an environmental state associated with an acceleration or velocity determined for the computing device 302 based on an accelerometer of the additional sensors 312B-312N, an atmospheric pressure determined based on a barometer of the additional sensors 312B-312N, or a biometric state detected by health sensors of the additional sensors 312B-312N (e.g.,a biometric condition of high heart rate, high blood pressure, high blood glucose, etc.) and / or the location of the computing device 302. Based on the context that specifies the environmental state, the contextual UI controller 316 can select the contextual user interface control 354 as a user interface control associated with that context. For example, based on the context of the computing device 302, which specifies an environmental state associated with the computing device 302 being within a threshold distance of an external device, the contextual UI controller 316 can select the contextual user interface control 354 as a user interface control for adjusting settings associated with the external device (e.g.,Adjusting output settings of the external device (such as adjusting the volume setting of an external speaker, adjusting the brightness setting of an external light source, etc.) in a manner that corresponds to the slider value displayed on the contextual user interface element 328. The contextual UI controller 316 can, in response to receiving information that a user has provided one or more gestures 352, output the contextual user interface element 328, which is configured with the contextual user interface control associated with a selected user interface control (e.g., a selected user interface control to adjust output settings of the computing device 302, a selected user interface control to scroll through images displayed on the display 306, etc.). In some examples, the contextual UI controller 316 can use the contextual user interface control 354 as a default user interface control (e.g.,The computing device 302 can output a user interface control (for adjusting a volume, output by the computing device 302) based, for example, on a determination that no user interface control is associated with a particular context, in response to a user providing one or more gestures 352. The computing device 302 can execute the user interface control 354 based on tactile inputs provided to the sensor 312A. For example, the computing device 302 can adjust a slider value of the user interface control 354 based on tactile inputs (such as subsequent gestures) applied to the sensor 312A after the contextual user interface element 328 is output via the display 306. The computing device 302 can perform an action based on changes to the slider value.For example, the computing device 302 can adjust an output setting of the computing device 302 based on an increase or decrease of the slider value, update data displayed on the display 306 (e.g., moving through content displayed on the display 306, scrolling through a web page, scrolling through images, etc.) based on an increase or decrease of the slider value, adjust settings of an external device in communication with the computing device 302 via the communication unit 346 (e.g., adjusting brightness settings of an external smart light device connected to the computing device 302 based on changes to the slider value), or any other customizable gesture-controlled actions associated with components of the computing device 302.In some examples, in response to the sensor 312A detecting a second gesture (i.e., gestures 452 precede the second gesture), the contextual UI controller 316 can select and output a contextual user interface element configured with a contextual user interface control selected from a stack of contextual user interfaces. Fig. 4 is a conceptual diagram illustrating example gestures 452 for switching between example user interface controls 454 according to one or more techniques of this disclosure. The computing device 402, the housing 420, the display 406, the gestures 452A-452B, the sensor 412, the context-related UI controller 416, the UI module 414, the context-related user interface elements 428A-428N and the context-related UI controls 454N of Fig. 4 can be alternative or exemplary implementations of the computing device 302, the housing 320, the display 306, the gestures 352, the sensor 312A, the context-related UI controller 316, the UI module 314, the context-related user interface element 328 and the context-related user interface control 354 of Fig. 3. The contextual UI controller 416 can determine multiple contexts 472 associated with collected context signals. In some cases, contexts 472 can indicate one or more states associated with the computing device 402 and / or correspond to one or more clusters of context signals associated with the contextual user interface controls 454 of the user interface (“UI”) control information 426. For example, the contextual UI controller 416 can determine context 472A, which is associated with an application state (e.g., an application state indicating that a video or other media is being displayed on the display 406), and context 472B, which is associated with an environmental state (e.g., an environmental state indicating loud interference or other noise surrounding the computing device 402).For example, the contextual UI controller 416 can determine context 472A and context 472B based on clusters of context signals identified as exceeding a confidence threshold. In cases where no clusters of context signals meet a confidence threshold, the contextual UI controller 416 can select a default user interface control from the UI controls-454N.In cases where a first cluster corresponding to context 472A and a second cluster corresponding to context 472B meet the confidence threshold, the contextual UI controller 416 can select the stack of user interfaces 464 as an ordered list of pairs of user interface elements 428 and user interface controls 454 selected from the UI controls 454N, based on the UI control configuration information 426 indicating that the pairs of user interface elements 428 and user interface controls 454 are associated with context 472A and / or context 472B. In some examples, the contextual UI controller 416 can select the stack of user interfaces 464 based on a single specific context (e.g., context 472A). In response to receiving a gesture 452A, the contextual UI controller 416 can determine which user interface control to issue from the stack of user interface controls 464 based on priorities, thresholds, or other rules associated with the UI control configuration data 426. For example, the UI control configuration data 426 may include policies that specify a hierarchy or other rule-based approaches associated with ranks for mappings of user interface controls 454 to user interface elements 428.For example, the contextual UI controller 416 can order the user interface control 454A and each user interface control in the stack of user interfaces 464—identified based on user interface controls associated with the first and second contexts determined by the contextual UI controller 416—according to a hierarchy specified in the UI control configuration data 426. The contextual UI controller 416 can output the contextual user interface element 428A configured with the contextual user interface control 454A, based on the fact that the pair of contextual user interface element 428A and contextual user interface control 454A is ranked higher than other user interface element and user interface control pairs specified in the stack of user interfaces 464.In some cases, the context-aware UI controller 416 can classify the user interface controls 454 based on standard parameters and / or parameters offered and selected by a user operating the computing device 402. The UI control configuration data 426 can include configurable data structures associated with generating and outputting contextual user interfaces. For example, the UI control configuration data 426 can include data structures that map, index, or otherwise assign gesture information 452A-452N to contextual user interface elements 428A-428N and / or contextual UI controls 454N. The UI control configuration data 426 can include a set of rules for outputting contextual user interfaces.For example, the UI control configuration data can include 426 rules that specify what set of user interface control and user interface element pairs to select based on context signals that specify a certain set of contexts of contexts 472 that are associated with the respective user interface control and user interface element pairs. The contextual UI controller 416 can update rules, weights, biases, thresholds, hierarchies, ranks, or other aspects of the UI control configuration data 426 based on feedback data associated with user input obtained in response to the output of a contextual user interface element and contextual user interface control pair based on the current state of the UI control configuration data 426. Feedback data associated with user input obtained in response to the output of a contextual user interface element and contextual user interface control pair can include a user input 458 associated with changing the user interface element and user interface control pair currently displayed via the display 406. In response to receiving a user input specification 458, the contextual UI controller 416 can use the UI module 414 to generate and output data for an alternative user interface element and user interface control pair from the stack of user interfaces 464. For example, in response to receiving a user input specification 458—where the user input 458 is preceded by the gesture 452A—the contextual UI controller 416 can instruct the UI module 414 to generate and output the user interface element 428B (e.g., a preview of images, a preview of icons associated with a software application executed by the computing device 402, etc.) associated with the user interface control 454B (e.g.,Scrolling through content displayed via display 406, scrolling through content displayed via a corresponding user interface element, etc.) is configured. In general, in response to receiving a user input specification 458, the contextual UI controller 416 can instruct the UI module 414 to output the updated user interface 462 for display via display 406, which includes an updated user interface element (e.g., a slider element, a graphic element populated with contextual data, etc.) that is linked to an updated user interface control (e.g.,Adjusting an output setting of the computing device 402, navigating through content displayed via the display 406, selecting an icon displayed in contextual data of the user interface element, capturing content displayed in a section of the display 406, outputting contextually linked images via the display 406, etc.) is configured. In some cases, the contextual UI controller 416 can instruct the UI module 414 to generate and output data for the updated user interface 462 based on a pair of contextual user interface element and contextual user interface control determined based on one or more contexts of the computing device 402 and / or rules that order user interface element and contextual user interface control pairs associated with the one or more contexts.In some examples, the contextual UI controller 416 can limit a number of user interface controls within the stack of user interfaces 464 based on computing resource constraints (e.g., processing constraints, memory constraints, low power, etc.). Fig. 5 is a conceptual diagram illustrating an exemplary computing device 502 which includes exemplary context-related user interface elements 528 according to one or more techniques of this disclosure. The computing device 502, the additional sensors 512B-512N, the context-aware UI controller 516, the UI control configurations 526, the apps 518, the UI module 514, the OS 530, the power sources 548, the processors 542 and the communication units 546 of Fig. 5 can be exemplary or alternative implementations of the computing device 202, the input devices 212, the context-aware UI controller 216, the UI control configurations 226, the applications 218, the UI module 214, the OS 230, the power source 248, the processor 242 and the communication unit 246 of Fig. 2, respectively.Additionally or alternatively, the computing device 502, the gesture 552, the housing 520, the sensor 512A, the context-related user interface elements 528, the context-related UI controls 554, the context-related UI controller 516, the apps 518, the UI module 514, the additional sensors 512B-512N, the processors 542 and the communication units 546 of Fig. 5 can be exemplary or alternative implementations of the computing device 302, the gestures 352, the housing 320, the sensor 312A, the context-related user interface element 328, the context-related user interface control 354, the context-related UI controller 316, the applications 318, the UI module 314, the additional sensors 312B-312N, the processor 518, the apps 518, the UI module 514, the additional sensors 512B-312N, the processor 512A, the computing device 502, the gestures 552, the housing 520, the sensor 512A, the context-related user interface element 528, the context-related user interface control 354, the context-related UI controller 316, the applications 518, the UI module 314, the additional sensors 312B-312N, the processor 512A, the computing device 502, the gestures 528, the housing 520, the sensor 512A, the context-related user interface element 528, the context-related UI control 354, the context-related UI controller 516, the applications 518, the UI module 518, the additional sensors 512B-312N, the processor 512A, the computing device 528, the context-related UI controls 516, the applications 518, the UI 342 or the communication unit 346 of Fig. 3. In the example shown in Fig. 5, the computing device 502 can collect context signals associated with it, such as application display data 524A, environmental data 524B, and phone status data 524C. The environmental data 524B can include sensor data obtained from the additional sensors 512B-512N, indicating an environmental state associated with the computing device 502. The phone status data 524C can include data obtained from the power sources 548, the processors 542, the OS 530, and / or the communication units 546, indicating a phone state associated with the computing device 502. The application display data 524A can include visual and / or audio data generated by an application of the apps 518 and output via a display device of the computing device 502. Contextual action application programming interfaces (APIs) 566 can include one or more APIs for triggering the output of contextual user interfaces in response to gestures (e.g., gesture 552) detected using the sensor 512A. The contextual action APIs 566 can interact with the apps 518 to define or modify configuration data of the UI control configurations 526. For example, with the explicit consent of a user operating the computing device 502, contextual action APIs 566 can communicate with a software application program to store a mapping of contexts to contextual user interfaces assigned to a particular gesture.Contextual Action APIs 566 can include one or more machine learning models trained to automatically generate configuration information for contextual user interfaces and / or to suggest changes to contextual user interfaces. In the example shown in Fig. 5, application display data 524A can include data associated with a web page generated by a web browser application program of apps 518. Based on application display data 524A, environment data 524A, and phone state data 524C, the contextual UI controller 516 can determine that a context associated with the computing device 502 is an application state associated with the web page output using the web browser application program. Based on the context and UI control configurations 526, the contextual UI controller 516 can select the contextual UI element 528A configured with the contextual UI control 554A and the contextual UI element 528B configured with the contextual UI controls 554B-554N.For example, contextual action APIs 566 can communicate with the web browser application program to specify that the context associated with the web page is assigned to both the contextual UI element 528A, configured with the contextual UI control 554A, and the contextual UI element 528B, configured with the contextual UI controls 554B-554N. The contextual UI element 528A, configured with the contextual UI control 554A, may include a graphical slider element configured for scrolling through the web page. The contextual UI element 528B, configured with the contextual UI controls 554B-554N, can include a graphical screen splitting element configured to suggest and / or execute one or more actions based on content from application display data 524A (e.g.,Contextual UI control 554B is a user interface control for translating recognized text data from application display data 524A; contextual UI control 554N is a user interface control for searching the web for an image recognized in application display data 524A, and so on. In response to receiving a command from gesture 552 applied to sensor 512A, contextual UI controller 516 can use UI module 514 to generate data to output contextual UI element 528A, configured with contextual UI control 554A, and contextual UI element 528B, configured with contextual UI controls 554B-554N. Fig. 6 is a flowchart illustrating exemplary operations of an exemplary computing device for outputting context-sensitive user interface elements according to one or more techniques of the present disclosure. Fig. 6 can only be discussed in relation to Fig. 1 for illustrative purposes. The computing device 102 can determine a context associated with it based on a variety of context signals (602). Based on the context associated with it, the computing device 102 can select a user interface control from a variety of user interface controls (604). In response to a gesture detected by a sensor of the computing device 102, the computing device 102 can output a contextual user interface element configured with the user interface control for display on a display device of the computing device 102, with the contextual user interface element being displayed in a section of the display device associated with the sensor (606). In one or more examples, the described functions can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions can be stored as one or more instructions or code on or transmitted via a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media can include computer-readable storage media corresponding to a tangible medium such as data storage media, or communication media, which includes any medium that facilitates the transmission of a computer program from one location to another, for example, according to a communication protocol. In this way, computer-readable media can generally correspond to (1) tangible, computer-readable storage media that are non-volatile, or (2) a communication medium such as a signal or carrier wave.Data storage media can be any available media accessible by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described in this disclosure. A computer program product can include a computer-readable medium. By way of example, and without limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other 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. Furthermore, any such connection is properly referred to as a computer-readable medium.For example, if instructions are transmitted from a website, server, or other remote source using 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. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but instead refer to non-volatile, tangible storage media.Disk and disc, as used herein, include Compact Disc (CD), Laserdisc, optical disc, Digital Versatile Disc (DVD), floppy disk, and Blu-ray Disc, whereby disks normally reproduce data magnetically, while discs reproduce data optically using lasers. Combinations of the above should also be included in the scope of computer-readable media. Instructions can 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 circuits. Accordingly, the term "processor," as used herein, may refer to any of the aforementioned structures or any other structure suitable for implementing the techniques described herein. Furthermore, in some aspects, the functionality described herein may be provided within dedicated hardware and / or software modules. The techniques could also be implemented entirely within one or more circuits or logic elements. The techniques of this disclosure can be implemented in a variety of devices or apparatuses, including a wireless handheld device, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in this disclosure to highlight functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Rather, as described above, different units can be combined in a single hardware unit or provided by a collection of interoperable hardware units, including one or more processors, as described above, in conjunction with suitable software and / or firmware. Various examples of the disclosure have been described. Every combination of the described systems, operations, or functions is considered. These and other examples are within the scope of the following claims. Example 1: Method comprising: Determining, by a computing device and based on a plurality of context signals, a context associated with the computing device; Selecting, by the computing device and based on the context, a user interface control from a plurality of user interface controls; and, in response to a gesture detected by a sensor of the computing device, Outputting, by the computing device and for display on a display device of the computing device, a context-related user interface element configured with the user interface control, wherein the context-related user interface element is displayed in a section of the display device associated with the sensor. Example 2: Method according to Example 1, wherein the user interface control is a first user interface control, and wherein the method further comprises: ranking, based on the context, of the plurality of user interface controls, wherein the first user interface control is ranked higher than a second user interface control; and wherein selecting the first user interface control comprises selecting, based on the ranking of the plurality of user interface controls, the first user interface control instead of the second user interface control. Example 3: Method according to Example 2, wherein the gesture is a first gesture and wherein the method further comprises: selecting, based on the ranking of the plurality of user interface controls, a stack of user interface controls from the plurality of user interface controls, wherein the stack of user interface controls includes the second user interface control; and in response to a second gesture detected by the sensor, outputting, by the computing device and for display at the display device, the contextual user interface element configured with the second user interface control, wherein the first gesture precedes the second gesture. Example 4: Procedure according to one of Examples 1-3, further comprising: in response to receiving user input associated with user interface control, updating the contextual user interface element based on the user input. Example 5: Method according to Example 4, wherein the user input is a tactile input applied to the sensor or display device. Example 6: Method according to Example 4, wherein the contextual user interface element is a slider element, and wherein updating the contextual user interface element involves changing a slider value of the contextual user interface element based on user input. Example 7: Method according to Example 4, wherein the user interface control includes instructions to adjust an output setting based on user input, wherein the output setting includes one of the following: a volume setting of the computing device or a display brightness setting of the computing device. Example 8: Method according to Example 4, wherein the user interface control includes instructions to move through content displayed by the display device based on user input. Example 9: Method according to Example 4, wherein the user interface control includes instructions for selecting, based on user input, a symbol from a set of symbols displayed in the contextual user interface element, wherein each symbol in the set of symbols specifies an action that is contextually associated with content displayed by the display device. Example 10: Method according to Example 4, wherein the user interface control includes instructions to capture, based on user input, a section of content displayed by the display device. Example 11: Method according to Example 4, wherein the user interface control includes instructions for outputting, in the contextual user interface element, one or more images that are contextually associated with content displayed by the display device. Example 12: Procedure according to one of Examples 1-11, wherein the user interface control includes instructions to perform an action that is contextually associated with a state specified in the context. Example 13: Method according to any of Examples 1-12, further comprising: obtaining, by the computing device, the multitude of context signals, wherein the multitude of context signals includes content displayed by the display device, application data, sensor data, connection data and environment data. Example 14: The method according to any of Examples 1-13, wherein the context associated with the computing device includes one or more of the following: a telephone state, an application state, and an environment state. Example 15: A method according to any of Examples 1-14, wherein determining the context comprises: identifying a set of signals from the multitude of context signals acquired during a period of time; generating, based on the set of signals, one or more clusters containing one or more signals from the set of signals, each of the one or more clusters corresponding to one or more user interface controls from the multitude of user interface controls; determining one cluster from the one or more clusters, the cluster indicating the context associated with the computing device. Example 16: Procedure according to Example 15, further comprising: storing user interface control configuration information, which includes at least the mapping of the user interface control to the cluster. Example 17: Procedure according to Example 15, further comprising: Updating the user interface control configuration information using a machine learning model. Example 18: Procedure according to Example 15, wherein determining the cluster comprises: determining that the cluster has a larger number of signals from the set of signals than other clusters of the one or more clusters, and wherein the procedure further comprises ranking the cluster higher than other clusters of the one or more clusters. Example 19: Method according to one of Examples 1-18, wherein the sensor includes a touch-sensitive button. Example 20: Method according to any of Examples 1-19, wherein the gesture includes at least one of the following: one or more taps applied to the sensor, a long press applied to the sensor, or a swipe gesture applied to the sensor. Example 21: Method according to one of Examples 1-20, wherein the contextual user interface element includes graphical data associated with user interface control functionality. Example 22: Computing device comprising at least one processor; a display device; a sensor; and a storage device that stores instructions executable by the at least one processor to: determine a context associated with the computing device based on a variety of context signals, select a user interface control from a variety of user interface controls based on the context, and, in response to a gesture detected by the sensor, output a context-sensitive user interface element configured with the user interface control to the display device, wherein the context-sensitive user interface element is displayed in a section of the display device associated with the sensor. Example 23: Computing device according to Example 22, wherein the user interface controller is a first user interface controller, and wherein the storage device further stores instructions executable by the one or more processors to: rank the plurality of user interface controllers based on the context, with the first user interface controller being ranked higher than a second user interface controller; and wherein, to select the first user interface controller, the storage device stores instructions executable by the one or more processors to: select the first user interface controller instead of the second user interface controller based on the ranking of the plurality of user interface controllers. Example 24: Computing device according to Example 23, wherein the gesture is a first gesture and wherein the storage device further stores instructions executable by the at least one processor to: select a stack of user interface controls from the plurality of user interface controls based on the ranking of the plurality of user interface controls, wherein the stack of user interface controls includes the second user interface control; and in response to a second gesture detected by the sensor, output for display at the display device the contextual user interface element configured with the second user interface control, wherein the first gesture precedes the second gesture. Example 25: Computing device according to any of Examples 22-24, wherein the storage device further stores instructions executable by the at least one processor to: update the contextual user interface element based on the user input in response to receiving user input associated with user interface control. Example 26: Computing device according to Example 25, wherein the user input is a tactile input applied to the sensor or display device. Example 27: Computing device according to Example 25, wherein the contextual user interface element is a slider element, and wherein updating the contextual user interface element involves changing a slider value of the contextual user interface element based on user input. Example 28: Computing device according to Example 25, wherein the user interface control includes instructions for adjusting an output setting based on user input, wherein the output setting includes one of the following: a volume setting of the computing device or a display brightness setting of the computing device. Example 29: Computing device according to Example 25, wherein the user interface control includes instructions for moving through content displayed by the display device based on user input. Example 30: Computing device according to Example 25, wherein the user interface control includes instructions for selecting, based on user input, a symbol from a set of symbols displayed in the contextual user interface element, wherein each symbol in the set of symbols specifies an action that is contextually associated with content displayed by the display device. Example 31: Computing device according to Example 25, wherein the user interface control includes instructions for capturing, based on user input, a section of content displayed by the display device. Example 32: Computing device according to Example 25, wherein the user interface control includes instructions for outputting, in the contextual user interface element, one or more images that are contextually linked to content displayed by the display device. Example 33: Computing device according to one of Examples 22-32, wherein the user interface control includes instructions to perform an action that is contextually linked to a state specified in the context. Example 34: Computing device according to any of Examples 22-33, wherein the storage device further stores instructions executable by the at least one processor to: obtain the plurality of context signals, wherein the plurality of context signals includes content displayed by the display device, application data, sensor data, connection data and environment data. Example 35: Computing device according to one of Examples 22-34, wherein the context associated with the computing device includes one or more of a telephone state, an application state, and an environment state. Example 36: Computing device according to any of Examples 22-35, wherein, to determine the context, the storage device stores instructions executable by the at least one processor to: identify a set of signals from the plurality of context signals acquired during a period of time; generate, based on the set of signals, one or more clusters containing one or more signals from the set of signals, each of the one or more clusters corresponding to one or more user interface controls from the plurality of user interface controls; determine one cluster of the one or more clusters, the cluster indicating the context associated with the computing device. Example 37: Computing device according to Example 36, wherein the storage device further stores instructions executable by the at least one processor to: store user interface control configuration information, which includes at least the mapping of the user interface control to the cluster. Example 38: Computing device according to Example 36, wherein the storage device further stores instructions executable by the at least one processor to: update the user interface control configuration information using a machine learning model. Example 39: Computing device according to Example 36, wherein, for determining the cluster, the storage device stores instructions executable by the at least one processor to: determine that the cluster has a larger number of signals from the set of signals than other clusters of the one or more clusters, and wherein the storage device further stores instructions executable by the at least one processor to: rank the cluster higher than other clusters of the one or more clusters. Example 40: Computing device according to one of Examples 22-39, wherein the sensor includes a touch-sensitive button. Example 41: Computing device according to one of Examples 22-40, wherein the gesture includes at least one of the following: one or more taps applied to the sensor, a long press applied to the sensor, or a swipe gesture applied to the sensor. Example 42: Computing device according to one of Examples 22-41, wherein the contextual user interface element includes graphical data associated with functionality of the user interface control. Example 43: Computer-readable storage medium encoded with instructions which, when executed, cause at least one processor of a computing device to: determine a context associated with the computing device based on a variety of context signals; select a user interface control from a variety of user interface controls based on the context; and, in response to a gesture detected by a sensor for display on a display device, output a contextual user interface element configured with the user interface control, the contextual user interface element being displayed in a section of the display device associated with the sensor. Example 44: Computer-readable storage medium according to Example 43, wherein the user interface controller is a first user interface controller, and wherein the instructions further cause the at least one processor of the computing device to: rank the plurality of user interface controllers based on the context, ranking the first user interface controller higher than a second user interface controller; and wherein, to select the first user interface controller, the instructions cause the at least one processor of the computing device to select the first user interface controller instead of the second user interface controller based on the rank of the plurality of user interface controllers. Example 45: Computer-readable storage medium according to Example 43, wherein the gesture is a first gesture and wherein the instructions further cause the at least one processor of the computing device to: select a stack of user interface controls from the plurality of user interface controls based on the ranking of the plurality of user interface controls, wherein the stack of user interface controls includes the second user interface control; and in response to a second gesture detected by the sensor, output for display at the display device the contextual user interface element configured with the second user interface control, wherein the first gesture precedes the second gesture. Example 46: Computer-readable storage medium according to any of Examples 43-45, wherein the instructions further cause the at least one processor of the computing device to: in response to receiving user input associated with user interface control, update the contextual user interface element based on the user input. Example 47: Computer-readable storage medium according to Example 46, wherein the user input is a tactile input applied to the sensor or display device. Example 48: Computer-readable storage medium according to Example 46, wherein the contextual user interface element is a slider element, and wherein, to update the contextual user interface element, the instructions cause the at least one processor of the computing device to change a slider value of the contextual user interface element based on user input. Example 49: Computer-readable storage medium according to Example 46, wherein the user interface control includes instructions for adjusting an output setting based on user input, wherein the output setting includes one of the following: a volume setting of the computing device or a display brightness setting of the computing device. Example 50: Computer-readable storage medium according to Example 46, wherein the user interface control includes instructions for moving through content displayed by the display device based on user input. Example 51: Computer-readable storage medium according to Example 46, wherein the user interface control includes instructions for selecting, based on user input, an icon from a set of icons displayed in the contextual user interface element, wherein each icon in the set of icons specifies an action that is contextually associated with content displayed by the display device. Example 52: Computer-readable storage medium according to Example 46, wherein the user interface control includes instructions for capturing, based on user input, a section of content displayed by the display device. Example 53: Computer-readable storage medium according to Example 46, wherein the user interface control includes instructions for output, in the contextual user interface element, one or more images that are contextually linked to content displayed by the display device. Example 54: Computer-readable storage medium according to one of Examples 43-53, wherein the user interface control includes instructions for performing an action that is contextually linked to a state specified in the context. Example 55: Computer-readable storage medium according to one of Examples 43-54, wherein the instructions further cause the at least one processor of the computing device to obtain the plurality of context signals, wherein the plurality of context signals includes content displayed by the display device, application data, sensor data, connection data and environment data. Example 56: Computer-readable storage medium according to one of Examples 43-55, wherein the context associated with the computing device includes one or more of a telephone state, an application state, and an environment state. Example 57: Computer-readable storage medium according to any of Examples 43-56, wherein, to determine the context, the instructions cause the at least one processor of the computing device to: identify a set of signals from the plurality of context signals acquired during a period of time; generate, based on the set of signals, one or more clusters containing one or more signals from the set of signals, each of the one or more clusters corresponding to one or more user interface controls from the plurality of user interface controls; determine one cluster of the one or more clusters, the cluster indicating the context associated with the computing device. Example 58: Computer-readable storage medium according to Example 57, wherein the instructions further cause the at least one processor of the computing device to store user interface control configuration information, which includes at least the mapping of the user interface control to the cluster. Example 59: Computer-readable storage medium according to Example 57, wherein the instructions further instruct the at least one processor of the computing device to update the user interface control configuration information using a machine learning model. Example 60: Computer-readable storage medium according to Example 57, wherein, to determine the cluster, the instructions further cause the at least one processor of the computing device to determine that the cluster has a larger number of signals from the set of signals than other clusters of the one or more clusters, and wherein the instructions further cause the at least one processor of the computing device to rank the cluster higher than other clusters of the one or more clusters. Example 61: Computer-readable storage medium according to one of Examples 43-60, wherein the sensor includes a touch-sensitive button. Example 62: Computer-readable storage medium according to one of Examples 43-61, wherein the gesture includes at least one of the following: one or more taps applied to the sensor, a long press applied to the sensor, or a swipe gesture applied to the sensor. Example 63: Computer-readable storage medium according to one of Examples 43-62, wherein the contextual user interface element includes graphical data associated with user interface control functionality. Example 64: Computing system comprising means for carrying out one of the procedures according to Examples 1-21. Example 65: Computer-readable storage medium encoded with instructions that cause one or more processors of a computing system to perform one of the procedures according to Examples 1-21. Example 66: Computer program product comprising at least one non-volatile, computer-readable medium containing one or more instructions which, when executed by at least one processor, cause that at least one processor to perform one of the procedures according to Examples 1-21. Several examples have been described. These and other examples are within the scope of the following patent claims. QUOTES INCLUDED IN THE DESCRIPTION This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature US 63 / 737.085
[0001]
Claims
Method comprising: determining, by a computing device and based on a variety of context signals, a context associated with the computing device; selecting, by the computing device and based on the context, a user interface control from a variety of user interface controls; and, in response to a gesture detected by a sensor of the computing device, outputting, by the computing device and for display on a display device of the computing device, a context-related user interface element configured with the user interface control, wherein the context-related user interface element is displayed in a section of the display device associated with the sensor. The method of claim 1, wherein the user interface controller is a first user interface controller, and wherein the method further comprises: ranking, based on the context, of the plurality of user interface controllers, wherein the first user interface controller is ranked higher than a second user interface controller; and wherein selecting the first user interface controller comprises: selecting, based on the ranking of the plurality of user interface controllers, the first user interface controller instead of the second user interface controller. The method of claim 2, wherein the gesture is a first gesture and wherein the method further comprises: selecting, based on the classification of the plurality of user interface controls, a stack of user interface controls from the plurality of user interface controls, wherein the stack of user interface controls includes the second user interface control; and, in response to a second gesture detected by the sensor, outputting, by the computing device and for display on the display device, the contextual user interface element configured with the second user interface control, wherein the first gesture precedes the second gesture. Method according to one of claims 1-3, further comprising: updating the contextual user interface element based on the user input in response to receiving user input associated with user interface control. Method according to claim 4, wherein the user input is a tactile input applied to the sensor or the display device. The method of claim 4, wherein the contextual user interface element is a slider element, and wherein updating the contextual user interface element comprises: changing a slider value of the contextual user interface element based on user input. The method of claim 4, wherein the user interface control includes instructions for adjusting an output setting based on user input, wherein the output setting includes one of the following: a volume setting of the computing device or a display brightness setting of the computing device. Method according to claim 4, wherein the user interface control includes instructions for moving through content displayed by the display device based on user input. The method of claim 4, wherein the user interface control includes instructions for selecting, based on user input, a symbol from a set of symbols displayed in the contextual user interface element, wherein each symbol in the set of symbols indicates an action that is contextually associated with content displayed by the display device. Method according to claim 4, wherein the user interface control includes instructions for capturing, based on user input, a section of content displayed by the display device. The method of claim 4, wherein the user interface control includes instructions for outputting, in the contextual user interface element, one or more images that are contextually related to content displayed by the display device. Method according to any one of claims 1-11, wherein the user interface control includes instructions for performing an action that is contextually associated with a state specified in the context. Method according to any one of claims 1-12, further comprising: obtaining, by the computing device, the plurality of context signals, wherein the plurality of context signals includes content displayed by the display device, application data, sensor data, connection data and environment data. Method according to any one of claims 1-13, wherein the context associated with the computing device comprises one or more of the following: a telephone state, an application state and an environment state. A method according to any one of claims 1-14, wherein determining the context comprises: identifying a set of signals from the plurality of context signals acquired during a period of time; generating, based on the set of signals, one or more clusters containing one or more signals from the set of signals, each of the one or more clusters corresponding to one or more user interface controls from the plurality of user interface controls; and determining one cluster from the one or more clusters, wherein the cluster represents the context associated with the computing device, wherein selecting the user interface control comprises: selecting the user interface control from the plurality of user interface controls based on an assignment of the user interface control to the cluster. The method of claim 15, further comprising: storing user interface control configuration information, which includes at least the mapping of the user interface control to the cluster. The method of claim 16, further comprising: updating the user interface control configuration information using a machine learning model. The method of claim 15, wherein determining the cluster comprises determining that the cluster has a larger number of signals from the set of signals than other clusters of the one or more clusters, and wherein the method further comprises ranking the cluster higher than other clusters of the one or more clusters. Method according to any one of claims 1 to 18, wherein the sensor includes a touch-sensitive button. Method according to any one of claims 1-19, wherein the gesture comprises at least one of the following: one or more taps applied to the sensor, a long press applied to the sensor, or a swipe gesture applied to the sensor. Method according to one of claims 1-20, wherein the context-related user interface element comprises graphical data associated with functionality of the user interface control. Computing device comprising: at least one processor; a display device; a sensor; and a storage device storing instructions executable by the at least one processor to: determine a context associated with the computing device based on a plurality of context signals; select a user interface control from a plurality of user interface controls based on the context; and, in response to a gesture detected by the sensor, output a context-related user interface element configured with the user interface control for display at the display device, wherein the context-related user interface element is displayed in a section of the display device associated with the sensor. Computing device according to claim 22, wherein the user interface controller is a first user interface controller, and wherein the storage device further stores instructions executable by the at least one processor to: rank the plurality of user interface controllers based on the context, with the first user interface controller being ranked higher than a second user interface controller; and wherein, to select the first user interface controller, the storage device stores instructions executable by the at least one processor to: select the first user interface controller instead of the second user interface controller based on the ranking of the plurality of user interface controllers. Computing device according to claim 23, wherein the gesture is a first gesture and wherein the storage device further stores instructions that can be executed by the at least one processor to: select a stack of user interface controls from the plurality of user interface controls based on the ranking of the plurality of user interface controls, wherein the stack of user interface controls includes the second user interface control; and in response to a second gesture detected by the sensor, output the contextual user interface element configured with the second user interface control for display on the display device, wherein the first gesture precedes the second gesture. Computing device according to one of claims 22-24, wherein the storage device further stores instructions that can be executed by the at least one processor to: update the contextual user interface element based on the user input in response to receiving user input associated with user interface control. Computing device according to claim 25, wherein the user input is a tactile input applied to the sensor or display device. Computing device according to claim 25, wherein the contextual user interface element is a slider element, and wherein updating the contextual user interface element comprises changing a slider value of the contextual user interface element based on user input. Computing device according to claim 25, wherein the user interface control includes instructions for adjusting an output setting based on user input, wherein the output setting includes one of the following: a volume setting of the computing device or a display brightness setting of the computing device. Computing device according to claim 25, wherein the user interface control includes instructions for moving through content displayed by the display device based on user input. Computing device according to claim 25, wherein the user interface control includes instructions for selecting a symbol from a set of symbols displayed in the contextual user interface element based on user input, wherein each symbol in the set of symbols indicates an action that is contextually associated with content displayed by the display device. Computing device according to claim 25, wherein the user interface control includes instructions for capturing a section of content displayed by the display device based on user input. Computing device according to claim 25, wherein the user interface control includes instructions for outputting one or more images that are contextually linked to content displayed by the display device in the contextual user interface element. Computing device according to one of claims 22-32, wherein the user interface control includes instructions for performing an action that is contextually linked to a state specified in the context. Computing device according to one of claims 22-33, wherein the storage device further stores instructions that can be executed by the at least one processor to: obtain the plurality of context signals, wherein the plurality of context signals includes content displayed by the display device, application data, sensor data, connection data and environment data. Computing device according to one of claims 22-34, wherein the context associated with the computing device comprises one or more of a telephone state, an application state and an environment state. Computing device according to one of claims 22-35, wherein, for determining the context, the storage device stores instructions that can be executed by the at least one processor to: identify a set of signals from the plurality of context signals acquired during a period of time; generate, based on the set of signals, one or more clusters that contain one or more signals from the set of signals, wherein each of the one or more clusters corresponds to one or more user interface controls from the plurality of user interface controls;and to determine a cluster of one or more clusters, wherein the cluster specifies the context associated with the computing device, wherein, for selecting the user interface control, the storage device stores instructions executable by the at least one processor to: select the user interface control from the plurality of user interface controls based on an association of the user interface control with the cluster. Computing device according to claim 36, wherein the storage device further stores instructions executable by the at least one processor to: store configuration information for user interface controls, which includes at least the mapping of the user interface control to the cluster. Computing device according to claim 37, wherein the storage device further stores instructions that can be executed by the at least one processor to: update the configuration information for user interface controls using a machine learning model. Computing device according to claim 36, wherein, for determining the cluster, the storage device stores instructions that can be executed by the at least one processor to: determine that the cluster has a larger number of signals from the set of signals than other clusters of the one or more clusters, and wherein the storage device further stores instructions that can be executed by the at least one processor to: rank the cluster higher than other clusters of the one or more clusters. Computing device according to one of claims 22-39, wherein the sensor includes a touch-sensitive button. Computing device according to one of claims 22-40, wherein the gesture includes at least one of the following: one or more taps applied to the sensor, a long press applied to the sensor, or a swipe gesture applied to the sensor. Computing device according to one of claims 22-41, wherein the context-related user interface element includes graphical data that is associated with a functionality of the user interface control. Computer-readable storage media encoded with instructions which, when executed, cause at least one processor of a computing device to: determine a context associated with the computing device based on a variety of context signals; select a user interface control from a variety of user interface controls based on the context; and, in response to a gesture detected by a sensor for display on a display device, output a context-related user interface element configured with the user interface control, the context-related user interface element being displayed in a section of the display device connected to the sensor. Computer-readable storage medium according to claim 43, wherein the user interface controller is a first user interface controller, and wherein the instructions further cause the at least one processor of the computing device to: rank the plurality of user interface controllers based on the context, wherein the first user interface controller is ranked higher than a second user interface controller; and wherein, to select the first user interface controller, the instructions cause the at least one processor of the computing device to select the first user interface controller instead of the second user interface controller based on the ranking of the plurality of user interface controllers. Computer-readable storage medium according to claim 44, wherein the gesture is a first gesture and wherein the instructions further cause the at least one processor of the computing device: based on the classification of the plurality of user interface controls, to select a stack of user interface controls from the plurality of user interface controls, wherein the stack of user interface controls includes the second user interface control; and in response to a second gesture detected by the sensor, to output for display on the display device the contextual user interface element configured with the second user interface control, wherein the first gesture precedes the second gesture. A computer-readable storage medium according to one of claims 43-45, wherein the instructions further cause the at least one processor of the computing device to update the contextual user interface element based on the user input in response to receiving user input associated with the user interface control. Computer-readable storage medium according to claim 46, wherein the user input is a tactile input applied to the sensor or display device. Computer-readable storage medium according to claim 46, wherein the contextual user interface element is a slider element, and wherein, to update the contextual user interface element, the instructions cause the at least one processor of the computing device to change a slider value of the contextual user interface element based on the user input. Computer-readable storage medium according to claim 46, wherein the user interface control includes instructions for adjusting an output setting based on user input, wherein the output setting includes one of the following: a volume setting of the computing device or a display brightness setting of the computing device. Computer-readable storage medium according to claim 46, wherein the user interface control includes instructions for moving through content displayed by the display device based on user input. Computer-readable storage medium according to claim 46, wherein the user interface control includes instructions for selecting, based on user input, a symbol from a set of symbols displayed in the contextual user interface element, wherein each symbol in the set of symbols indicates an action that is contextually associated with content displayed by the display device. Computer-readable storage medium according to claim 46, wherein the user interface control includes instructions for capturing, based on user input, a section of content displayed by the display device. Computer-readable storage medium according to claim 46, wherein the user interface control includes instructions for output, in the context-related user interface element, one or more images that are contextually associated with content displayed by the display device. A computer-readable storage medium according to one of claims 43-53, wherein the user interface control includes instructions for performing an action that is contextually associated with a state specified in the context. Computer-readable storage medium according to one of claims 43-54, wherein the instructions further cause the at least one processor of the computing device to obtain the plurality of context signals, wherein the plurality of context signals includes content displayed by the display device, application data, sensor data, connection data and environment data. Computer-readable storage medium according to one of claims 43-55, wherein the context associated with the computing device comprises one or more of a telephone state, an application state and an environment state. A computer-readable storage medium according to one of claims 43-56, wherein, to determine the context, the instructions cause the at least one processor of the computing device to: identify a set of signals from the plurality of context signals acquired during a period of time; generate, based on the set of signals, one or more clusters containing one or more signals from the set of signals, wherein each of the one or more clusters corresponds to one or more user interface controls from the plurality of user interface controls;and to determine a cluster of one or more clusters, wherein the cluster specifies the context associated with the computing device, wherein, to select the user interface control, the instructions cause the at least one processor of the computing device to: select the user interface control from the plurality of user interface controls based on an assignment of the user interface control to the cluster.; Computer-readable storage medium according to claim 57, wherein the instructions further cause the at least one processor of the computing device to store user interface control configuration information, which includes at least the mapping of the user interface control to the cluster. Computer-readable storage medium according to claim 58, wherein the instructions further instruct the at least one processor of the computing device to update the user interface control configuration information using a machine learning model. Computer-readable storage medium according to claim 57, wherein, to determine the cluster, the instructions further cause the at least one processor of the computing device to determine that the cluster has a larger number of signals from the set of signals than other clusters of the one or more clusters, and wherein the instructions further cause the at least one processor of the computing device to rank the cluster higher than other clusters of the one or more clusters. Computer-readable storage medium according to one of claims 43-60, wherein the sensor includes a touch-sensitive button. Computer-readable storage medium according to one of claims 43-61, wherein the gesture includes at least one of the following: one or more taps applied to the sensor, a long press applied to the sensor, or a swipe gesture applied to the sensor. Computer-readable storage medium according to one of claims 43-62, wherein the context-related user interface element includes graphical data associated with the functionality of the user interface control. Computing system comprising means for carrying out one of the methods according to claims 1-21. Computer-readable storage medium, encoded with instructions that cause one or more processors of a computing system to perform one of the methods according to claims 1-21. Computer program product comprising at least one non-volatile, computer-readable medium containing one or more instructions which, when executed by at least one processor, cause the at least one processor to perform one of the methods according to claims 1-21.