Techniques for managing interactions with UI elements.

BR112025021801A2Pending Publication Date: 2026-09-08
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
BR112025021801
Authority / Receiving Office
BR · BR
Patent Type
Applications
Publication Date
2026-09-08

Smart Images

  • Figure 00000083_0000
    Figure 00000083_0000
  • Figure 00000084_0000
    Figure 00000084_0000
  • Figure 00000085_0000
    Figure 00000085_0000
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 78 “TECHNIQUES FOR MANAGING INTERACTIONS WITH UI ELEMENTS” CROSS-REFERENCE TO RELATED REQUESTS

[001] The present application claims priority to the Patent Application U.S. Non-Provisional Patent Application Serial No. 18 / 613,426, entitled “TECHNIQUES FOR MANAGING INTERACTIONS WITH UI ELEMENTS”, filed March 22, 2024, and claims priority to U.S. Provisional Patent Application Serial No. 63 / 464,536, entitled “TECHNIQUES FOR MANAGING INTERACTIONS WITH UI ELEMENTS”, filed May 5, 2023, which are incorporated herein by reference in their entirety for all purposes. BACKGROUND

[002] Electronic devices often include applications that provide information for display in an application's user interface and / or via an application widget. To interact with application information, the user typically needs to launch the application, wait for it to initialize, and navigate to a relevant section. Consequently, there is a need to improve application interaction techniques. SUMMARY

[003] Current techniques for managing interactions with applications are generally ineffective and / or inefficient. For example, some techniques require the user to navigate to an application's user interface. This invention provides more effective and / or efficient techniques for managing interactions with applications using an example of a widget on the lock screen of an electronic device. It should be recognized that other user interfaces can be used with the techniques described herein. For example, a home screen, a shared part of a user interface, and / or a notification center can use the techniques described herein. Furthermore, the techniques described herein optionally complement or replace other techniques for managing interactions with applications. Petition 870250092019, dated 08 / 10 / 2025, page 11 / 140 2 / 78

[004] Some techniques are described here for managing an interaction with a UI element in a UI managed by a system process. Although the UI element may correspond to a respective application, such techniques can allow the UI element to be (1) displayed by the system process with content provided by the respective application and (2) interact with a user without the need to display a user interface of the respective application. In some examples, an interaction with the UI element is provided to the system process and, through another system process, an action is identified and executed to update the UI element with different information provided by the respective application. Such updates can occur without starting and / or displaying a user interface of the respective application and, in some examples, without communicating with the respective application.Other techniques described here can allow different endpoints of an application, such as different application extensions (e.g., each with its own endpoint) or the application itself (e.g., with its own endpoint), to handle interactions with information provided by the application depending on the current state of an electronic device, the application, and / or the different extensions. For example, the same interaction can be handled by an application extension or by the application itself, depending on whether the application is running in the background.

[005] In some examples, a method executed in a computer system process is described. In some examples, the method comprises: while the computer system displays a user interface view managed by the system process: receiving a first input corresponding to a user interface element of the user interface view; in response to receiving the first input, executing an operation corresponding to the user interface element, the execution of the operation being performed by an application corresponding to the user interface element; after executing the Petition 870250092019, dated 08 / 10 / 2025, page 12 / 140 3 / 78 operation, receive, from the application, a communication corresponding to a change in the user interface view; and, in response to receiving the communication, update, based on the communication, the display of the user interface view.

[006] In some examples, a non-transient, computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system that runs a system process.In some examples, the program(s) include instructions to: while the computer system is displaying a user interface view managed by the system process: receive a first input corresponding to a user interface element of the user interface view; in response to receiving the first input, cause the execution of an operation corresponding to the user interface element, wherein the execution of the operation is performed by an application corresponding to the user interface element; after causing the execution of the operation, receive, from the application, a communication corresponding to a change in the user interface view; and, in response to receiving the communication, update, based on the communication, the display of the user interface view.

[007] In some examples, a computer-readable transient storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system running a system process. In some examples, the program(s) include instructions to: while the computer system is displaying a user interface view managed by the system process: receive a first input corresponding to a user interface element of the user interface view; in response to receiving the first input, cause the execution of an operation corresponding to the interface element of the Petition 870250092019, dated 08 / 10 / 2025, page 13 / 140 4 / 78 user, in which the operation is performed by an application corresponding to the user interface element; after causing the operation to be performed, receive a communication from the application corresponding to a change in the user interface view; and, in response to receiving the communication, update the display of the user interface view based on the communication.

[008] In some examples, a computer system that executes a system process is described. In some examples, the computer system comprises one or more processors and memory that stores one or more programs configured to be executed by one or more processors.In some examples, one or more programs include instructions to: while the computer system displays a user interface view managed by the system process: receive a first input corresponding to a user interface element of the user interface view; in response to receiving the first input, cause the execution of an operation corresponding to the user interface element, where the execution of the operation is performed by an application corresponding to the user interface element; after causing the execution of the operation, receive, from the application, a communication corresponding to a change in the user interface view; and, in response to receiving the communication, update, based on the communication, the display of the user interface view.

[009] In some examples, a computer system executing a system process is described. In some examples, the computer system comprises means for performing each of the following steps: while the computer system displays a user interface view managed by the system process: receiving a first input corresponding to a user interface element of the user interface view; in response to receiving the pri Petition 870250092019, dated 08 / 10 / 2025, page 14 / 140 5 / 78 first entry, cause the execution of an operation corresponding to the user interface element, where the execution of the operation is performed by an application corresponding to the user interface element; after causing the execution of the operation, receive, from the application, a communication corresponding to a change in the user interface view; and, in response to receiving the communication, update, based on the communication, the display of the user interface view.

[0010] In some examples, a computer program product is described. In some examples, the computer program product comprises one or more programs configured to run on one or more processors of a computer system that execute a system process.In some examples, the program(s) include instructions to: while the computer system is displaying a user interface view managed by the system process: receive a first input corresponding to a user interface element of the user interface view; in response to receiving the first input, cause the execution of an operation corresponding to the user interface element, wherein the execution of the operation is performed by an application corresponding to the user interface element; after causing the execution of the operation, receive, from the application, a communication corresponding to a change in the user interface view; and in response to receiving the communication, update, based on the communication, the display of the user interface view.

[0011] In some examples, a method executed in a computer system application is described. In some examples, the method comprises: while the computer system displays a user interface view managed by a system process; receiving, from the system process, a request to perform an operation corresponding to an interaction with a user interface element of the Petition 870250092019, dated 08 / 10 / 2025, page 15 / 140 6 / 78 User interface view, where the user interface element corresponds to the application; in response to receiving the request to perform the operation, perform the operation; and send a request to the system process to change the user interface view based on the request to perform the operation.

[0012] In some examples, a non-transient, computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system running an application. In some examples, the program(s) include instructions for: while the computer system displays a user interface view managed by a system process: receiving, from the system process, a request to perform an operation corresponding to an interaction with a user interface element of the user interface view, wherein the user interface element corresponds to the application; in response to receiving the request to perform the operation, performing the operation; and sending, to the system process, a request to change the user interface view based on the request to perform the operation.

[0013] In some examples, a computer-readable transient storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system running an application. In some examples, the program(s) include instructions for: while the computer system displays a user interface view managed by a system process: receiving, from the system process, a request to perform an operation corresponding to an interaction with a user interface element of the user interface view, where the user interface element corresponds to the application; in response to receiving the request to perform the operation, executing the Petition 870250092019, dated 08 / 10 / 2025, page 16 / 140 7 / 78 operation; and send a request to the system process to change the user interface view based on the request to perform the operation.

[0014] In some examples, a computer system that runs an application is described. In some examples, the computer system comprises one or more processors and memory that stores one or more programs configured to be executed by one or more processors. In some examples, the one or more programs include instructions for: while the computer system displays a user interface view managed by a system process: receiving, from the system process, a request to perform an operation corresponding to an interaction with a user interface element of the user interface view, where the user interface element corresponds to the application; in response to receiving the request to perform the operation, performing the operation; and sending, to the system process, a request to change the user interface view based on the request to perform the operation.

[0015] In some examples, a computer system that runs an application is described. In some examples, the computer system comprises means for performing each of the following steps: while the computer system displays a user interface view managed by a system process: receiving, from the system process, a request to perform an operation corresponding to an interaction with a user interface element of the user interface view, wherein the user interface element corresponds to the application; in response to receiving the request to perform the operation, performing the operation; and sending, to the system process, a request to change the user interface view based on the request to perform the operation.

[0016] In some examples, a computer program product is Petition 870250092019, dated 08 / 10 / 2025, page 17 / 140 8 / 78 described. In some examples, the computer program product comprises one or more programs configured to run on one or more processors of a computer system running an application. In some examples, the program(s) include instructions for: while the computer system is displaying a user interface view managed by a system process of the computer system: receiving, from the system process, a request to perform an operation corresponding to an interaction with a user interface element of the user interface view, wherein the user interface element corresponds to the application; in response to receiving the request to perform the operation, performing the operation; and sending, to the system process, a request to change the user interface view based on the request to perform the operation.

[0017] In some examples, a method executed in a process of a computer system is described. In some examples, the method comprises: receiving an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identifying an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to the determination that the application is in a first state, sending, to a first endpoint of the application, an instruction to execute the action; and according to the determination that the application is in a second state different from the first state, sending, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

[0018] In some examples, a non-transient, computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors. Petition 870250092019, dated 08 / 10 / 2025, page 18 / 140 9 / 78 of a computer system that executes a system process. In some examples, the program(s) include instructions to: receive an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identify an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to the determination that the application is in a first state, send, to a first endpoint of the application, an instruction to execute the action; and according to the determination that the application is in a second state different from the first state, send, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

[0019] In some examples, a computer-readable transient storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system that runs a system process.In some examples, the program(s) include instructions to: receive an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identify an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to the determination that the application is in a first state, send, to a first endpoint of the application, an instruction to execute the action; and according to the determination that the application is in a second state different from the first state, send, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

[0020] In some examples, a computer system that runs Petition 870250092019, dated 08 / 10 / 2025, page 19 / 140 10 / 78 a system process is described. In some examples, the computer system comprises one or more processors and memory that stores one or more programs configured to be executed by one or more processors.In some examples, one or more programs include instructions to: receive an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identify an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to the determination that the application is in a first state, send, to a first endpoint of the application, an instruction to execute the action; and according to the determination that the application is in a second state different from the first state, send, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

[0021] In some examples, a computer system executing a system process is described. In some examples, the computer system comprises means for performing each of the following steps: receiving an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identifying an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to the determination that the application is in a first state, sending, to a first endpoint of the application, an instruction to execute the action; and according to the determination that the application is in a second state different from the first state, sending, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

[0022] In some examples, a computer program product is Petition 870250092019, dated 08 / 10 / 2025, page 20 / 140 11 / 78 described. In some examples, the computer program product comprises one or more programs configured to be executed by one or more processors of a computer system that run a system process.In some examples, the program(s) include instructions to: receive an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identify an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to the determination that the application is in a first state, send, to a first endpoint of the application, an instruction to execute the action; and according to the determination that the application is in a second state different from the first state, send, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

[0023] In some examples, a method executed by a computer system is described.In some examples, the method comprises: in a case where a computer system application is in a first state, receiving, through a first endpoint of the application, from a first process of the computer system, an instruction to execute an action, where the action corresponds to a user interface element of a user interface view managed by a second process of the computer system; in response to the first endpoint that receives the instruction to execute the action, executing, through the first endpoint of the application, the action; in a case where the application is in a second state different from the first state, receiving, through a second endpoint of the application, from the first process of the system, the instruction to execute the action, where the second endpoint is different from the first endpoint; and in response to the second endpoint that receives the instruction to execute the action, executing, through the second endpoint of the application, the action. Petition 870250092019, dated 08 / 10 / 2025, p. 21 / 140 12 / 78

[0024] In some examples, a non-transient, computer-readable storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system.In some examples, the program(s) include instructions to: in a case where a computer system application is in a first state, receive, through a first endpoint of the application, from a first system process, an instruction to execute an action, where the action corresponds to a user interface element of a user interface view managed by a second system process; in response to the first endpoint that receives the instruction to execute the action, execute the action through the first application endpoint; in a case where the application is in a second state different from the first state, receive, through a second application endpoint, from the first system process, the instruction to execute the action, where the second endpoint is different from the first endpoint; and in response to the second endpoint that receives the instruction to execute the action, execute the action through the second application endpoint.

[0025] In some examples, a computer-readable transient storage medium is described that stores one or more programs configured to be executed by one or more processors of a computer system. In some examples, the program(s) include instructions to: in a case where a computer system application is in a first state, receive, by a first endpoint of the application, from a first system process, an instruction to execute an action, where the action corresponds to a user interface element of a user interface view managed by a second system process; in response to the first endpoint that receives the instruction to execute the action, execute, by the first endpoint of the application, the action; in a case where the application is in a second state different from the first state, receive, by a second endpoint of the application Petition 870250092019, dated 08 / 10 / 2025, page 22 / 140 13 / 78 captive, from the first process of the system, the instruction to execute the action, where the second endpoint is different from the first endpoint; and in response to the second endpoint that receives the instruction to execute the action, execute, through the second endpoint of the application, the action.

[0026] In some examples, a computer system is described that comprises one or more processors and memory that stores one or more programs configured to be executed by one or more processors. In some examples, the program(s) include instructions to: in a case where an application of a computer system is in a first state, receive, by a first endpoint of the application, from a first process of the computer system, an instruction to execute an action, where the action corresponds to a user interface element of a user interface view managed by a second process of the computer system; in response to the first endpoint that receives the instruction to execute the action, execute, by the first endpoint of the application, the action;In a case where the application is in a second state different from the first state, receive, through a second application endpoint, from the first system process, the instruction to execute the action, where the second endpoint is different from the first endpoint; and in response to the second endpoint receiving the instruction to execute the action, execute the action through the second application endpoint.

[0027] In some examples, a computer system is described. In some examples, the computer system comprises means for performing each of the following steps: in a case where an application of a computer system is in a first state, receiving, by a first endpoint of the application of a first process of the computer system, an instruction to perform an action, wherein the action corresponds to a user interface element of a user interface view managed by a second process of the system. Petition 870250092019, dated 08 / 10 / 2025, page 23 / 140 14 / 78 computer; in response to the first endpoint that receives the instruction to execute the action, execute the action through the application's first endpoint; in a case where the application is in a second state different from the first state, receive the instruction to execute the action through a second endpoint of the application from the first system process, where the second endpoint is different from the first endpoint; and in response to the second endpoint that receives the instruction to execute the action, execute the action through the application's second endpoint.

[0028] In some examples, a computer program product is described. In some examples, the computer program product comprises one or more programs configured to run on one or more processors of a computer system.In some examples, the program(s) include instructions to: in a case where a computer system application is in a first state, receive, by a first endpoint of the application of a first process of the computer system, an instruction to execute an action, where the action corresponds to a user interface element of a user interface view managed by a second process of the computer system; in response to the first endpoint that receives the instruction to execute the action, execute, by the first endpoint of the application, the action; in a case where the application is in a second state different from the first state, receive, by a second endpoint of the application of the first process of the system, the instruction to execute the action, where the second endpoint is different from the first endpoint; and in response to the second endpoint that receives the instruction to execute the action, execute, by the second endpoint of the application, the action.

[0029] In some examples, a non-transient, computer-readable storage medium is described that stores a plurality of programs configured to be executed by one or more processors. In some examples, the plurality of programs includes: a first Petition 870250092019, dated 08 / 10 / 2025, page 24 / 140 15 / 78 program corresponding to an application, wherein the first program is configured to: receive, through a system process different from the plurality of programs, user interaction data; and, in response to receiving the user interaction data, provide, through the system process, data for display in a user interface managed by the system process; and a second program corresponding to an extension of the application, wherein the second program is configured to run separately from the first program, and wherein the second program is configured to: receive, through the system process, user interaction data; and, in response to receiving the user interaction data, provide, through the system process, data for display in the user interface managed by the system process.

[0030] In some examples, a computer system is described that stores a plurality of programs configured to be executed by one or more processors of the computer system.In some examples, the plurality of programs includes: a first program corresponding to an application, wherein the first program is configured to: receive, through a system process different from the plurality of programs, user interaction data; and, in response to receiving the user interaction data, provide, through the system process, data for display in a user interface managed by the system process; and a second program corresponding to an extension of the application, wherein the second program is configured to run separately from the first program, and wherein the second program is configured to: receive, through the system process, user interaction data; and, in response to receiving the user interaction data, provide, through the system process, data for display in the user interface managed by the system process.

[0031] In some examples, a storage medium is described. Petition 870250092019, dated 08 / 10 / 2025, page 25 / 140 16 / 78 non-transient, computer-readable file that stores an application configured to run on one or more processors of a computer system. In some examples, the application includes instructions to: receive, through a system process other than the plurality of programs, user interaction data; in response to receiving the user interaction data, provide, through the system process, data for display in a user interface managed by the system process; and cause a second program to run, wherein the second program is configured to run separately from the application, and wherein the second program is configured to: receive, through the system process, user interaction data; and, in response to receiving the user interaction data, provide, through the system process, data for display in the user interface managed by the system process.

[0032] In some examples, a computer system that runs an application is described. In some examples, the application includes instructions for: receiving, through a system process other than the plurality of programs, user interaction data; in response to receiving user interaction data by a first application program, providing, through the system process, data for display in a user interface managed by the system process; and causing a second program to run, wherein the second program is configured to run separately from the first program, and wherein the second program is configured to: receive, through the system process, user interaction data; and, in response to receiving user interaction data by the second program, providing, through the system process, data for display in the user interface managed by the system process.

[0033] Executable instructions for performing these functions are optionally included in a readable non-transient storage medium. Petition 870250092019, dated 08 / 10 / 2025, page 26 / 140 17 / 78 by computer or other computer program product configured for execution by one or more processors. Executable instructions to perform these functions are optionally included in a transient storage medium readable by computer or other computer program product configured for execution by one or more processors. DESCRIPTION OF THE FIGURES

[0034] For a better understanding of the various modalities described, the Detailed Description below should be consulted, together with the following figures, in which similar reference numbers refer to the corresponding parts throughout the figures.

[0035] Figure 1 is a block diagram that illustrates a computer system according to some examples.

[0036] Figure 2 is a block diagram that illustrates a device with interconnected subsystems according to some examples.

[0037] Figure 3 is a block diagram that illustrates a device that includes an operating system and several applications according to some examples.

[0038] Figure 4 is a block diagram that illustrates different operations that occur in relation to different processes of a device to handle an interaction with a UI visualization according to some examples.

[0039] Figure 5 is a block diagram that illustrates different operations that occur in relation to different processes of a device to contextually manipulate an interaction with a UI visualization according to some examples.

[0040] Figure 6 is a flow diagram that illustrates a method for a system process to handle user input corresponding to UI elements according to some examples.

[0041] Figure 7 is a flow diagram that illustrates a method for Petition 870250092019, dated 08 / 10 / 2025, page 27 / 140 18 / 78 an application handles user input corresponding to user interface elements according to some examples.

[0042] Figure 8 is a flow diagram that illustrates a method for sending an instruction to different endpoints of an application according to some examples.

[0043] Figure 9 is a flow diagram that illustrates a method for manipulating instructions to perform operations according to some examples.

[0044] Figure 10 is a flow diagram that illustrates a method for manipulating user interaction data from the perspective of multiple programs according to some examples.

[0045] Figure 11 is a flow diagram that illustrates a method for manipulating instructions to perform operations according to some examples. DETAILED DESCRIPTION

[0046] The following description presents exemplary methods, parameters and the like. It should be recognized, however, that such description is not intended to be a limitation on the scope of the present invention, but rather a description of exemplary embodiments.

[0047] The methods and / or processes described herein may include one or more steps that depend on the fulfillment of one or more conditions. It should be understood that a method may occur over multiple iterations of the same process, with different steps of the method being satisfied in different iterations. For example, if a method requires the execution of a first step after determining that a set of one or more criteria is met and a second step after determining that the set of one or more criteria is not met, someone skilled in the art would appreciate it if the steps of the method were repeated until both conditions, in no particular order, were satisfied. Thus, a method described with steps that depend on the fulfillment of a Petition 870250092019, dated 08 / 10 / 2025, page 28 / 140 19 / 78 A condition can be rewritten as a method that repeats until each of the conditions described in the method is satisfied. This, however, is not required of system or computer-readable media claims where the system or computer-readable media claims include instructions for performing one or more steps that depend on the fulfillment of one or more conditions. Because the instructions for system or computer-readable media claims are stored in one or more processors and / or in one or more memory locations, the system or computer-readable media claims include logic that can determine whether one or more conditions have been satisfied without explicitly repeating the steps of a method until all the conditions to which the method steps are contingent have been satisfied.Someone versed in the art would also understand that, similar to a method with contingent steps, a computer-readable system or storage medium can repeat the steps of a method as many times as necessary to ensure that all contingent steps have been executed.

[0048] Although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by these terms. In some instances, these terms are used to distinguish one element from another. For example, a first subsystem may be called a second subsystem, and similarly, a subsystem device may be called a subsystem device, without departing from the scope of the various modalities described. In some instances, the first subsystem and the second subsystem are two distinct references to the same subsystem. In some modalities, the first subsystem and the second subsystem are both subsystems, but they are not the same subsystem or the same type of subsystem.

[0049] The terminology used in describing the various modalities described in this document is intended only to describe modalities. Petition 870250092019, dated 08 / 10 / 2025, page 29 / 140 20 / 78 specific and not intended to be limiting. As used in the description of the various embodiments described and in the appended claims, the singular forms a, an, an and the are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term and / or, as used in this document, refers to and encompasses any and all possible combinations of one or more of the associated listed items. It should further be understood that the terms includes, including, comprises and / or comprising, when used in this specification, specify the presence of the declared features, integers, steps, operations, elements and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof.

[0050] The term if is optionally interpreted as when, after, in response to the determination, in response to the detection, or according to a determination that, depending on the context. Similarly, the expression if it is determined or if [a stated condition or event] is detected is optionally interpreted as after the determination, in response to the determination, after the detection [of the stated condition or event], in response to the detection [of the stated condition or event], or according to a determination that [the stated condition or event], depending on the context.

[0051] Returning to FIG. 1, a block diagram of computing system 100 is illustrated. Computing system 100 is a non-limiting example of a computing system that can be used to perform the functionality described herein. It should be recognized that other computer architectures of a computing system can be used to perform the functionality described herein.

[0052] In the example illustrated, computing system 100 includes processor subsystem 110 communicating with (for example, with Petition 870250092019, dated 08 / 10 / 2025, page 30 / 140 21 / 78 or wirelessly) the memory 120 (e.g., system memory) and the I / O interface 130 via the interconnect 150 (e.g., a system bus, one or more memory locations, or other communication channel for connecting multiple components of the computing system 100). Furthermore, the I / O interface 130 communicates with (e.g., wired or wirelessly) the I / O device 140. In some examples, the I / O interface 130 is included within the I / O device 140, so that both form a single component. It should be recognized that there may be one or more I / O interfaces, with each I / O interface communicating with one or more I / O devices. In some examples, multiple instances of the processor subsystem 110 may communicate via the interconnect 150.

[0053] The computing system 100 can be any of several types of devices, including, but not limited to, a system-on-a-chip, a server system, a personal computer system (e.g., a smartphone, a smartwatch, a wearable device, a tablet, a laptop, and / or a desktop computer), a sensor, or similar. In some examples, the computing system 100 is included with or communicates with a physical component for the purpose of modifying it in response to an instruction. In some examples, the computing system 100 receives an instruction to modify a physical component and, in response to the instruction, causes the physical component to be modified. In some examples, the physical component is modified by means of an actuator, an electrical signal, and / or an algorithm.Examples of such physical components include a throttle control, a brake, a gearbox, a hinge, a motor, a pump, a cooling system, a spring, a suspension system, a steering control, a pump, a vacuum system, and / or a valve. In some examples, a sensor includes one or more hardware components that detect information about a physical environment near (e.g., around) the sensor. In some examples, a... Petition 870250092019, dated 08 / 10 / 2025, page 31 / 140 22 / 78 A sensor's hardware component includes a sensing component (e.g., an image sensor or temperature sensor), a transmitting component (e.g., a laser or radio transmitter), a receiving component (e.g., a laser or radio receiver), or any combination thereof.Examples of sensors include an angle sensor, a chemical sensor, a brake pressure sensor, a contact sensor, a non-contact sensor, an electrical sensor, a flow sensor, a force sensor, a gas sensor, a humidity sensor, an image sensor (e.g., a camera sensor, a radar sensor, and / or a LiDAR sensor), an inertial measurement unit, a leak sensor, a level sensor, a light detection and ranging system, a metal sensor, a motion sensor, a particle sensor, a photoelectric sensor, a position sensor (e.g., a global positioning system), a precipitation sensor, a pressure sensor, a proximity sensor, a radio detection and ranging system, a radiation sensor, a speed sensor (e.g., measures the speed of an object), a temperature sensor, a time-of-flight sensor, a torque sensor, and an ultrasonic sensor.In some examples, a sensor includes a combination of multiple sensors. In some examples, sensor data is captured by fusing data from one sensor with data from one or more other sensors. Although a single computing system is shown in FIG. 1, computing system 100 can also be implemented as two or more computing systems operating together.

[0054] In some instances, processor subsystem 110 includes one or more processors or processing units configured to execute program instructions to perform the functionality described herein. For example, processor subsystem 110 may run an operating system, a middleware system, one or more applications, or any combination thereof. Petition 870250092019, dated 08 / 10 / 2025, page 32 / 140 23 / 78

[0055] In some instances, the operating system manages the resources of the computing system 100. Examples of operating system types discussed here include batch operating systems (e.g., Multiple Virtual Storage (MVS)), time-sharing operating systems (e.g., Unix), distributed operating systems (e.g., Advanced Interactive eXecutive (AIX)), network operating systems (e.g., Microsoft Windows Server), and real-time operating systems (e.g., QNX). In some instances, the operating system includes various procedures, instruction sets, software components, and / or drivers to control and manage general system tasks (e.g., memory management, storage device control, power management, or similar) and to facilitate communication between various hardware and software components.In some instances, the operating system uses a priority-based scheduler that assigns a priority to different tasks that the processor subsystem 110 can execute. In these instances, the priority assigned to a task is used to identify the next task to be executed. In some instances, the priority-based scheduler identifies the next task to be executed when a previous task finishes executing. In some instances, the highest-priority task is executed until completion, unless another higher-priority task is ready.

[0056] In some examples, the middleware system provides one or more services and / or resources to applications (e.g., one or more applications running on processor subsystem 110) in addition to what the operating system offers (e.g., data management, application services, messaging, authentication, API management, or similar). In some examples, the middleware system is designed for a heterogeneous computer cluster to provide hardware abstraction, low-level device control, implementation of commonly used functionalities, inter-process message exchange, etc. Petition 870250092019, dated 08 / 10 / 2025, page 33 / 140 24 / 78 packet management or any combination thereof. Examples of middleware systems include Lightweight Communications and Marshalling (LCM), PX4, Robot Operating System (ROS), and ZeroMQ. In some examples, the middleware system represents processes and / or operations using a graph architecture, where processing occurs on nodes that can receive, send, and multiplex data messages from sensors, control messages, status messages, planning messages, actuator messages, and other messages. In such examples, the graph architecture might define an application (e.g., an application running on processor subsystem 110, as described above) so that different application operations are included with different nodes in the graph architecture.

[0057] In some examples, a message sent from a first node in a graph architecture to a second node in the graph architecture is performed using a publish-subscribe model, where the first node publishes data on a channel to which the second node can subscribe. In such examples, the first node might store data in memory (e.g., memory 120 or some local memory of processor subsystem 110) and notify the second node that the data has been stored in memory. In some examples, the first node notifies the second node that the data has been stored in memory by sending a pointer (e.g., a memory pointer, such as the identifier of a memory location) to the second node, so that the latter can access the data from where the first node stored it. In some examples, the first node would send the data directly to the second node, so that the latter would not need to access memory based on the data received from the first node.

[0058] Memory 120 may include a computer-readable medium (e.g., non-transient or transient computer-readable medium) usable for storing (e.g., configured to store, assigned) Petition 870250092019, dated 08 / 10 / 2025, page 34 / 140 25 / 78 to store and / or that stores) program instructions executable by the processor subsystem 110 to cause the computing system 100 to perform various operations described herein. For example, memory 120 may store program instructions to implement the functionality associated with methods 600, 700, 800 and 900 (FIGs. 6, 7, 8 and 9) described below.

[0059] Memory 120 can be implemented using different non-transient physical memory media, such as hard disk storage, floppy disk storage, removable disk storage, flash memory, random access memory (RAM-SRAM, EDO RAM, SDRAM, DDR SDRAM, RAMBUS RAM or similar), read-only memory (PROM, EEPROM or similar) or similar. Memory in the computing system 100 is not limited to primary storage, such as memory 120. The computing system 100 may also include other forms of storage, such as cache memory in the processor subsystem 110 and secondary storage in the I / O device 140 (e.g., a hard disk, storage array, etc.). In some instances, these other forms of storage may also store program instructions executable by the processor subsystem 110 to perform the operations described herein.In some examples, processor subsystem 110 (or each processor within processor subsystem 110) contains a cache or other form of onboard memory.

[0060] The I / O interface 130 can be any of several interface types configured to communicate with other devices. In some examples, the I / O interface 130 includes a bridge chip (e.g., Southbridge) from a front-side bus to one or more back-side buses. The I / O interface 130 can communicate with one or more I / O devices (e.g., I / O device 140) via one or more corresponding buses or other interfaces. Examples of I / O devices include storage devices (hard disk, uniPetition 870250092019, dated 08 / 10 / 2025, page 35 / 140 26 / 78 optical memory, removable flash drive, storage array, SAN or its associated controller), network interface devices (e.g., for a local or wide area network), sensor devices (e.g., camera, radar, LiDAR, ultrasonic sensor, GPS, inertial measuring device or similar) and audio or visual output devices (e.g., speaker, light, screen, projector or similar). In some examples, the computing system 100 communicates with a network via a network interface device (e.g., configured to communicate via Wi-Fi, Bluetooth, Ethernet or similar). In some examples, the computing system 100 is connected directly or by wire to the network.

[0061] FIG. 2 illustrates a block diagram of device 200 with interconnected subsystems, according to some examples. In the illustrated example, device 200 includes three different subsystems (i.e., the first subsystem 210, the second subsystem 220, and the third subsystem 230) communicating (e.g., wired or wirelessly) with each other, creating a network (e.g., a personal area network, a local area network, a wireless local area network, a metropolitan area network, a wide area network, a storage area network, a virtual private network, a corporate internal private network, a campus area network, a system area network, and / or a controller area network). An example of a possible computational architecture of a subsystem, such as the one included in FIG. 2, is described in FIG. 1 (i.e., computing system 100). Although three subsystems are shown in FIG. 2. Device 200 may include more or fewer subsystems.

[0062] In some examples, some subsystems are not connected to other subsystems (for example, the first subsystem 210 can be connected to the second subsystem 220 and the third subsystem 230, but the second subsystem 220 cannot be connected to the third subsystem 230). In some examples, some subsystems are connected by one or more wires, while others are connected wirelessly. In some Petition 870250092019, dated 08 / 10 / 2025, page 36 / 140 27 / 78 examples, messages are exchanged between the first subsystem 210, the second subsystem 220, and the third subsystem 230, so that when one subsystem sends a message, the other subsystems receive it (for example, via a wire and / or a bus). In some examples, one or more subsystems are wirelessly connected to one or more computing systems outside the device 200, such as a server system. In these examples, the subsystem can be configured to communicate wirelessly with one or more computing systems outside the device 200.

[0063] In some examples, device 200 includes an enclosure that fully or partially encloses subsystems 210 to 230. Examples of device 200 include a household appliance (e.g., a refrigerator or an air conditioning system), a robot (e.g., a robotic arm or a robotic vacuum cleaner), and a vehicle. In some examples, device 200 is configured to navigate (with or without user intervention) in a physical environment.

[0064] In some examples, one or more subsystems of the device 200 are used to control, manage, and / or receive data from one or more subsystems of device 200 and / or from one or more remote computing systems of device 200. For example, the first subsystem 210 and the second subsystem 220 could each be a camera that captures images, and the third subsystem 230 could use the captured images for decision-making. In some examples, at least part of device 200 functions as a distributed computing system. For example, a task could be divided into different parts, where a first part is executed by the first subsystem 210 and a second part is executed by the second subsystem 220.

[0065] As used herein, an installed application refers to a software application that has been downloaded onto a computer system (e.g., computing system 100 and / or device 200) and is ready to be launched (e.g., opened) on the device. In some examples, Petition 870250092019, dated 08 / 10 / 2025, page 37 / 140 28 / 78 A downloaded application becomes an installed application through an installer program that extracts parts of the program from a downloaded package and integrates the extracted parts into the computer system's operating system.

[0066] As used herein, the terms open application or running application refer to a software application with retained state information (e.g., as part of an internal system / global state and / or an internal application state). An open or running application is optionally any of the following application types: • an active application (or active / foreground processes) that is being displayed on the screen of the device on which the application is being used; • a background application (or background processes) that is not currently being displayed, but one or more processes of the application are being processed by one or more processors; and • a suspended or hibernated application, which is not running, but has state information stored in memory (volatile and non-volatile, respectively) that can be used to resume the application's execution.

[0067] As used herein, the term closed application refers to software applications with no retained state information (i.e., state information for closed applications is not stored in device memory). Consequently, closing an application includes stopping and / or removing application processes and removing application state information from device memory. Generally, opening a second application while in a first application does not close the first. When the second application is displayed and the first application is no longer displayed, the first application becomes a background application. Petition 870250092019, dated 08 / 10 / 2025, page 38 / 140 29 / 78

[0068] Attention now turns to techniques for managing interactions with UI elements corresponding to applications (e.g., user applications and / or non-system applications). These techniques are described in the context of a widget on the lock screen of an electronic device. It should be recognized that other user interface views can be used with the techniques described here. For example, a television's media selection interface and / or a vehicle's dashboard can use the techniques described here. Furthermore, the techniques described here optionally complement or replace other techniques for managing interactions with UI elements corresponding to applications.

[0069] FIG. 3 is a block diagram illustrating a device (e.g., device 300) that includes an operating system (e.g., operating system 310) and multiple applications (e.g., the first application 360 and the second application 380), according to some examples. In some examples, device 300 is a phone, a tablet, a laptop, a desktop computer, and / or a wearable device. It should be recognized that device 300 may include more or fewer components than illustrated in FIG. 3.Furthermore, some components may be (1) divided into multiple components (for example, aspects of the UI renderer 330 may be divided into multiple system components running on the operating system 310), (2) combined with other components (for example, the UI view manager 340 may be combined with the intent manager 350), (3) and / or (3) integrated within or outside the operating system 310, including within one of the multiple applications or in a device user space 300 (for example, the intent manager 350 may run outside the operating system 310 in one or each of the multiple applications or as a user process outside the operating system 310 and outside the multiple applications). Petition 870250092019, dated 08 / 10 / 2025, page 39 / 140 30 / 78

[0070] As mentioned above, device 300 includes operating system 310. In some instances, operating system 310 includes one or more aspects as an operating system described above with respect to FIG. 1. For example, operating system 310 may manage resources for device 300. In some instances, operating system 310 manages interactions with input and / or output devices of and / or communicating with device 300. For example, operating system 310 may detect inputs (e.g., user inputs such as a touch on a touch-sensitive surface, a click of a mouse button, a key press on a keyboard, and / or a finger movement on a touchpad) (e.g., an event corresponding to the input) performed in relation to an input device of device 300 and determine how to respond, including starting, activating, and / or notifying one or more applications and / or processes of device 300.

[0071] As illustrated, operating system 310 includes the UI host. 320, the UI renderer 330, the UI view manager 340, and the intent manager 350. In some instances, the UI host 320 is an operating system process 310 that manages UI views provided by the operating system 310.Examples of UI views provided by the operating system 310 include those that include content received by the device 300 and / or provided by one or more applications installed on the device 300, such as a lock screen (e.g., a UI displayed (1) while the device 300 is locked and causing exit and / or (2) before discarding the lock screen) (e.g., a UI with limited functionality compared to other UIs on the device 300 when the device 300 is unlocked), a home screen (e.g., a UI displayed while the device 300 is unlocked, with (1) representations of different applications that can be selected to display the UI of the different applications and / or (2) content provided by the applications in the form of widgets), and / or a notification center (e.g., Petition 870250092019, dated 08 / 10 / 2025, page 40 / 140 31 / 78 example, a UI including representations of events that occurred with respect to different applications on device 300, each representation including content received by device 300 and / or provided by an application on device 300).

[0072] In some examples, the UI host 320 communicates with the UI renderer 330 to render UI elements for display. In some examples, in response to communication with UI renderer 330, UI host 320 receives and causes the display of UI elements rendered by one or more output devices of device 300. In other examples, in response to communication with UI host 320, UI renderer 330 causes the display of UI elements rendered by one or more output devices of device 300. In any set of examples mentioned above, UI renderer 330 may combine different UI elements into a single UI that is prepared for display by device 330. In some examples, UI host 320 and / or UI renderer 330 communicate with UI view manager 340 to obtain at least some content provided by other applications of device 300.In such examples, the UI host 320 and / or the UI renderer 330 can create a UI area to include content from another application and can communicate with the UI view manager 340 to obtain the content for the UI area.

[0073] In some instances, the UI View Manager 340 communicates with applications (e.g., the first application 360, the first extension 370, the second application 380, and / or the second extension 390) to store files corresponding to the respective applications. In some instances, a file corresponding to a respective application may be stored by the UI View Manager 340 and used by it without starting, running, displaying a user interface, and / or communicating with the respective application. For example, a file may define a UI element in the form of a virtual button that, when selected, does Petition 870250092019, dated 08 / 10 / 2025, page 41 / 140 32 / 78 with which the UI element appears pressed and / or the color of a different UI element is changed. In this example, the execution of the file (including making the UI element appear pressed and / or the color of a different UI element is changed) can be performed without communication with the respective application, avoiding the need to run the respective application. In some examples, a file (1) corresponds to a widget of an application and / or (2) includes instructions to display and / or render a UI of the widget. In some examples, a file includes a data structure used to render at least part of a UI view corresponding to the widget.In some examples, a file includes instructions (e.g., code and / or definition of one or more operations to render a UI element via the UI host 320 and / or the UI renderer 330) and / or rendered UI views (e.g., rendered by an application and / or an application extension, optionally via the UI renderer 330) for UI elements corresponding to the file. Such UI elements may include information about what should be displayed in response to different events that occur (e.g., user interactions with the UI elements, content received by the device 300, and / or the passage of time). In some examples, a file includes an event timeline that defines what to display and / or when to display different UI elements. The event timeline may be part of the UI elements and / or separate from them.

[0074] In some instances, the 340 UI view manager manages UI views corresponding to widgets from different applications (e.g., and / or other types of UI elements). These UI views can be displayed and / or have their interactions managed by the 340 UI view manager (e.g., instead of requiring each widget's application to be running when the widget content is being displayed). For example, the 340 UI view manager might display a lock screen for the 300 device with vi Petition 870250092019, dated 08 / 10 / 2025, page 42 / 140 33 / 78 UI widget subliminals corresponding to 10 different applications, without all 10 applications needing to be running. In some examples, a lock screen for device 300 is a foreground process (e.g., an example of an active process, which also includes a background process, which is actively running on device 300 via UI host 320 (e.g., UI host 320 might be specific to the lock screen, so a different UI host might be specific to a different system UI (e.g., home screen and / or notification center)).In such examples, the applications (e.g., the first application 360, the first extension 370, the second application 380, and / or the second extension 390) do not need to be (e.g., and are not) active processes (sometimes called suspended, hibernated, or closed processes) when a UI view managed by the UI view manager 340 is being displayed, unless the UI view manager 340 needs information and / or updates from a respective application, as described further below.

[0075] As mentioned above, the 300 device includes multiple applications. Such applications may correspond to different features, organizations, and / or parties. A non-limiting list of application examples includes accessory applications (e.g., an application to control and / or view information from one or more accessories communicating with the 300 device), list applications (e.g., an application to view and modify lists of data), media applications (e.g., an application to control the output and / or view media information (e.g., audio (e.g., recordings, music, and / or podcasts), video, and / or images)) (e.g., stored by the 300 device and / or stored by a remote device communicating with the 300 device), and vehicle applications (e.g., an application to control and / or view vehicle information communicating with the 300 device).

[0076] In some examples, an application includes an extension (by Petition 870250092019, dated 08 / 10 / 2025, page 43 / 140 34 / 78 example, a part of the application and / or a process that runs separately from the application) to provide features not provided or also provided by the application. In some examples, an extension (1) corresponds to an application widget and / or (2) includes instructions to display and / or render a widget UI. In some examples, an extension generates data to be presented in the widget and / or in a UI view. It should be recognized that other types of extensions, which do not correspond to a widget, are within the scope of this invention and that extensions refer to a set of one or more features. As illustrated, the first application 360 includes the first extension 370, and the second application 380 includes the second extension 390. In some examples, the first application 360 and / or the second application 380 are installed on the device 300 and operate and / or run at least partially outside the operating system 310.

[0077] In some examples, the first 360 application and / or the second 380 application are installed via an online repository of installable applications (sometimes called an app store). In these examples, the installation of the first 360 application via the online repository may include the installation of the first 360 application's first 370 extension. In other examples, the installation of the first 360 application via the online repository does not include the installation of the first 370 extension; instead, the first 360 application downloads and / or installs the first 370 extension after the first 360 application is installed on the 300 device.

[0078] Using the configuration described above in relation to FIG. 3, techniques for processing interactions with UI views managed by the UI view manager 340 are described here. Such processing can be performed using the intent manager 350 and / or the UI view manager 340.

[0079] In some examples, using the 350 intent manager, an interaction with a UI view (for example, an element of Petition 870250092019, dated 08 / 10 / 2025, page 44 / 140 35 / 78 The UI (User Interface) of the UI view is processed using an intent provided by an application. For example, an application (e.g., the application itself or an application extension) may define one or more operations to occur as a result of (e.g., in response to) an event that has occurred (e.g., an input is detected, a threshold is reached, and / or a period of time has elapsed). The one or more operations may be any code provided by the application to be executed by a system process (e.g., the UI view handler 340 and / or the intent handler 350). Such code may cause (1) the system process to execute one or more instructions and / or (2) an application endpoint (e.g., a specific resource) and / or a different application to be notified.In some examples, one or more operations can be executed without (1) the need for communication with an application (for example, the application that provided one or more operations and / or another application identified in one or more operations) and / or (2) the execution of the application before, during, and / or after the execution of one or more operations. In some examples, one or more operations defined by a first application can be used by a second application different from the first. For example, a first application can define an operation to turn on a light associated with the first application, with the operation being callable and / or usable by a second application. In some examples, the intent provided by an application can be semantically defined so that the UI view manager 340 and / or the intent manager 350 interpret the intent and identify one or more operations to be executed on the device 300 to satisfy the intent.In such examples, the intent is defined in a syntax that the UI view manager 340 and / or the intent manager 350 is able to interpret. In some examples, an intent, such as the one described above, works in configurations where the display of a UI view is separated from the processing of operations related to the UI view. Petition 870250092019, dated 08 / 10 / 2025, page 45 / 140 36 / 78 For example, a first device might receive a file corresponding to a UI view (for example, as described above), and when interactions and / or events occur related to the UI view, the first device communicates with a second device that is managing the UI view to identify one or more operations to be performed. In this example, notifications of entries and / or events are communicated between the devices, and other operations described here occur as described, except that the results are transmitted from the second device to the first device. In some examples, when a second device is managing a UI view displayed on a first device, the first device might handle some interactions with the UI view without communicating with the second device.For example, some interactions may correspond to operations that the first device can resolve without needing to communicate with the second device (for example, the first device and / or the second device may disable certain operations (e.g., sending media on the first device) and / or enable certain operations (e.g., opening a web page in a browser on the first device).

[0080] In some examples, intent manager 350 stores a mapping of UI elements, UI input types (e.g., tap, select, swipe, tap and hold, rotate, double tap, and / or similar) and / or applications (e.g., first application 360, first extension 370, second application 380, and / or second extension 390) to identify (1) an operation defined by an application and / or (2) an application to communicate the occurrence of the detected input and / or the operation defined by the application. In some examples, UI view manager 340 sends a request for a result of the mapping to a detected input to receive the result. In other examples, UI view manager 340 sends a request to intent manager 350 to resolve the detected input without the intent manager having to resolve it. Petition 870250092019, dated 08 / 10 / 2025, page 46 / 140 37 / 78 tensions 350 need to resolve the detected input through the UI display manager 340. In some examples of the description above, a first virtual button can be mapped to a first operation of the first extension 370, so that when an input is detected in relation to the first virtual button, the first operation provided by the first extension 370 is executed and / or the first extension 370 is notified. In some examples of the description above, a second virtual button can be mapped to a second operation of the first extension 370 when a detected input is of a first type (for example, a touch input instead of a non-touch input), so that when an input of the first type is detected in relation to the second virtual button, the second operation provided by the first extension 370 is executed and / or the first extension 370 is notified. Such interaction results will be described further in relation to Figures 4 and 5.

[0081] FIG. 4 is a block diagram illustrating different operations that occur in relation to different processes (e.g., one or more processes described above in relation to FIG. 3) of a device (e.g., computing system 100, device 200, and / or device 300) to handle an interaction with a UI view, according to some examples. In the block diagrams of FIGS. 4-5, the vertical lines for the different processes represent operations that are performed in relation to the respective processes. For example, 404 is performed by UI renderer 330, 408 is sent by UI renderer 330 and received by UI view manager 340, and 422 includes one or more communications between extension 402 and UI view manager 340.

[0082] As illustrated, the device processes in FIG. 4 include the UI renderer 330, the UI view manager 340, the intent manager 350, and the extension 402 (e.g., the first application 360, the first extension 370, the second application 380, and / or the second Petition 870250092019, dated 08 / 10 / 2025, page 47 / 140 38 / 78 extension 390). As mentioned above, it should be recognized that one or more processes may be combined and / or divided into multiple processes and / or one or more processes may be running on a different device than the device.

[0083] In some examples, the operations illustrated in FIG. 4 occur after extension 402 has defined one or more operations to be performed by the UI view manager 340 and / or intent manager 350 in response to the detection of specific input types. Such definitions can be (1) provided to the UI view manager 340 and / or intent manager 350 and (2) used to determine how to respond to the input.

[0084] In 404, the UI renderer 330 (and / or the UI host 320, as described above) renders (e.g., generates and / or displays) a UI view. In some instances, the UI view includes a portion (e.g., one or more UI elements) corresponding to extension 402 (e.g., sometimes called a UI view and / or a UI element corresponding to extension 402). In some instances, the UI view is managed by a system process (e.g., the UI host 320 and / or the UI view manager 340, as described above) of the device, including the UI renderer 330. For example, the UI view might be a lock screen, a home screen, a notification center, and / or a portion thereof for the device, with UI elements corresponding to one or more different applications and / or an operating system (e.g., operating system 310).

[0085] In error 406, UI renderer 330 (and / or UI host 320, as described above) detects an input (e.g., user input, such as touch or non-touch input) related to the UI view. In error 408, in some instances, in response to input detection, UI renderer 330 (and / or UI host 320, as described above) notifies UI view manager 340 about the input. In other instances, Petition 870250092019, dated 08 / 10 / 2025, pp. 48 / 140 39 / 78 The UI renderer 330 (and / or the UI host 320, as described above) notifies the UI view manager 340 about the input in response to determining that the input is a valid input with respect to the UI view (e.g., intentional, targeted, and / or above a threshold (e.g., time, duration, and / or distance)). While FIG. Figure 4 illustrates the UI renderer 330 notifying the UI view manager 340. It should be recognized that in some instances, the UI view manager 340 is not notified by the UI renderer 330, and instead, the intent manager 350 is notified by the UI renderer 330.

[0086] In some examples, in 410, the view manager of UI 340 responds to notification 408. In these examples, the response may include a request to update the UI view display based on the input. In some examples, the response is sent without the need to (1) notify intent handler 350 and / or (2) communicate with extension 402. In these examples, the response is processed by UI view handler 340 using one or more operations defined by extension 402 and provided to UI view handler 340 as described above. In examples where the response is processed by UI view handler 340, 414-426 do not occur. In other examples, the response is sent by UI view handler 340 before, during (e.g., at least partially in parallel), and / or after notification of intent handler 350 and / or communication with extension 402 regarding the input.In some instances, on page 412, in response to receiving the request to update the UI view display, the UI renderer (and / or the UI host 320, as described above) renders (i.e., generates and / or displays) an updated UI view. In instances where the intent handler 350 and / or the extension 402 communicate with the UI view handler 340, the updated UI view may be updated again depending on the context. Petition 870250092019, dated 08 / 10 / 2025, page 49 / 140 40 / 78 of the result of an operation performed by intent handler 350 and / or extension 402 (for example, as shown in 426). In such examples, the updated UI view is performed optimistically, assuming that one or more operations matching the input would be successfully resolved (for example, before one or more operations were performed).

[0087] In 414, in response to receiving the notification in 408 (for example, and / or identifying an application corresponding to a UI element to which the input is directed), the UI view manager 340 notifies the intent manager 350 about the input. In some examples, the notification to the intent manager 350 includes identifying an application (for example, extension 402) corresponding to the input, identifying a UI element corresponding to the input, and / or identifying an input type for the input.

[0088] In 416, in response to the input notification, intent handler 350 determines an action (e.g., matching, including, and / or representing one or more operations defined by extension 402) matching the input. In some examples, the action is determined using a mapping as described above.

[0089] In 418, in response to the action determination (for example, and in response to the action requiring communication with extension 402), the 350 intent handler sends an action ID to extension 402. In some examples, the ID includes information in the notification provided to the 350 intent handler (for example, as described above) and / or information defined in the action. In some examples, the action ID is performed based on how the 350 intent handler communicates with extension 402 (for example, different methods are used for different actions and / or different endpoints are used for different actions, so a communication does not need to include an action ID). Petition 870250092019, dated 08 / 10 / 2025, page 50 / 140 41 / 78

[0090] In response to receiving the action ID, the 402 extension executes one or more operations corresponding to the action. In some instances, to execute one or more operations, the 402 extension starts execution and / or transitions to an active state (for example, as a background process and, in some instances, not as a foreground process) (for example, the 402 extension was not running before receiving the action ID, while the UI view was being rendered and / or while input was being detected). In some instances, such operations require the 402 extension to communicate with other extensions and / or other applications, on the device, including the 402 extension, and / or on a different device.

[0091] In 422, in response to the execution of at least one operation of one or more operations (and, in some examples, all operations of one or more operations), the 402 extension communicates regarding the action. In some examples, such communications include the 402 extension indicating the result of at least one operation of one or more operations (for example, whether the operation was successful or not). In some examples, such communications include a request to update a file and / or UI view stored by the UI view manager 340. In these examples, the request to update the file may be a first communication with the UI view manager 340 in response to the execution of at least one operation of one or more operations. In other examples, the request to update the file is a response to a request from the UI view manager 340 for a file update.For example, extension 402 might send a communication to UI view manager 340 indicating that extension 402 needs to update the file, and in response to receiving the communication, UI view manager 340 might send the file update request to extension 402. In some examples, a file update and / or a UI view update might be one. Petition 870250092019, dated 08 / 10 / 2025, page 51 / 140 42 / 78 first communication to the UI view manager 340 in response to the execution of at least one operation among one or more operations. In some examples, the update includes an update to the appearance of a UI element (e.g., a change in a set of instructions and / or an updated rendering of the UI element) and / or a UI view, an additional UI element and / or a UI view not previously provided, the removal of a previously provided UI element and / or UI view, and / or an update to a timeline corresponding to the file to identify when and / or what should be displayed.

[0092] At 424, the UI view manager sends a request to UI renderer 330 (and / or UI host 320) to render a new and / or different UI view. The new and / or different UI view may be based on the update received at 422 and / or on an event that occurs in relation to a currently displayed UI view that is not based on the update received at 422. In some instances, the new and / or different UI view is rendered in response to receiving the update at 422. In other instances, the new and / or different UI is rendered after receiving the update at 422 and in response to UI view manager 340 determining that an event has occurred that has changed the UI view. At 426, UI renderer 330 renders (e.g., generates and / or displays) an updated UI view according to the request at 424.

[0093] FIG. 5 is a block diagram that illustrates different operations that occur with respect to different processes (e.g., one or more processes described above with respect to FIG. 3) of a device (e.g., computing system 100, device 200 and / or device 300) to contextually handle an interaction with a UI visualization according to some examples.

[0094] As illustrated, the device processes in FIG. 5 include the Petition 870250092019, dated 08 / 10 / 2025, page 52 / 140 43 / 78 UI renderer 330, UI view manager 340, intent manager 350, application 502 (e.g., first application 360 and / or second application 380), and extension 504 (e.g., first extension 370 and / or second extension 390). In some examples, extension 504 corresponds to application 502, so extension 504 is an extension of application 502. As mentioned above, it should be recognized that one or more processes may be combined and / or split into multiple processes and / or one or more processes may be running on a different device than the device.

[0095] Similar to FIG. 4, in some instances, the operations illustrated in FIG. 5 occur after extension 402 has defined one or more operations to be performed by the UI view manager 340 and / or the intent manager 350 in response to the detection of specific input types. Also similar to FIG. 4, 506 (corresponding to 404), 508 (corresponding to 406), 510 (corresponding to 408), and 512 (corresponding to 414) in FIG. 5 may occur in the same or similar manner as described above in relation to FIG. 4. Furthermore, although FIG. 5 does not include operations corresponding to 410 and 412, such operations may occur in the same or similar manner in FIG. 5, as described above in relation to FIG. 4.

[0096] In 514, intent manager 350 (or, in some examples, UI view manager 340) determines an action corresponding to the input (e.g., in the same way or similarly to that described above in relation to 416 in FIG. 4) and also determines a state of application 502 and / or the device including application 502. In some examples, the state of application 502 and / or the device including application 502 affects, controls, and / or is used to determine whether an indication of the action is sent to application 502 (e.g., as indicated by 516 and may be executed in the same way or similarly to that described above in relation to 418) or to extension 504 (e.g., co Petition 870250092019, dated 08 / 10 / 2025, page 53 / 140 44 / 78 mo indicated by 522 and can be executed in the same way or similarly to that described above in relation to 418). In such examples, the action indication is not sent to the other component (for example, the action indication is not sent to extension 504 when sent to application 502 and the action indication is not sent to application 502 when sent to extension 504).

[0097] In some examples, determining the state includes determining whether application 502 is currently a foreground, background, suspended, hibernated, or closed process. In these examples, depending on the configuration of intent handler 350 (for example, with respect to application 502, how intent handler 350 is configured to communicate with application 502 when application 502 is a foreground or background process, but not a suspended, hibernated, or closed process), intent handler 502 sends the action ID to application 502 or to extension 504. In some examples, determining the state includes determining whether application 502 and / or extension 504 are specifically configured to handle the action.In such examples, depending on the configuration of intent handler 350 (for example, with respect to application 502 and / or extension 504, how intent handler 350 is configured to communicate with application 502 when executing the action), intent handler 502 sends the action ID to application 502 or extension 504.

[0098] In some examples, determining the state includes determining an amount of unused computing resources on the device, including application 502. In such examples, depending on a configuration of intent handler 350 (for example, with respect to application 502, how that intent handler 350 is configured to communicate with application 502 when the device is idle and / or includes at least a predefined amount of unused computing resources), intent handler 502 sends the action ID to Petition 870250092019, dated 08 / 10 / 2025, page 54 / 14045 / 78 the application 502 or to the extension 504. In some examples, determining the state includes determining a device battery quantity, including application 502 and / or whether the device is currently charging. In such examples, depending on a configuration of the intent handler 350 (for example, with respect to application 502, such as intent handler 350 being configured to communicate with application 502 when the device has at least a predefined amount of battery remaining and / or is currently charging), intent handler 502 sends the action identifier to application 502 or to the extension 504. It should be recognized that other state types can be used to determine whether the action identifier should be sent to application 502 or to the extension 504.In some examples, the action prompt can be sent to either application 502 or extension 504, depending on a configuration of the intent handler 350 (for example, with respect to application 502 and / or extension 504).

[0099] In some examples, the 350 intent manager configuration (as described above with respect to sending to application 502 and / or extension 504) is included in the information provided by extension 504 and / or application 502 when establishing a mapping of an input or input type to an action.

[00100] After sending the action indication, 518 (corresponding to 420), 524 (corresponding to 420), 520 (corresponding to 422), 526 (corresponding to 422), 528 (corresponding to 424 and based on the communication received by the UI display manager 340 (for example, in 526 or 520 or more recently if sent by application 502 and extension 504)) and 530 (corresponding to 426) of FIG. 5 may occur in the same way or in a similar way to that described above in relation to FIG. 4.

[00101] FIG. 6 is a flow diagram that illustrates a method (e.g., method 600) for a system process to handle inputs from Petition 870250092019, dated 08 / 10 / 2025, page 55 / 140 46 / 78 users correspond to user interface elements, according to some examples. Some operations in method 600 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[00102] In some examples, method 600 is executed in a system process (for example, an operating system process, such as a daemon that manages interactions between a computer system renderer and one or more applications) (for example, the user interface view manager 340 and / or the intent manager 350) of a computer system (for example, the computing system 100, the device 200 and / or the device 300). In some examples, the computer system is a phone, a tablet, a laptop, a desktop computer and / or a wearable device.

[00103] In 602, while the computer system displays a user interface view (e.g., a widget and / or one or more graphical user interface elements) managed by (e.g., directed by, associated with and / or corresponding to) the system process, the system process receives (e.g., while the computer system displays a user interface view) a first input (e.g., a touch input or a non-touch input, such as a swipe input, a look input, a mouse click, an air gesture, and / or a hold-and-press input) (e.g., in 406 or in 508) corresponding to (e.g., directed to, in a location of and / or relating to) a user interface element (e.g., an icon, a virtual button, a virtual slider, and / or a selector) (e.g., managed by the system process, as described above) from the user interface view.In some examples, the first input is received from a renderer (for example, UI renderer 330) on the computer system. In some examples, the first input is received from a configured host (for example, UI host 320). Petition 870250092019, dated 08 / 10 / 2025, page 56 / 140 47 / 78 to control what is displayed in a user interface managed by an operating system (e.g., operating system 310) of the computer system. In some examples, the user interface view is displayed by a renderer (e.g., UI renderer 330) of the computer system, with the system process instructing the renderer on what to display. In some examples, the system process causes the user interface view to be displayed. In some examples, before the computer system displays the user interface view, it is stored by the system process to be displayed according to the determination that the display criteria are met. In some examples, a process other than the system process (e.g., a different system process and / or a process that is not a system process but a user process (e.g.,an application process) causes the user interface view to be displayed. In some examples, the user interface view is displayed (1) on a computer system lock screen (for example, while the computer system is in a locked state, with a reduced number of accessible resources than when in an unlocked state), (2) on a computer system start screen (for example, while the computer system is displaying one or more user interface elements that, when selected, cause a corresponding application's user interface to be displayed), (3) on a respective user interface of a respective application running on the computer system, the respective application being different from an application corresponding to the user interface view, and / or (4) on a computer system notification user interface (for example,while the computer system is displaying one or more notifications received by the computer system from one or more processes (for example, a process running on the computer system and / or a process running on a computer system, Petition 870250092019, dated 08 / 10 / 2025, page 57 / 140 48 / 78 different from the computer system)).

[00104] In 604, while the computer system is displaying the user interface view managed by the system process and in response to receiving the first input, the system process causes the execution of an operation (e.g., an action and / or a set of instructions corresponding to an action) (e.g., in 420, in 518, or in 524) corresponding to the user interface element, wherein the execution of the operation is performed by an application (e.g., in the foreground while simultaneously displaying the user interface view or in the background) (e.g., a respective application with one or more graphical user interface elements displayable by the computer system (e.g., installed via an application stored in the computer system) or an extension of the respective application (e.g., a part of the respective application that is configured to run separately from the respective application, but,In some examples, it is installed with the respective application (e.g., through a single installation request) (e.g., first application 360, first extension 370, second application 380, second extension 390, extension 402, application 502, or extension 504) corresponding to the user interface element. In some examples, causing the operation to execute includes identifying the application and sending, to a second system process (e.g., UI view manager 340 and / or intent manager 350) different from the system process, an instruction to identify an operation corresponding to the user interface element (and, in some examples, corresponding to an input type of the first input). In some examples, causing the operation to execute includes identifying the application and, in response to the operation identification, identifying it by querying operations corresponding to the user interface element (and, in some examples,corresponding to a type of input from the first input). In some examples, the operation is, Petition 870250092019, dated 08 / 10 / 2025, page 58 / 140 49 / 78 provided by the application. In some examples, an operation ID with a user interface element ID is provided to the system process by the application before the computer system displays the user interface view.

[00105] In 606, while the computer system displays the user interface view managed by the system process and after causing the operation to execute, the system process receives (e.g., while the computer system displays a user interface view) from the application a communication (e.g., a message, a request, and / or an instruction) corresponding to a change (e.g., a visual change and / or a change in the appearance of the user interface view) (e.g., in 422, in 520, or in 526) in the user interface view. In some examples, the communication includes an update of the user interface view. In some examples, the communication includes a new user interface view to replace the user interface view. In some examples, after sending the communication, the application stops execution.

[00106] In 608, while the computer system displays the user interface view managed by the system process and in response to receiving the communication, the system process updates, based on the communication, the display of the user interface view (for example, in 424 or in 528). In some examples, the update of the user interface view includes a request to display an updated user interface view to the renderer and / or host described above.

[00107] In some examples, the operation includes modifying the state of a second computer system (for example, an accessory, an output device, a screen generation component, and / or a vehicle) different from the computer system or modifying a variable. Petition 870250092019, dated 08 / 10 / 2025, page 59 / 140 50 / 78 application location. In some examples, the second computer system has a corresponding application that allows the state of the second computer system to be modified by the computer system. In some examples, the computer system is in communication (e.g., via a wired and / or wireless connection) with the second computer system. In some examples, the second computer system is remote and / or separate from the computer system.

[00108] In some examples, the user interface element includes a toggle (for example, a control that graphically represents (1) different possible states (for example, two or more) of the toggle and (2) a current state of the toggle, where the control, in response to input detection by the computer system, visually changes to graphically represent a new state for the current state of the toggle). In some examples, the toggle is a binary control configured to be used to toggle between two different states.

[00109] In some examples, while the computer system displays the user interface view managed by the system process, the system process receives a second input corresponding to a second user interface element of the user interface view. In some examples, the second user interface element is different from the user interface element. In some examples, while the computer system displays the user interface view managed by the system process and in response to receiving the second input, the system process causes the execution of a second operation corresponding to the second user interface element. In some examples, the execution of the second operation is performed by the application. In some examples, the second operation is different from the operation.In some examples, while the computer system displays the user interface view managed by the system process and in response to receiving the second input, the system process... Petition 870250092019, dated 08 / 10 / 2025, page 60 / 140 51 / 78 updates (e.g., in the system process) (e.g., based on receiving the second input) (e.g., according to an anticipated result of the execution of the second operation) the display of the user interface view (e.g., of the second user interface element and / or the user interface view) (e.g., at least partially in parallel with the execution of the second operation) (e.g., in 410 and 412). In some examples, the second user interface element is updated before the completion of the second operation, before communication is received from the application based on the second input, and / or before a state indicated by the updated display of the user interface view is established. In some examples, the user interface view is updated before the execution of the second operation.In some examples, an instruction to update the user interface view is sent before sending an instruction to perform the second operation. In some examples, after updating the user interface view, the computer system updates (e.g., in the system process) the user interface view back to a previous state (e.g., directly and / or immediately before) the update of the user interface view according to a determination that the execution of the second operation failed.

[00110] In some examples, the application is in an inactive state (e.g., not running in the background and / or foreground, not running and / or suspended) before (e.g., immediately before and / or within a certain period of time before (e.g., 10 seconds to 10 minutes)) causing the operation to execute. In some examples, causing the operation to execute includes causing the application to transition to an active state (e.g., starting execution, beginning to run in the background and / or foreground, and / or transitioning to a non-suspended state). Petition 870250092019, dated 08 / 10 / 2025, page 61 / 140 52 / 78

[00111] In some examples, causing the operation to be executed includes causing the application to be started (e.g., run and / or executed) (e.g., transitioning from an inactive to an active state) in the background on the computer system. In some examples, starting in the background does not include displaying an application user interface.

[00112] In some examples, the change in the user interface view includes a change in a timeline of how the user interface view display updates in response to the occurrence of one or more events.

[00113] In some instances, the change in the user interface view includes a rendered portion of the user interface view. In some instances, the rendered portion is used to update the display of the user interface view. In some instances, updating the display of the user interface view includes displaying the rendered portion.

[00114] In some examples, while the computer system displays a second user interface view simultaneously with the user interface view, the system process receives a third input corresponding to the second user interface view. In some examples, the second user interface view is managed by the system process. In some examples, the second user interface view is different from the user interface view. In some examples, while the computer system displays the second user interface view simultaneously with the user interface view and in response to receiving the third input, the system process causes the execution of a third operation corresponding to the second user interface view.In some examples, the execution of the third operation is performed by a second application (for example, first application 360, first extension 370, second application 380, second extension 390, extension 402, applies). Petition 870250092019, dated 08 / 10 / 2025, page 62 / 140 53 / 78 tivo 502 or extension 504) different from the application. In some examples, the second application corresponds to the second user interface view. In some examples, while the computer system displays the second user interface view simultaneously with the user interface view and after causing the execution of the third operation, the system process receives, from the second application, a second communication corresponding to a change in the second user interface view. In some examples, while the computer system displays the second user interface view simultaneously with the user interface view and in response to receiving the second communication, the system process updates, based on the second communication, the display of the second user interface view.

[00115] In some examples, while the computer system displays the user interface view managed by the system process, the system process receives a fourth input corresponding to a third user interface element of the user interface view. In some examples, the third user interface element is different from the user interface element. In some examples, while the computer system displays the user interface view managed by the system process, and in response to receiving the fourth input, the system process causes the execution of a fourth operation corresponding to the third user interface element. In some examples, the execution of the fourth operation is performed by the application.In some examples, while the computer system displays the user interface view managed by the system process, and after causing the execution of the fourth operation, the system process receives a third communication from the application corresponding to a second change in the user interface view. In some examples, the second change in the user interface view is different. Petition 870250092019, dated 08 / 10 / 2025, page 63 / 140 54 / 78 gives the change in the user interface view. In some examples, while the computer system displays the user interface view managed by the system process, and in response to receiving the third communication, the system process updates, based on the third communication, the display of the user interface view. In some examples, the update, based on the third communication, of the user interface view display includes updating the third user interface element.

[00116] Note that the details of the processes described above in relation to method 600 (e.g., FIG. 6) are also analogously applicable to other methods described herein. For example, method 700 optionally includes one or more of the features of the various methods described above with reference to method 600. For example, the system process of method 600 may be the system process of method 700. For the sake of brevity, these details will not be repeated below.

[00117] FIG. 7 is a flow diagram that illustrates a method (e.g., method 700) for an application to handle user inputs corresponding to user interface elements, according to some examples. Some operations in method 700 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[00118] In some examples, method 700 is executed in an application (for example, a respective application with one or more graphical user interface elements displayable by a computer system (for example, installed via an application stored on the computer system) or an extension of the respective application (for example, a part of the respective application that is configured to run separately from the respective application, but in some examples, that is installed with the respective application (for example, via a single installation request))) (for example, first 360 application, first ex Petition 870250092019, dated 08 / 10 / 2025, page 64 / 140 55 / 78 voltage 370, second application 380, second extension 390, extension 402, application 502 or extension 504) of a computer system (for example, computing system 100, device 200 and / or device 300). In some examples, the computer system is a phone, a tablet, a laptop, a desktop computer or a wearable device.

[00119] In 702, while the computer system is displaying a user interface view (e.g., a widget and / or one or more graphical user interface elements) managed by a system process (e.g., an operating system process, such as a daemon that manages interactions between a computer system renderer and one or more applications) (e.g., UI view manager 340 and / or intent manager 350) of the computer system, the application receives, from the system process, a request to perform an operation (e.g., an action and / or a set of instructions corresponding to an action) (e.g., in 418, in 516, or in 522) corresponding to an interaction (e.g., a touch input or a non-touch input, such as a swipe input, a look input, a mouse click, an air gesture, and / or a hold-and-press input) with a user interface element (e.g.,a displayed element and / or a region of the user interface view) (for example, managed by the system process, as described above) of the user interface view, where the user interface element corresponds to (e.g., is from, relates to, is part of, and / or is configured by) the application. In some examples, a user interface element ID and / or a rendered version of the user interface element is sent from the application to the system process before the user interface view is displayed. In some examples, interactions with the user interface element are managed by the application. In some examples, the user interface view is displayed by a renderer (e.g., renders, Petition 870250092019, dated 08 / 10 / 2025, page 65 / 140 56 / 78 UI pain 330) of the computer system, with the system process instructing the renderer on what to display. In some examples, the system process causes the user interface view to be displayed. In some examples, before the computer system displays the user interface view, it is stored by the system process to be displayed according to the determination that the display criteria have been met. In some examples, a process other than the system process (e.g., a different system process and / or a process that is not a system process but a user process (e.g., the application)) causes the user interface view to be displayed. In some examples, the user interface view is displayed (1) on a computer system lock screen (e.g., while the computer system is in a locked state,with a reduced number of accessible resources than when in an unlocked state), (2) on a computer system home screen (for example, while the computer system is displaying one or more user interface elements that, when selected, cause a corresponding application's user interface to be displayed), (3) on a respective user interface of a respective application running on the computer system, the respective application other than the application, and / or (4) on a computer system notification user interface (for example, while the computer system is displaying one or more notifications received by the computer system from one or more processes (for example, a process running on the computer system and / or a process running on a computer system other than the computer system)).

[00120] In 704, while the computer system is displaying the user interface view managed by the computer system process and in response to receiving the request to perform the operation, the application executes the operation (for example, in 420 or in Petition 870250092019, dated 08 / 10 / 2025, page 66 / 140 57 / 78 518).

[00121] In 706, while the computer system displays the user interface view managed by the system process, the application sends (e.g., in response to receiving the request (e.g., before executing the operation) and / or in response to executing the operation) to the system process, a request (e.g., in 422, 520, or 526) to change (e.g., a visual change and / or a change in the appearance of the user interface view) the user interface view based on the request to execute the operation (e.g., receiving the request to execute the operation and / or executing the operation results in the user interface view changing). In some examples, the request to change includes an update of the user interface view.In some examples, the request to change the user interface view includes a new user interface view to replace the existing one. In some examples, after the request to change the user interface view is sent, the application stops running (for example, in the background).

[00122] In some examples, the operation includes modifying the state of a second computer system (e.g., an accessory, an output device, a screen generation component, and / or a vehicle) different from the computer system, or modifying a local application variable. In some examples, the second computer system has a corresponding application that allows the state of the second computer system to be modified by the computer system. In some examples, the computer system is in communication (e.g., via a wired and / or wireless connection) with the second computer system. In some examples, the second computer system is remote and / or separate from the computer system.

[00123] In some examples, in response to receiving the request Petition 870250092019, dated 08 / 10 / 2025, page 67 / 140 58 / 78 to execute the operation and before executing the operation, the application transitions (for example, in the application) from an inactive state (as described above with respect to method 600) to an active state (as described above with respect to method 600).

[00124] In some instances, the transition from the inactive state to the active state includes starting the application in the background on the computer system. In some instances, starting the application in the background does not include displaying an application user interface. In some instances, the application performs the operation in the background on the computer system and / or returns to the inactive state without starting in the foreground on the computer system.

[00125] In some examples, the request to change the user interface view includes a request to change a timeline of how to update the user interface view display in response to the occurrence of one or more events.

[00126] In some instances, the request to change the user interface view includes a rendered portion of the user interface view. In some instances, the rendered portion is used to update the user interface view display. In some instances, updating the user interface view display includes displaying the rendered portion.

[00127] In some examples, the display of the user interface element changes based on interaction with the user interface element during and separately from the execution of the operation. In some examples, the user interface element is updated before the operation is completed, before the request to change the user interface view is sent based on the request to perform the operation, and / or before a state indicated by the changes is established by the application. In some examples, the user interface element is changed before the operation is executed. In some examples, a statement to Petition 870250092019, dated 08 / 10 / 2025, page 68 / 140 59 / 78 The request to change the user interface element display is sent before the request to execute the operation is sent. In some examples, after changing the user interface element display, the computer system updates (e.g., in the system process) the user interface view display back to a previous state (e.g., directly and / or immediately before) the user interface view display update, according to the determination that the operation execution failed.

[00128] Note that the details of the processes described above with respect to method 700 (e.g., FIG. 7) are also analogously applicable to other methods described herein. For example, method 600 optionally includes one or more of the features of the various methods described above with reference to method 700. For example, the application of method 700 may be the application of method 700. For the sake of brevity, these details will not be repeated below.

[00129] FIG. 8 is a flow diagram that illustrates a method (e.g., method 800) for sending an instruction to different endpoints of an application, according to some examples. Some operations in method 800 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[00130] In some examples, method 800 is executed in a system process (for example, an operating system process, such as a process that maintains a list of user interface elements (for example, corresponding to different applications) and their corresponding actions resulting from input corresponding to the respective user interface elements) (for example, UI view manager 340 and / or intent manager 350) of a computer system (for example, computing system 100, device 200 and / or device 300). In some examples, the computer system is a telephone, a Petition 870250092019, dated 08 / 10 / 2025, page 69 / 140 60 / 78 tablet, a laptop, a desktop computer, or a wearable device.

[00131] In 802, the system process receives an indication of (e.g., data indicating and / or an input directed to) a user interface element (e.g., as described above in relation to 600) (e.g., in 408, in 414, in 510, or in 512) corresponding to an application (e.g., as described above in relation to 600) (e.g., first application 360, first extension 370, second application 380, second extension 390, extension 402, application 502, or extension 504). In some examples, the indication is received by the system process while a user interface view corresponding to the computer system is displayed (e.g., as described above in relation to 600). In some examples, the indication is received while the application is not running. In some examples, the indication is received while the application is running in the background (and, in some examples, is not displaying an application user interface).In some examples, the indication corresponds to an input (for example, a touch input or a non-touch input, such as a swipe input, a look input, a mouse click, an air gesture, and / or a hold-and-press input) received that corresponds to the user interface element. In some examples, the indication of the user interface element includes an indication of the application. In some examples, the indication of the user interface element includes an indication of a type of input received relative to the user interface element. In some examples, the indication is received by a second system process (for example, the UI view manager 340 and / or the intent manager 350) different from the system process, such as a daemon that manages interactions between a computer system renderer and one or more applications.In some examples, the indication is not received from a renderer (for example, the UI 330 renderer) and / or from a host (for example, configured to control the...). Petition 870250092019, dated 08 / 10 / 2025, pp. 70 / 140 61 / 78 which is displayed in a user interface managed by a computer system operating system) (for example, the 320 UI host) of the computer system.

[00132] In 804, in response to receiving the indication of the user interface element corresponding to the application, the system process identifies an action (for example, an operation, a method, a function, and / or a set of one or more instructions) (for example, in 416 or in 514) corresponding to the user interface element. In some examples, a mapping of the user interface element and the action is received from the application before receiving the indication of the user interface element corresponding to the application.

[00133] In 806, in response to the identification of the action corresponding to the user interface element and according to a determination that the application is in a first state (for example, the application is currently running in the background and / or the application is currently running and / or not performing a specific operation), the system process sends (for example, directly and / or indirectly through an intermediate computer system, device and / or system, such as a server and / or a set of one or more computer systems), to a first endpoint of the application (for example, an endpoint corresponding to an application resource that requires the application to run), an instruction (for example, a request) (for example, in 516) to perform the action.

[00134] In 808, in response to the identification of the action corresponding to the user interface element and according to the determination that the application is in a second state (for example, the application is not running in the background and / or the application is running and / or is not performing a specific operation) different from the first state, the system process sends, to a second endpoint (for example, an extension) of the application different from the first endpoint of Petition 870250092019, dated 08 / 10 / 2025, page 71 / 140 62 / 78 application, the instruction (e.g., in 522) to execute the action. In some examples, the determination of whether the application is in the first state or the second state is performed without communication with the application. In some examples, depending on whether the application is in the second state, the computer system forgoes sending (e.g., directly and / or indirectly) the instruction to execute the action to the second endpoint. In some examples, depending on whether the application is in the first state, the computer system forgoes sending (e.g., directly and / or indirectly) the instruction to execute the action to the first endpoint. In some examples, the first endpoint is an extension of the application, while the second endpoint is not an extension of the application, or vice versa. In some examples, the first endpoint is a full version of the application, while the second endpoint is not the full version of the application, or vice versa.In some examples, the first endpoint is a first version of the application, while the second endpoint is a second version of the application that differs from the first version. In some examples, the first endpoint is a more streamlined version of the application than the version corresponding to the second endpoint.

[00135] In some instances, the user interface element is included within a user interface view (e.g., a widget) of the application. In some instances, the user interface view includes a plurality of user interface elements. In some instances, one or more user interface elements among the plurality of user interface elements cause different actions to be performed with the same or different types of inputs as the user interface element.

[00136] In some examples, the first endpoint corresponds to the application (for example, the first endpoint corresponds to the first application process that starts the application execution (for example, the application Petition 870250092019, dated 08 / 10 / 2025, p. 72 / 140 63 / 78 starts running in the computer system background) in response to receiving a communication through the first endpoint) (e.g., first application 360, second application 380, or application 502). In some examples, the second endpoint corresponds to an extension (e.g., first extension 370, second extension 390, extension 402, or extension 504) of the application (e.g., the second endpoint corresponds to a first process of the extension that starts executing the extension (e.g., the extension starts running in the computer system background) in response to receiving a communication through the second endpoint). In some examples, the extension runs (e.g., is configured to run) separately from the application (e.g., the extension runs in the foreground and / or background of the computer system without the application running in the foreground and / or background of the computer system).

[00137] In some examples, the first state corresponds to an active state (for example, that the application is currently running (for example, when sending the operation to execute the operation) in the background and / or foreground of the computer system).

[00138] In some examples, the second state corresponds to an inactive state (for example, that the application is not currently running (for example, when sending the operation to execute the operation) in the background and / or foreground of the computer system).

[00139] In some examples, the system process receives a second indication from a second user interface element corresponding to the application. In some examples, the second indication is different from the indication. In some examples, the second user interface element is different from the user interface element. In some examples, in response to receiving the second indication from the second user interface element corresponding to the application, the process Petition 870250092019, dated 08 / 10 / 2025, page 73 / 140 64 / 78 of the system identifies a second action corresponding to the second user interface element. In some examples, the second action is different from the first action. In some examples, in response to identifying the second action corresponding to the second user interface element, the system process sends an instruction to the first application endpoint to execute the second action. In some examples, the instruction to execute the second action is sent to the first endpoint according to the determination that the second action and / or the second user interface element is of a first type. In some examples, the instruction to execute the action is selectively sent to the first or second endpoint, according to the determination that the action and / or the user interface element is of a second type different from the first. In some examples, the second action is specific to the first endpoint and not the second endpoint.In some examples, the second action is specific to the application and not to the extension. In some examples, the second type is always sent to the first endpoint and never to the second endpoint.

[00140] In some examples, the system process receives a third indication of a third user interface element corresponding to the application. In some examples, the third indication is different from the indication. In some examples, the third user interface element is different from the user interface element. In some examples, in response to receiving the third indication of the third user interface element corresponding to the application, the system process identifies a third action corresponding to the third user interface element. In some examples, the third action is different from the action. In some examples, in response to identifying the third action corresponding to the third user interface element, the system process sends an instruction to the second application endpoint to execute the third action.In some examples, the instruction to execute the third action is sent to the second endpoint according to the determination of. Petition 870250092019, dated 08 / 10 / 2025, page 74 / 140 65 / 78 that the third action and / or the third user interface element is a third type different from the first and second types. In some examples, the third action is specific to the second endpoint and not the first endpoint. In some examples, the third action is specific to the extension and not the application. In some examples, the third type is always sent to the second endpoint and never to the first endpoint.

[00141] In some examples, the system process receives a fourth indication of a fourth user interface element corresponding to a second application different from the application. In some examples, the fourth indication is different from the indication. In some examples, the fourth user interface element is different from the user interface element. In some examples, in response to receiving the fourth indication of the fourth user interface element corresponding to the second application, the system process identifies a fourth action corresponding to the fourth user interface element. In some examples, the fourth action is different from the action. In some examples, in response to identifying the fourth action corresponding to the fourth user interface element, the system process sends an instruction to a second computer system different from the computer system to execute the fourth action.In some examples, the instruction to execute the fourth action is sent to the second computer system based on the determination that the fourth action and / or the fourth user interface element is a different type from the first. In some examples, the fourth action is specific to the second computer system. In some examples, the fourth type is always sent to the second computer system and not to a respective endpoint of the computer system. In some examples, the system process receives a fifth indication of a fifth user interface element corresponding to a different application than the first. In some examples, the fifth indication is... Petition 870250092019, dated 08 / 10 / 2025, page 75 / 140 66 / 78 different from the indication and the fourth indication. In some examples, the fifth user interface element is different from the user interface element and the fourth user interface element. In some examples, in response to receiving the fifth indication of the fifth user interface element corresponding to the third application, the system process identifies a fifth action corresponding to the fifth user interface element. In some examples, the fifth action is different from the action and the fourth action. In some examples, in response to identifying the fifth action corresponding to the fifth user interface element, the system process sends an instruction to a respective computer system endpoint to execute the fifth action.In some examples, the instruction to execute the fifth action is sent to the respective endpoint according to the determination that the fifth action and / or the fifth user interface element is of a different fifth type than the first and fourth types. In some examples, the fifth action is specific to the respective endpoint and not to the second computer system. In some examples, the fourth type is always sent to the respective endpoint and never to the second computer system.

[00142] Note that the details of the processes described above in relation to method 800 (e.g., FIG. 8) are also analogously applicable to other methods described herein. For example, method 900 optionally includes one or more of the features of the various methods described above with reference to method 800. For example, the system process of method 800 may be the system process of method 900. For the sake of brevity, these details will not be repeated below.

[00143] FIG. 9 is a flow diagram that illustrates a method (e.g., method 900) for handling instructions to perform operations according to some examples. Some operations in method 900 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted. Petition 870250092019, dated 08 / 10 / 2025, page 76 / 140 67 / 78

[00144] In some examples, method 900 is executed on a computer system (for example, computing system 100, device 200, and / or device 300). In some examples, the computer system is a phone, a tablet, a laptop, a desktop computer, or a wearable device.

[00145] In 902, in a case where an application (for example, as described above in relation to method 600) (for example, first application 360, first extension 370, second application 380 or second extension 390, extension 402, application 502 or extension 504) of the computer system (for example, as described above in relation to method 600) is in a first state (for example, as described above in relation to method 600), the computer system receives, by a first application endpoint of a first process of the computer system (for example, as described above in relation to method 600), an instruction (for example, in 418 or in 516) to execute an action (for example, as described above in relation to method 800), where the action corresponds to a user interface element of a user interface view (for example, as described above in relation to method 600) managed by a second process of the system (for example,The first process of the system and / or a process of the system different from the first process of the system) of the computer system. In some examples, the user interface element corresponds to the application.

[00146] In 904, in response to the first endpoint that receives the instruction to execute the action, the computer system executes the action (for example, as described above with respect to method 800) (for example, in 518) through the first endpoint of the application.

[00147] In 906, in a case where the application is in a second state (for example, as described above with respect to method 800) different from the first state, the computer system receives, through a second application endpoint from the first system process, the instruction Petition 870250092019, dated 08 / 10 / 2025, page 77 / 140 68 / 78 (for example, in 522) to execute the action, where the second endpoint is different from the first endpoint.

[00148] In 908, in response to the second endpoint that receives the instruction to execute the action, the computer system executes the action through the application's second endpoint (for example, in 524). In some examples, the first endpoint does not execute the action when the second endpoint executes it (for example, the second endpoint executes the action without the first endpoint executing it). In some examples, the second endpoint does not execute the action when the first endpoint executes it (for example, the first endpoint executes the action without the second endpoint executing it).

[00149] In some instances, the user interface element is included within a user interface view (e.g., a widget) of the application. In some instances, the user interface view includes a plurality of user interface elements. In some instances, one or more user interface elements among the plurality of user interface elements cause different actions to be performed with the same or different types of inputs as the user interface element.

[00150] In some examples, the first endpoint corresponds to the application (for example, the first endpoint corresponds to a first process of the application that starts executing the application (for example, the application starts running in the background of the computer system) in response to receiving a communication through the first endpoint) (for example, first application 360 or second application 380). In some examples, the second endpoint corresponds to an extension (for example, first extension 370, second extension 390, extension 402, or extension 504) of the application (for example, the second endpoint corresponds to a first process of the extension that starts executing the extension (for example, the extension starts running in the background of the computer system) in response to receiving a communication Petition 870250092019, dated 08 / 10 / 2025, page 78 / 140 69 / 78 via the second endpoint). In some examples, the extension runs (for example, it is configured to run) separately from the application (for example, the extension runs in the foreground and / or background of the computer system without the application running in the foreground and / or background of the computer system).

[00151] In some examples, the first state corresponds to an active state (for example, that the application is currently running (for example, when sending the operation to execute the operation) in the background and / or foreground of the computer system).

[00152] In some examples, the second state corresponds to an inactive state (for example, that the application is not currently running (for example, when sending the operation to execute the operation) in the background and / or foreground of the computer system).

[00153] In some examples, in a case where a second action is a second action type different from a respective action type of the action, the computer system receives, through the first application endpoint, from the first system process, an instruction to execute the second action, where the second action corresponds to a second user interface element of a second user interface view managed by the second system process. In some examples, in response to the first endpoint receiving the instruction to execute the second action, the computer system executes, through the first application endpoint, the second action. In some examples, the instruction to execute the action is selectively sent to the first endpoint or the second endpoint, according to the determination of whether the action and / or the user interface element are of the respective type. In some examples, the second action is specific to the first endpoint and not to the second endpoint.In some examples, the second action is specific to the application and not to the extension. In some examples, the second type is always sent to the first endpoint and never to the second endpoint. Petition 870250092019, dated 08 / 10 / 2025, page 79 / 140 70 / 78

[00154] In some examples, in a case where a third action is a third action type different from an action type of action, the computer system receives, via the application's second endpoint, from the system's first process, an instruction to execute the third action, where the third action corresponds to a third user interface element of a third user interface view managed by the system's second process. In some examples, in response to the second endpoint receiving the instruction to execute the third action, the computer system executes the third action via the application's second endpoint. In some examples, the third action is specific to the second endpoint and not to the first endpoint. In some examples, the third action is specific to the extension and not to the application. In some examples, the third type is always sent to the second endpoint and never to the first endpoint.

[00155] Note that the details of the processes described above in relation to method 900 (e.g., FIG. 9) are also analogously applicable to the methods described herein. For example, method 800 optionally includes one or more of the features of the various methods described above with reference to method 900. For example, the second process of the method 900 system may be the process of the method 800 system. For brevity, these details will not be repeated below.

[00156] FIG. 10 is a flow diagram that illustrates a method (e.g., method 1000) for manipulating user interaction data from the perspective of multiple programs, according to some examples. Some operations in method 1000 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[00157] In some examples, method 1000 is executed on a computer system (e.g., computing system 100, device Petition 870250092019, dated 08 / 10 / 2025, pp. 80 / 140 71 / 78 200 and / or device 300) that stores and / or executes a plurality of programs (for example, first application 360, first extension 370, second application 380, second extension 390, or extension 504). In some examples, the computer system is a phone, a tablet, a laptop, a desktop computer, or a wearable device.

[00158] In 1002, a first program (for example, as described above in relation to method 900) (for example, the first application 360 or the second application 380) corresponding to an application (for example, as described above in relation to method 900) of the computer system receives, through a system process (for example, as described above in relation to method 900) (for example, the UI display manager 340 and / or the intent manager 350) different from the first program (for example, and the second program described below), user interaction data (for example, as described above in relation to the instruction to execute the action of method 900) (for example, in 516). In some examples, the plurality of programs includes the first program, but does not include the system process.In some examples, the user interaction data corresponds to an interaction with a user interface element of a user interface view managed by the system process (for example, as described above in relation to method 900).

[00159] In 1004, in response to receiving user interaction data, the first program provides, through (for example, to) the system process, data (for example, as described above with respect to the request to change the user interface of method 700) for display in a user interface (for example, as described above with respect to method 700) managed by the system process (for example, as described above with respect to method 900) (for example, in 520).

[00160] In 1006, a second program (e.g., first extension) Petition 870250092019, dated 08 / 10 / 2025, page 81 / 140 72 / 78 are 370, second extension 390, extension 402 or extension 504) corresponding to an extension (for example, as described above in relation to method 600) of the application receives, through the system process, the user interaction data. In some examples, the second program is (1) generated by (e.g., is a part of it, downloaded with it, included in it and / or executed by it) the first program and (2) configured to run separately from the first program. In some examples, the first program or the second program (e.g., not both) receives the user interaction data. In these examples, the determination of which program receives the user interaction data is as described above.

[00161] In 1008, in response to receiving user interaction data, the second program provides, through the system process, data (for example, the same data or different data from that provided by the first program in response to receiving user interaction data) for display in the user interface managed by the system process (for example, in 526).

[00162] Note that the details of the processes described above in relation to method 1000 (e.g., FIG. 10) are also analogously applicable to the methods described herein. For example, method 1000 optionally includes one or more of the features of the various methods described above with reference to method 600. For example, the system process of method 900 may be the system process of method 600. For the sake of brevity, these details will not be repeated below.

[00163] FIG. 11 is a flow diagram that illustrates a method (e.g., method 1100) for handling instructions to perform operations according to some examples. Some operations in method 1100 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.

[00164] In some examples, method 1100 is executed on a system Petition 870250092019, dated 08 / 10 / 2025, page 82 / 140 73 / 78 computer (e.g., computing system 100, device 200, and / or device 300). In some examples, the computer system is a phone, a tablet, a laptop, a desktop computer, or a wearable device.

[00165] In 1102, an application (e.g., first application 360, first extension 370, second application 380, second extension 390, application 502, extension 402, or extension 504) of the computer system receives, through a system process (e.g., as described above in relation to method 900) (e.g., UI view manager 340 and / or intent manager 350) other than the application, user interaction data (e.g., as described above in relation to the instruction to execute the action of method 900) (e.g., in 516). In some examples, the user interaction data corresponds to an interaction with a user interface element of a user interface view managed by the system process (e.g., as described above in relation to method 900).

[00166] In 1104, in response to a first program (e.g., application 502) of the application that receives the user interaction data, the application provides, through the system process, data (e.g., as described above with respect to the request to change the user interface of method 700) for display in a user interface (e.g., as described above with respect to method 700) managed by the system process (e.g., as described above with respect to method 700) (e.g., in 520).

[00167] In 1106, the application causes a second program (e.g., an application extension) (as described above) (e.g., extension 402 or extension 504) to run. In some examples, the second program is configured to run separately from the first program. In some examples, the second program is configured to receive interaction data through the system process. Petition 870250092019, dated 08 / 10 / 2025, page 83 / 140 74 / 78 of the user (e.g., in 522). In some examples, the second program is configured to, in response to receiving user interaction data from the second program, provide, through the system process, data (e.g., the same data or different data from that provided by the first program in response to receiving user interaction data) for display in the user interface managed by the system process (e.g., in 526).

[00168] Note that the details of the processes described above in relation to method 1100 (e.g., FIG. 11) are also analogously applicable to the methods described herein. For example, method 700 optionally includes one or more of the features of the various methods described above with reference to method 1100. For example, the system process of method 1100 may be the system process of method 700. For the sake of brevity, these details will not be repeated below.

[00169] In some examples of the methods described above, the following examples apply: In some examples, the user interface view corresponds to a widget (for example, the user interface view is a widget). In some examples, the widget and / or the user interface view are not active (for example, the user interface view is not updated continuously, but rather in response to events that occur and / or a certain period of time that passes, where the specific period of time exceeds the period that a user would interpret as continuous). In some examples, the user interface view is updated according to a timeline that is updated through an operation between (1) a system process and (2) an application and / or an application program / process.In some examples, different user interface views are (1) rendered and / or generated before the user interface views are displayed and (2) provided to a managing system process. Petition 870250092019, dated 08 / 10 / 2025, page 84 / 140 75 / 78 the different user interface views for display according to the timeline. In some examples, a system process manages the updating of the user interface views and / or corresponding data, as described above in relation to FIGS. 3-5. In some examples, an extension (e.g., the second endpoint of method 800 or 900 or the second program of FIGS. 10 or 11) of an application is defined in the same programming language as the application and / or shares at least some of the same resources (e.g., data in memory and / or processors) as the application (e.g., the first endpoint of method 800 or 900 or the first program of FIGS. 10 or 11). In some examples, an application performs the same operations upon receiving a specific instruction from a system process, regardless of the type of device and / or channel used to communicate with the application (e.g., operations are encapsulated).In some examples, an operation performed by a system process is any arbitrary amount of code provided by an application. In some examples, an operation performed by the system process is semantically defined in such a way that the system process interprets the operation differently on different types of computer systems (e.g., and in some examples, the same way). In some examples, an operation is identified and / or determined by a third system process (e.g., the second system process described above or a different system process). In such examples, the third system process may analyze the application code and / or the operations provided to the third system process to identify the operation for encapsulation by the third system process into a system process (e.g., the first system process and / or the second system process).In some examples, an operation to update a user interface view requires multiple communications between a system process and an application (for example, communications including a request to alter). Petition 870250092019, dated 08 / 10 / 2025, page 85 / 140 76 / 78 to display the user interface view to the system process, a request for the application to provide missing content, and a response with the missing content to the system process). In some examples, an application is downloaded from an app store (e.g., an online store that includes multiple apps from different developers and / or entities). In such examples, the application may include an extension (e.g., the second endpoint of method 800 or 900 or the second program in FIG. 10 or 11). In some examples, a user interface view is displayed on a lock screen and / or start screen of a computer system.

[00170] The preceding description, for explanatory purposes, has been made with reference to specific examples. However, the above illustrative discussions are not intended to be exhaustive or to limit the invention to the precise forms described. Many modifications and variations are possible in view of the above teachings. The examples have been chosen and described in order to better explain the principles of the techniques and their practical applications. Others skilled in the art are thus enabled to better utilize the techniques and the various examples with various modifications, as appropriate to the specific use contemplated.

[00171] Although the invention and examples have been described in full with reference to the accompanying drawings, it should be noted that various alterations and modifications will become apparent to those skilled in the art. Such alterations and modifications should be understood as being included within the scope of the invention and examples, as defined by the claims.

[00172] As described above, one aspect of the present technology is the collection and use of available data from various sources to improve how a device interacts with the user. The present invention contemplates that, in some cases, this collected data may include personal information that uniquely identifies or can be used to contact or locate a specific person. Such personal information Petition 870250092019, dated 08 / 10 / 2025, page 86 / 140 77 / 78 ais may include demographic data, location-based data, phone numbers, email addresses, residential addresses, or any other identifying information.

[00173] The present invention recognizes that the use of such personal information data, in current technology, can be used to the benefit of users. For example, personal information data can be used to change how a device interacts with a user. Consequently, the use of such personal information data allows for better user interactions. Furthermore, other uses for personal information data that benefit the user are also contemplated by the present invention.

[00174] The present invention also contemplates that entities responsible for the collection, analysis, invention, transfer, storage, or other use of such personal information data will comply with well-established privacy policies and / or practices. In particular, such entities must implement and consistently use privacy policies and practices that are generally recognized as meeting or exceeding industry or government requirements to keep personal information data private and secure. For example, users' personal information should be collected for the entity's legitimate and reasonable uses and not shared or sold outside of those legitimate uses. Furthermore, such collection should only occur after receiving informed consent from users.Furthermore, such entities will take all necessary measures to safeguard and protect access to such personal information data and ensure that other individuals with access to personal information data comply with their privacy policies and procedures. Additionally, such entities may submit to third-party assessments to certify their adherence to widely accepted privacy policies and practices.

[00175] Notwithstanding the foregoing, the present invention also contemplates Petition 870250092019, dated 08 / 10 / 2025, page 87 / 140 78 / 78 modalities in which users selectively block the use of or access to personal information data. That is, the present invention contemplates that hardware and / or software elements can be provided to prevent or block access to such personal information data. For example, in the case of image capture, the present technology can be configured to allow users to select to accept or refuse participation in the collection of personal information data during registration for the services.

[00176] Therefore, although the present invention broadly encompasses the use of personal information data to implement one or more described embodiments, the present invention also contemplates that the various embodiments can be implemented without the need to access such personal information data. That is, the various embodiments of the present technology do not become inoperable due to the absence of all or part of this personal information data. For example, content can be displayed to users by inferring location based on non-personal information data or a minimal amount of personal information, such as content requested by a user's associated device or other non-personal information. Petition 870250092019, dated 08 / 10 / 2025, page 88 / 140

Claims

1 / 4 CLAIMS 1. A method, characterized in that it comprises: in a process of a computer system: receiving an indication of a user interface element corresponding to an application; in response to receiving the indication of the user interface element corresponding to the application, identifying an action corresponding to the user interface element; and in response to identifying the action corresponding to the user interface element: according to a determination that the application is in a first state, sending, to a first endpoint of the application, an instruction to execute the action; and according to a determination that the application is in a second state different from the first state, sending, to a second endpoint of the application different from the first endpoint of the application, the instruction to execute the action.

2. A method according to claim 1, characterized in that the user interface element is included in a user interface view of the application.

3. A method, according to any one of claims 1 to 2, characterized in that the first endpoint corresponds to the application, wherein the second endpoint corresponds to an extension of the application, and wherein the extension runs separately from the application.

4. Method, according to any one of claims 1 to 3, characterized in that the first state corresponds to an active state. Petition 870250092019, dated 08 / 10 / 2025, pp. 115 / 140 2 / 4 5. A method, according to any one of claims 1 to 4, characterized in that the second state corresponds to an inactive state.

6. A method, according to any one of claims 1 to 5, characterized in that it further comprises: receiving a second indication of a second user interface element corresponding to the application; in response to receiving the second indication of the second user interface element corresponding to the application, identifying a second action corresponding to the second user interface element; and in response to identifying the second action corresponding to the second user interface element, sending an instruction to the first endpoint of the application to execute the second action.

7. A method, according to any one of claims 1 to 6, characterized in that it further comprises: receiving a third indication from a third user interface element corresponding to the application; in response to receiving the third indication from the third user interface element corresponding to the application, identifying a third action corresponding to the third user interface element; and in response to identifying the third action corresponding to the third user interface element, sending an instruction to the second endpoint of the application to execute the third action.

8. A method according to any one of claims 1 to 7, characterized in that it further comprises: receiving a fourth indication of a fourth user interface element corresponding to a second application different from the application; Petition 870250092019, dated 08 / 10 / 2025, page 116 / 140 3 / 4 in response to receiving the fourth indication of the fourth user interface element corresponding to the second application, identifying a fourth action corresponding to the fourth user interface element; in response to identifying the fourth action corresponding to the fourth user interface element, sending, to a second computer system different from the computer system, an instruction to execute the fourth action; receiving a fifth indication of a fifth user interface element corresponding to a third application different from the application;In response to receiving the fifth indication of the fifth user interface element corresponding to the third application, identify a fifth action corresponding to the fifth user interface element; and in response to identifying the fifth action corresponding to the fifth user interface element, send an instruction to a respective computer system endpoint to execute the fifth action.

9. Non-transient computer-readable medium, characterized in that it stores one or more programs configured to be executed by one or more processors of a computer system executing a system process, the one or more programs including instructions for executing methods, as defined in any of claims 1 to 8.

10. A computer system that executes a system process, characterized in that it comprises: one or more processors; and memory that stores one or more programs configured to be executed by one or more processors, including instructions for executing a method, as defined in any one of claims 1 to 8.