Live session on the lock screen
The system process in electronic devices addresses the challenge of displaying application-related data on the lock screen by receiving templates from applications and rendering user interface views with live data, ensuring power efficiency and maintaining user privacy and device security.
Patent Information
- Application Number
- JP2024571007
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-04-27
- Filing Date
- 2023-05-31
- Publication Date
- 2025-06-26
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Electronic devices face challenges in displaying application-related data on the lock screen without allowing the application to access locked data or resources, while maintaining user privacy and device security.
A system process in the electronic device receives templates from applications defining user interface views with predefined regions for live data, allowing the rendering of user interface views on the lock screen without executing the application or accessing locked resources.
This solution enables the display of dynamic data on the lock screen in a power-efficient manner, maintaining user privacy and device security by preventing the application from accessing locked data or resources.
Smart Images

Figure 2025519391000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications) This application claims the benefit of priority of U.S. Provisional Patent Application No. 63 / 349,029, entitled "Live Sessions on Lock Screen," filed on June 3, 2022, the disclosure of which is incorporated herein by reference in its entirety. 〔Technical Field〕
[0002] This specification generally relates to an electronic device, including, for example, presenting a live session on a lock screen of the electronic device.
Background Art
[0003] Electronic devices typically provide applications for presenting content on a user interface of the application. To access the content, the user typically has to unlock the device, launch the application, and find the correct portion of the application's user interface to access the desired content.
[0004] Certain features of the technology of this application are set forth in the appended claims. However, for purposes of illustration, some implementations of the technology of this application are shown in the following figures.
Brief Description of the Drawings
[0005]
Figure 1
[0006]
Figure 2
[0007]
Figure 3
[0008]
Figure 4
[0009]
Figure 5
[0010]
Figure 6
[0011]
Figure 7
[0012]
Figure 8
[0013]
Figure 9
[0014]
Figure 10
DETAILED DESCRIPTION OF THE INVENTION
[0015] The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configuration by which the subject technology may be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details in order to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details described herein and may be practiced using one or more other implementations. In one or more implementations, structures and components are shown in block diagram form in order to avoid obscuring the concepts of the technology of the present application.
[0016] Since an application is typically restricted from accessing locked data and / or resources, issues may arise when generating application-related displays on the lock screen of a computing device. However, there may be cases where it is desirable to display data associated with an application on the lock screen of a computing device. Accordingly, it may be desirable to generate a display associated with an application while restricting the application from being executed on the computing device and / or from receiving information regarding the computing device and / or the lock screen.
[0017] In one or more implementations, a system process in an electronic device (or a user interface display process separate from the operating system) receives, from an application, one or more templates that define information associated with the user interface view of the application. The one or more templates include one or more predefined regions for displaying live data. The system process can render a user interface view that includes the template and the live data.
[0018] An exemplary electronic device capable of displaying content and / or a live session UI view is shown in FIG. 1. In the example of FIG. 1, the electronic device 100 is portable and implemented using a housing that is small enough to be carried by a user (e.g., the electronic device 100 in FIG. 1 can be a handheld electronic device such as a tablet computer, smartphone, smartwatch, laptop, etc.). As shown in FIG. 1, the electronic device 100 includes a display such as a display 110 attached to the front surface of the housing 106. The electronic device 100 includes one or more input / output devices such as a touch screen incorporated in the display 110, buttons or switches such as buttons 104, and / or other input / output components disposed on or behind the display 110, or on or behind other portions of the housing 106. The display 110 and / or the housing 106 include one or more openings for accommodating the buttons 104, speakers, light sources, or cameras.
[0019] In the example of FIG. 1, the housing 106 includes an opening 108 on the bottom sidewall of the housing 106. The one or more openings 108 form ports for audio components. The housing 106, which may also be referred to as a case, can be formed of plastic, glass, ceramic, fiber composite, metal (e.g., stainless steel, aluminum, etc.), other suitable materials, or any combination of two or more of these materials.
[0020] The configuration of the electronic device 100 in FIG. 1 is merely an example. In other implementations, the electronic device 100 can be a computer integrated with and / or communicatively coupled to a display, such as a computer monitor, laptop computer, set-top box device, content streaming device, smartwatch, pendant device, or other wearable or small device such as other wearable devices, media players, game devices, navigation devices, computer monitors, televisions, headphones, or other electronic devices having a display. In some implementations, the electronic device 100 can be provided in the form of a wearable device such as a smartwatch. In one or more implementations, the housing 106 can include one or more interfaces for mechanically coupling the housing 106 to a strap or other structure for securing the housing 106 to the wearer.
[0021] FIG. 2 shows an example of a live session UI view 205 displayed by the electronic device 100. In some embodiments, the UI view 205 is a system UI view (e.g., a view provided by the operating system of the electronic device 100). In one or more implementations, the UI view 205 can be a UI view for widgets. As shown in FIG. 2, the UI view 205 is displayed by the lock screen 250 of the electronic device. However, in some embodiments, the electronic device is configured to display the live session UI view on any one of a lock screen (e.g., lock screen 250), home screen, within another application, and / or within a window overlaid on another application. In some embodiments, the UI view 205 is a UI view displayed by a system process.
[0022] In some implementations, the system process generates the UI view 205 according to parameters provided by the application. In some implementations, the system process is an application framework that receives configuration data associated with the application and generates the UI view 205 according to the configuration data. In some implementations, the configuration data is included in a template data structure. In some implementations, the configuration data is defined using a declarative syntax.
[0023] In some implementations, the UI view includes at least one data element (e.g., the first predefined region 209 or the second predefined region 211) associated with system data (e.g., a battery indicator, a signal strength indicator, or a timer). In some implementations, the UI view includes at least one data element (e.g., the first predefined region 209 or the second predefined region 211) associated with application data (e.g., fitness tracking data, sports scores, etc.).
[0024] As shown in FIG. 2, the lock screen 250 is displayed by the electronic device 100 while the electronic device 100 is in a locked state. For example, the electronic device 100 can include a housing 106 and a display 110 that displays the lock screen 250. In the example of FIG. 2, the lock screen 250 includes an unlock feature 219. The unlock feature 219 can be selectable by a user of the electronic device 100 to initiate an unlock procedure (e.g., a procedure by which the user provides authentication information and / or the device obtains authentication information to unlock the electronic device). In the example of FIG. 2, the lock screen 250 also includes a lock indicator 201 that indicates that the electronic device is locked. In one or more implementations, when authentication information is received by the electronic device 100 and before providing additional interactions for the user to navigate away from the lock screen 250 (e.g., to another screen such as a home screen or a user interface of an application or system process), the lock indicator 201 can indicate that the electronic device 100 is unlocked for a certain period while the lock screen 250 remains displayed.
[0025] In the example of FIG. 2, the lock screen 250 also includes a carrier indicator 212, a signal strength indicator 214, a battery indicator 216, and a function element 218 (e.g., a display element that can be used to access limited functions of the electronic device 100, such as a light source function or a camera function). In some implementations, one or more of the carrier indicator 212, the signal strength indicator 214, the battery indicator 216, and the function element 218 are displayed within the live session UI view. As shown in FIG. 2, the lock screen 250 may also include a background 206 (e.g., an image or a color pattern), a live session UI view 205 (e.g., a UI view in one or more states defined by a corresponding application installed on the electronic device 100 or a system process), and may include publicly available data such as time 208 and date 210. In the example of FIG. 2, the electronic device 100 includes one or more sensing components 204 (e.g., a camera and / or an infrared sensor or a depth sensor) that can be used to obtain biometric information from a user of the electronic device. In other examples, the electronic device 100 may obtain biometric or non-biometric (e.g., password) authentication information from other sensors and / or input components such as a touch screen integrated with the display 110, or a keyboard or other input interface of the electronic device 100.
[0026] In the example of FIG. 2, the UI view 205 includes a background 207, a first predefined region 209, and a second predefined region 211 within a boundary 215. However, in other examples, the UI view 205 may include any number of predefined regions (e.g., 209). As shown, the first predefined region 209 may include a display of data 221. For example, the data may be additional data. The data 221 (e.g., additional data) may be data received from an application at a time following receipt of a template associated with the UI view by a system process. The data 221 may be inserted into a predefined region (e.g., predefined region 209), and the UI view may be rendered with the data 221 shown in the predefined region 209. Further, the data 221 may be received prior to or simultaneously with receipt of a template associated with the UI view by a system process. In one exemplary example, the data 221 may include data associated with a live event (e.g., a sports event), or the live session data 221 may include data associated with an event that is updated periodically, sporadically, or continuously. The first predefined region 209 may include a display of the data 221. The second predefined region 211 may include a display of different data 223. In the example of FIG. 2, the UI view 205 is a bounded UI view having a boundary 215 that sets the UI view 205 apart from the background 206. In one or more other implementations, the UI view 205 may be a display element without a boundary. In the boundaryless state of the UI view 205, the first predefined region 209 and / or the second predefined region 211 and / or their respective associated data 221 and data 223 may be displayed to appear as content integrated with the background 206.
[0027] In some variations, one or more data (e.g., data 221 and / or data 223) displayed by a UI view (e.g., UI view 205) are obtained by the electronic device 100 from an application running on the electronic device 100. In some variations, one or more of the data (e.g., data 221 and / or data 223) displayed by a UI view (e.g., 205) are obtained by the electronic device 100 from a remote application server 610 (e.g., remote to the electronic device 100) associated with the UI view. In some variations, the data are obtained by the electronic device 100 from the remote application server 610. In some variations, the application sends data to a data server 612 (e.g., a remote data server) associated with the electronic device 100, and the electronic device 100 obtains the data from the data server 612 associated with the electronic device 100.
[0028] In another exemplary example, the UI view 205 may include one or more graphical display elements (e.g., the first predefined region 209 and / or the second predefined region 211) of a sports-related application installed on the electronic device 100. The sports-related application may be inactive when the UI view 205 is displayed. In this example, the data 221 may be the current score of a first individual or team currently participating in a competitive sports event (e.g., a basketball game, a football game, a soccer game, a hockey game, a golf tournament, a chess tournament, a rugby game, a tennis match, a fencing tournament, a bowling tournament, a curling tournament, etc.). In this example, the data 223 may be the current score of a second individual or team currently participating in the sports event (e.g., against the first individual or team). In various implementations, the data 221 and the data 223 may be obtained by the electronic device 100 from an application server 610 associated with the sports-related application while the sports-related application on the electronic device 100 is inactive on the electronic device 100. In this way, the UI view 205 can display dynamic (e.g., current, real-time, live) data without the need to operate the sports-related application.
[0029] Examples of sports-related applications and sports events are merely illustrative. In another illustrative example, a user of the electronic device 100 may be waiting for a ride-sharing vehicle associated with a ride-sharing application installed on the electronic device 100 or may be riding in a ride-sharing vehicle. The user can view the location, estimated arrival time, estimated cost, or other dynamic and / or live data of the ride-sharing vehicle in the full user interface of the ride-sharing application (e.g., in the full user interface of the ride-sharing application such as a user interface generated by the ride-sharing application rather than by a system process). In this illustrative use case, when the UI view 205 (generated by a system process) is displayed instead of the full user interface of the ride-sharing application (generated by the application), the UI view 205 can display some or all of the data associated with the ride-sharing vehicle. For example, the first predefined area 209 can display data 221 corresponding to the current location of the ride-sharing vehicle, and the second predefined area 211 can display data 223 corresponding to the estimated arrival time of the ride-sharing vehicle.
[0030] Generally, the UI view 205 can be a system-generated live session UI view (e.g., a system-generated notification, status bar UI view, toolbar UI view, system tray view, taskbar view, or other system-generated UI view that displays system-generated data such as live data or dynamic data), a system-generated application-specific live session UI view that can be displayed while the full (application-generated) UI of the application is inactive (e.g., minimized or closed), or an extension-generated live session UI view that can be generated by an extension operating in a restricted (e.g., sandboxed) mode.
[0031] In the example of FIG. 2, the UI view 205 is displayed in a first state. In this first state, the UI view 205 includes first data 221 within a first default region 209, second data 223 within a second default region 211, as well as a background 207 and a border 215. The first state may be defined by the application underlying the UI view 205. For example, the first state may be defined by the underlying application before the electronic device displays the UI view 205. In one or more implementations, the first state shown in the example of FIG. 2 may be one of a plurality of states of the UI view 205 defined by the underlying application.
[0032] FIG. 3 shows an example in which the electronic device 100 displays the UI view 205 in a second state different from the first state shown in FIG. 2. In the example of FIG. 3, the UI view 205 is in the second state. As shown in the example of FIG. 3, in the second state, the UI view 205 includes a background 207, a boundary 215 of the UI view 205, a first default region 209, and a second default region 211. While the UI view 205 is in the second state, the UI view 205 may include updated data 321 (e.g., first updated data) in the first default region 209 and updated data 323 (e.g., second updated data) in the second default region 211. For example, the updated data may be new live data for replacing the first data. In an example of a sports event, the first score of the first team may be displayed as data 221 in the default region 209, and the second score of the second team may be displayed as data 223 in the default region 211. When the first team and the second team each change their scores, the third score of the first team may be displayed as data 321 in the default region 209, and the fourth score of the second team may be displayed as data 323 in the default region 211. FIG. 3 shows the updated data 321 and the updated data 323, but in some examples, only the data in the first default region 209 is updated and the data in the second default region 211 remains the same. For example, the updated data 321 may be displayed in the default region 209, and the initial data 223 may be presented in the default region 211. In another example, the initial data 221 is displayed in the default region 209, and the updated data 323 is presented in the default region 211. In other examples, any number of default regions presented on the UI view 205 may exist. The UI view 205 may present one default region, three default regions, or four or more default regions.
[0033] In one or more implementations, the UI view 205 may transition from the first state shown in FIG. 2 to the second state shown in FIG. 3 in response to an update sent by the application. In another example, the UI view 205 may transition from the first state shown in FIG. 2 to the second state shown in FIG. 3 in response to an input from a user associated with the electronic device 100. For example, the user may input an input requesting an update to the UI view 205, and the UI view 205 may be updated according to the user input. In another example, the UI view 205 may be updated based on receiving updated data from the remote data server 612 by a system process. The system process can access the remote data server 612 periodically, and the system process can obtain the updated data from the remote data server 612 after the data in the data server 612 is updated by, for example, the application server 610. The system process can include a default update rate, and the system process can request an update to the data from the remote data server 612 based on the default update rate. The system process can receive an update cadence from the application. The system process can request an update to the data from the remote data server 612 based on the update cadence received from the application. The system can use a transition to transition from the first state shown in FIG. 2 to the second state shown in FIG. 3. For example, the transition may be an animation. For example, the first data 221 may be replaced with the data 321 within the default region 209 using an animation function. The animation can include any suitable animation, such as a fade-in, slide-in, spin, or any other suitable animation.
[0034] Figure 4 shows an example of an additional UI view 405 associated with the lock screen 250 of the electronic device 100. For example, the UI view 405 of FIG. 4 can be a third state associated with the UI view 405. In the third state, the UI view 405 may be based on a template different from the template used to generate the UI views 205 shown in FIGS. 2 and 3. For example, FIGS. 2 and 3 may be generated based on a first template, and the differences between the UI views presented in FIGS. 2 and 3 may be limited to the data presented in the predefined regions 209 and 211. The UI view 405 is based on a different template. The different template may include a predefined region different from the template used to generate the UI view 205. For example, the predefined region 409 may be of a different size, a different shape, a different location, or any other suitable difference. For example, the predefined region 409 may be presented at a corner of the UI view 405 rather than at the center of the UI view 405.
[0035] The different template used to generate the UI view 405 can be provided by an application. In one or more implementations, the different template used to generate the UI view 405 can be retrieved from a remote application server 610 by a system process. The different template used to generate the UI view 405 may be obtained by a system process from a system process or a remote data server 612 associated with the electronic device 100, and the remote data server 612 associated with the system process or the electronic device 100 may be configured to host information from the application. In another example, the remote data server 612 may be associated with a third party other than the application and the system process or the electronic device 100, the third party data server 612 may be configured to host information from the application, and the third party data server 612 may be configured to be accessed by a system process.
[0036] The system process can receive an indication from the application as to which template to use. For example, the system process can receive an indication from the application and generate a UI view 205 associated with a first template, display first data 221 in a default area 209, and display second data 223 in a default area 211. In another example, the system process can receive an indication from the application and generate a UI view 405 associated with a second template, and display data 421 in a default area 409. In another example, the system process can generate a UI view 205 based on a first template over a first period of time. After generating the UI view 205, the system process can render the UI view 405. The system process can transition the UI view 205 to the UI view 405. The transition can include an animation. In another example, the UI view 205 and the UI view 405 may be simultaneously displayed on the lock screen 250.
[0037] FIG. 5 may show an example of the electronic device 100 displaying the UI view 405 in a fourth state different from the third state shown in FIG. 4. In the example of FIG. 5, the UI view 405 is in the fourth state. As shown in the example of FIG. 5, in the fourth state, the UI view 405 includes a background 407, a boundary 415 of the UI view 405, and a default area 409. While the UI view 405 is in the fourth state, the UI view 405 may include updated data 521 within the default area 409. For example, the updated data may be new live data to replace the first data 421. In an example where the user accesses personalized data, the data 421 may be personalized information, such as bank account information, displayed in the default area 409, and the rest of the UI view 405 may include static data associated with the banking application. When the user performs a transaction, instead of the data 421, the updated data 521 may be displayed in the default area 409.
[0038] In the examples of FIGS. 2-5, UI views 205 and 405 are shown as being displayed on lock screen 250 of electronic device 100 as examples of screens that can display a live session UI view. In implementations where UI views 205 and UI view 405 are displayed and can be updated based on live or dynamic data, UI views 205 and UI view 405 can provide various technical advantages. For example, when the device is locked, on some devices, the entire system including application data associated with applications installed on the electronic device can be encrypted. To regain access to the data and / or functions of electronic device 100, the user often needs to provide authentication information that proves to the device that the user is an authorized user. By way of example, the authentication information can include a passcode entered by the user, or biometric information such as fingerprint, voiceprint, or facial feature information.
[0039] Following a lock event of electronic device 100, electronic device 100 can display lock screen 250. While electronic device 100 is locked and lock screen 250 is being displayed, the user can provide authentication information and / or the device can automatically obtain authentication information (e.g., by acquiring imaging or depth data associated with the user's finger or face), and if the authentication information indicates that the user is an authorized user of electronic device 100, electronic device 100 can be unlocked.
[0040] In one or more use cases, a user of the electronic device 100 can use the device to view or otherwise monitor ongoing events in the physical world using an application installed on the electronic device. As an example, a sports-related application may be used to monitor or track the score of a sports event, a rideshare application may be used to monitor the location of a rideshare vehicle before or during a ride, or a delivery application may be used to monitor the status of an order and / or the location of a delivery vehicle. As another example, a nature-related application can be used to monitor natural phenomena such as tides, lunar phases, weather, etc.
[0041] It may be difficult for an application to obtain data associated with the application and display it on the lock screen 250 of the electronic device 100 without permitting the application to access data and / or resources that are locked from access in the locked state of the device. For example, it may be desirable to display data associated with an application while preventing the application from being executed on the electronic device and / or from receiving information regarding user interaction with the lock screen of the electronic device (e.g., information that is normally protected by the device until the user provides authentication information and attempts to interact with the application).
[0042] Aspects of the subject technology can provide live session UI views, such as UI view 205 of FIGS. 2 and 3 and UI view 405 of FIGS. 4 and 5, that display dynamic data in a power - efficient manner while the electronic device is in a locked state and maintain user privacy and / or device security. For example, before the electronic device 100 enters the locked state, by providing state definitions, trigger definitions, and / or transition definitions to the system process of the electronic device 100, UI view 205 and UI view 405 can respond to user interactions, data triggers, and / or other content on the lock screen 250 in a way that appears to be able to receive information regarding user interactions of the underlying application with other content displayed on the electronic device or the lock screen without actually being able to receive such information while the electronic device 100 is in the locked state. In this way, the privacy that a user can expect when their device is locked can be maintained and protected.
[0043] In various implementations described herein, regardless of whether a live session UI view with dynamic data is displayed on the lock screen, home screen, or any other user interface of an electronic device, in addition to the advantages of privacy, power efficiency, and / or computing resource efficiency, aspects of the subject technology can also provide advantages in terms of developer and user efficiency. For example, an application developer can provide information to the system process of the electronic device that enables the system process to animate the UI view aspects for application information without the developer having to create or provide code for the animation.
[0044] In another example, the live session UI view can be updated based on one or more triggers. The trigger may be determined by a system process, or the trigger may be received from an application by a system process. For example, the UI view 205 can be associated with a ride-sharing application. The ride-sharing application can indicate that the vehicle will arrive in 60 minutes. Based on the amount of time until the vehicle arrives, the data displayed in the UI view 205 can be updated at a lower frequency. For example, the data displayed in the UI view 205 can be updated every minute, every two minutes, every 30 seconds, etc. The ride-sharing application can indicate that the ride will arrive within 2 minutes. Based on the fact that the time until the ride arrives is 2 minutes, the data displayed in the UI view 205 can be updated at a higher frequency. For example, the data displayed in the UI view 205 can be updated every second, every 5 seconds, every 10 seconds, etc.
[0045] FIG. 6 shows an exemplary architecture that can be implemented by the electronic device 100 according to one or more implementations of the subject technology. For purposes of explanation, portions of the architecture of FIG. 6 are described as being implemented by the electronic device 100 of FIG. 1 by, for example, a processor and / or memory of the electronic device. However, appropriate portions of the architecture may be implemented by any other electronic device. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the configuration and type of components can be made without departing from the spirit or scope of the claims presented herein. Additional components, different components, or fewer components may be provided.
[0046] The various parts of the architecture of FIG. 6 can be implemented in software or hardware, including by one or more processors and a memory device that, when executed by the processor, contains instructions that cause the processor to perform the operations described herein. In the example of FIG. 5, the electronic device 100 includes hardware components such as a display 110. In this example, the electronic device 100 also includes one or more logical processes such as system process 602 and / or one or more applications 604a-604n. For example, the system process 602 and / or one or more applications 604a-n may be logical processes executed from memory by one or more processors of the electronic device 100. The system process 602 can be, for example, a process defined in hardware and / or as part of the operating system of the electronic device 100.
[0047] In FIG. 6, the electronic device 100 can store code for three applications (e.g., App1 604a, App2 604b, and AppN 604n). However, this is merely an example, and it is understood that the electronic device 100 can store code for one application 604, two applications 604, four or more applications 604, or generally any number of applications 604. The applications 604 can be, for example, previously downloaded and installed on the electronic device 100. One or more of the applications 604 can be associated with a UI view (e.g., UI view 205 or UI view 405) that displays data that can be, for example, periodically, occasionally, or continuously dynamic data (e.g., application-specific information, system status information, and / or information associated with physical world events as described herein) while the full user interface of the application 604 and / or the application 604 is inactive.
[0048] In FIG. 6, application 604 communicates with system process 602. Application 604 can provide one or more templates and additional information to system process 602. For example, App1 can provide system process 602 with one or more templates associated with the live session UI view. App1 can provide system process 602 with one or more definitions associated with one or more templates. The system process can store the definitions associated with App1, for example, in the memory associated with the system process. The system process can use the definitions associated with App1 to display UI view 205 and / or UI view 405 as shown in FIGS. 2-5.
[0049] The definitions associated with App1 may include the definitions of one or more templates associated with App1. The one or more templates may have static data associated with the template. The static data associated with a particular template may always exist within the UI view associated with the particular template. The template may include one or more predefined regions into which additional data (e.g., data 221, 223, etc.) can be inserted. The additional data may be live data. The additional data may be personalized data. The additional data may be dynamic data. The additional data may be provided by the application or by a remote application server 610 associated with the application. A single application can generate or provide one or more templates to a system process. The system process can render UI views (e.g., UI view 205 and UI view 405) based on one or more templates. The system process may render a UI view that includes a single template out of the one or more templates, or the system process may render a UI view that includes multiple templates from the same application. The system process can render a UI view that includes multiple templates from multiple different applications. Each different template can display different data on the lock screen (e.g., lock screen 250) of the electronic device 100.
[0050] The definitions may include the definitions of the UI elements of the UI view, the state transitions of the UI view, the sizes of one or more UI elements of the UI view, the shapes of one or more elements of the UI view, the locations of one or more UI elements of the UI view, and the layout of the UI elements of the UI view. The definitions can define graphical objects to be displayed on the UI view.
[0051] The provision of the state definition shown in FIG. 6 may be performed before the corresponding UI view (where the state definition defines one or more states) is displayed. As a result, the system process 602 of the electronic device 100 can render data and corresponding graphics having the layout, size, and / or other visual characteristics of the UI view in any of the various states defined by the state definition for at least some period while the application itself is inactive.
[0052] As shown in FIG. 6, the application server 610 can communicate with a data server 612 (e.g., a remote server), and the system process 602 can communicate with a channel of the data server (e.g., channel 1). The system process 602 can receive data corresponding to the application from the data server. For example, the system process 602 can receive data related to App1 604a from the data server 612. The data server 612 may be located away from the electronic device 100. In one example, App1 604a sends a definition to the system process 602, and the definition includes an indication of an identifier associated with one or more communication channels of the data server 612. For example, the system process 602 can use one or more identifiers (e.g., an identifier, a link, a token, or a handle) to access a channel of the remote server 612 and retrieve data associated with App1 604a.
[0053] One or more channels may be public channels. A public channel can publish data for other devices to retrieve from the public channel. Application 604 may have access to a public channel to publish data associated with Application 604 on one or more of the channels of Data Server 612. System Process 602 can subscribe to a public channel using the identifier of the public channel. Application 604 can publish dynamic data in the public channel, and System Process 602 can access the data published by the public channel. A public channel can be hosted by one or more remote servers. One or more remote servers can be associated with Applications 604a - n. After accessing the data, the System Process may store the data on Electronic Device 100 (e.g., in memory).
[0054] In one example shown in FIG. 6, System Process 602 receives a template from Application 604 (e.g., App1 604a), and the System Process subscribes to a channel on Data Server 612 associated with App1. System Process 602 retrieves live session data from Channel 1, and the System Process causes a UI view (e.g., UI View 205) including the template and the data to be displayed on Display 608 via Renderer 606. The data can be inserted into one or more predefined regions of the template. For example, the UI view that displays the template and the data may be UI View 205 having a template including a predefined region 209 containing Data 221 and a predefined region 211 containing Data 223.
[0055] A UI view (e.g., UI view 205) can be updated periodically to ensure that the live session data is sufficiently accurate. For example, UI view 205 may be updated every 10 seconds. The update frequency can be determined by the application. The update frequency can be determined by system process 602. In one or more implementations, the update frequency can be at least partially based on the data change rate of the corresponding live event. For example, since the data change rate of the score of a baseball or soccer game is lower than that of the score of a basketball game, the update frequency of the score of a soccer or baseball game may be lower than that of the score of a basketball game.
[0056] In one or more implementations, there may be a limit to how frequently a UI view can be updated. The system process can balance the periodicity of updates to maximize data accuracy without overburdening the resources of the electronic device 100, such as battery life or computing power. In one example, system process 602 can determine that the user is not actively interacting with the UI view. Based on the inactivity, system process 602 can pause all updates to the live session data. In another example, a user associated with the electronic device 100 may request a pause in the updates to the UI view. The live session UI view may not be updated until the user requests a resumption of the updates. In one example, new data may be published on channel 1, but the system process may not need to access the new data while the UI view is inactive. When it is determined that the user is interacting with the UI view or the electronic device, the system process can lift the pause on the updates and start updating the live session data on the UI view.
[0057] In the above example, the system process 602 can determine the first data (e.g., data 221 and data 223) on channel 1 of the data server 612. The system process can also determine a template associated with an application (e.g., App1) associated with the published data. The system process 602 can cause a UI view 205 including the template and the data within the default area of the template to be rendered. For example, the system process 602 can cause the UI view 205 to be rendered together with the data 221 inserted into the default area 209 and the data 223 to be inserted into the default area 211. Thereafter, the system process 602 can query channel 1 to request updated data. The system process 602 can determine that the application has published additional and / or updated data on channel 1 of the data server 612. The system process 602 can access the updated data and update the UI view 205 with the updated data. For example, the system process 602 can transition the UI view 205 shown in FIG. 2 to the UI view 205 shown in FIG. 3. For example, the system process 602 can replace the data 221 within the default area 209 with the updated data 321, and the system process 602 can replace the data 223 within the default area 211 with the updated data 323.
[0058] In another example, system process 602 can access data from data server 612 associated with multiple applications and / or multiple templates. Each data can be associated with an identifier for identifying which application and / or template the data corresponds to. For example, system process 602 can render a UI view on the lock screen using two different templates from two different applications. To determine which data is associated with which default area of which template, the data can be tagged with an identifier that defines which application, template, and default area the data is associated with. System process 602 can receive the data and the identifier, and system process 602 can use the identifier to determine how and / or where to render the data in user interface view 205.
[0059] In another example, the system process can transition the UI view from the currently rendered view to the newly rendered view. The currently rendered view may be associated with an extended process running in a restricted mode (e.g., sandbox mode) of the electronic device 100. For example, the restricted mode may include an isolated environment on the electronic device 100 that separates certain code and / or data from the rest of the application, the electronic device 100, or the network. Since the code is not running on the open environment of the electronic device 100, the restricted mode can prevent unintended errors or malicious actions by the code in the restricted mode. In some examples, a restricted mode such as sandbox mode can be a test environment with some functionality to allow the code running in the restricted mode to take some actions without affecting the entire electronic device 100. The system process 602 can request the newly rendered UI view from the extended process running in the restricted mode. The system process can cause a transition from the currently rendered UI view to the newly rendered UI view. For example, the transition can be animated. The animation can be any animation contemplated herein, such as a slide-in, fade-in, or any other suitable animation.
[0060] In another example, the system process can request the newly rendered UI view from a second extension process running in the same or a different restricted mode. The system process can cause a transition from the currently rendered UI view to the newly rendered UI view. For example, the transition can be an animation. The animation can be any animation contemplated herein, such as a slide-in, fade-in, or any other suitable animation. The currently rendered view can include a template in which dynamic data (e.g., live session data) is inserted into one or more predefined regions of the template and rendered to the UI view. The newly rendered view can include a template with updated dynamic data. The updated dynamic data can replace the dynamic data inserted into the one or more predefined regions, and the newly rendered UI view can display the updated dynamic data on the UI view.
[0061] The extension process can be executed on the electronic device 100 in one or more modes. The modes can be restricted in one or more ways. The extension process may have fewer permissions when executed in a restricted mode. For example, the restrictions may be determined based on aspects of the extension process. In one example, the extension process can be executed in a rendering mode, and the extension process renders a template and data to a UI view. In the rendering mode, the extension process may not have access to the network. In the rendering mode, the extension process may not be accessible by the user of the electronic device 100. While executing in the rendering mode, the system process can retrieve data from a subscription channel and send that data to the extension process. Thus, even without network access, the extension process can still access updated data and render an updated UI view. In another example, the extension process can be executed in a data fetch mode. While executing in the data fetch mode, the extension process may have access to the network. For example, the extension process may be able to access a public channel to request updated dynamic data that is used when rendering a newly rendered UI view. In another example, the extension process may be executing in an edit mode. While in the edit mode, the extension process may have restricted access to the network and restricted access to receive user input.
[0062] FIG. 7 shows a flowchart of an exemplary process for a live session user interface view according to an aspect of the subject technology. The blocks of process 700 are described herein as occurring serially or linearly. However, multiple blocks of process 700 may occur in parallel. Additionally, the blocks of process 700 need not be executed in the order shown, and / or one or more blocks of process 700 need not be executed and / or may be replaced by other operations. In some embodiments, a system process (e.g., system process 602) of an operating system of an electronic device executes the process of FIG. 7. In some implementations, the system process is a user interface view display process (e.g., a process for displaying widgets). In other embodiments, a user interface view display process separate from the operating system of the electronic device (e.g., a process for displaying widgets) executes the process of FIG. 7.
[0063] In the example of FIG. 7, at block 702, a system process (e.g., system process 602) executing on a computing device (e.g., electronic device 100) receives a user interface template from an application process (e.g., App1 604a) executing on the computing device, and the user interface template defines one or more predefined regions (e.g., 209, 211) of a user interface view (e.g., UI view 205). In one or more implementations, the user interface view can be a user interface view for widgets for an application. At block 704, the system process (e.g., system process 602) receives additional data (e.g., data 221 and data 223) following receipt of the user interface template.
[0064] In block 706, a system process (e.g., system process 602) renders a user interface view (e.g., UI view 205) according to a user interface template, and the user interface view (e.g., UI view 205) is included on a lock screen (e.g., lock screen 250) associated with a computing device. The rendered user interface view (e.g., 205) includes additional data (e.g., 221 and 223) included in one or more predefined regions (e.g., 209 and 211). For example, an application process may be related to displaying information associated with a sports event. The system process (e.g., 602) can receive a user interface template from the application process, and the user interface template defines one or more predefined regions of the user interface view (e.g., 205) on the lock screen (e.g., 250). The system process (e.g., 602) can access the additional data from a public channel (e.g., data server 612) associated with the application process. The data can include any number of types of dynamic data for presentation on the UI view (e.g., 205). For example, if the application process is associated with a sports event, the additional data can include one or more team names associated with the teams competing in the sports event, one or more personal names of individuals competing in the sports event, one or more scores of the teams or individuals, the remaining time of the event, and so on.
[0065] In another example, a system process (e.g., 602) may receive a database or dictionary of data before making a decision to display a user interface view (e.g., 205) on a lock screen (e.g., 250). For example, the system process may receive a list of each team associated with an application process. For example, if an application process is associated with the National Basketball Association (NBA) league, the system process can receive a list of each team name associated with the NBA. Further, the database can include a list of the names of each individual player associated with one or more of the NBA teams. For example, the list of personal names may include each person on one or more NBA team rosters. The database may also include indicators of associations between multiple data points within the database. For example, an indication can be provided that an individual player is associated with a particular team. For example, the database may indicate that Klay Thompson plays for the Golden State Warriors. In another example, each of the information such as team names and / or individual player names can be associated with an indicator. For example, the Golden State Warriors may be associated with the indicator "team_4", and Klay Thompson may be associated with the indicator "player_15". For example, each player associated with an application can be associated with a unique indicator. The system process can access additional data used to generate a user interface view (e.g., 205) associated with an NBA game in a public channel (e.g., data server 612). For example, the system process (e.g., 602) can read indicators such as "team_4; player_15; point_9". The system process may query the database using the received additional data, and the system process may determine to generate a user interface view using the information within a predefined area (e.g., 209) to indicate that the Golden State Warriors are playing the game and that player Klay Thompson has scored 9 points in the game.
[0066] FIG. 8 shows a flowchart of an exemplary process for providing a live session user interface view according to an aspect of the subject technology. The blocks of process 800 are described herein as occurring sequentially or linearly. However, multiple blocks of process 800 may occur in parallel. Additionally, the blocks of process 800 need not be executed in the order shown, and / or one or more of the blocks of process 800 need not be executed, and / or may be replaced by other operations.
[0067] In the example of FIG. 8, at block 802, an application process (e.g., App1 604a) sends a user interface template to a system process (e.g., 602) associated with a computing device (e.g., 100), and the user interface template defines one or more predefined regions (e.g., 209 and 211) of a user interface view (e.g., 205).
[0068] At block 804, the application process (e.g., 604a) accesses additional data (e.g., 221 and 223). At block 806, the application process (e.g., 604a) associates the additional data (e.g., 221 and 223) with at least one of one or more predefined regions (e.g., 209 and 211) of the user interface view (e.g., 205).
[0069] In block 808, an application process (e.g., 604a) sends additional data (e.g., 221 and 223) associated with one or more predefined regions to a system process (e.g., 602), and the additional data is included in a rendered version of a user interface view in the one or more predefined regions associated by the system process, and the rendered version of the user interface view is included in a lock screen (e.g., 250) associated with the computing device.
[0070] FIG. 9 shows a flowchart of an exemplary process for transitioning from a rendered user interface view to a newly rendered user interface view according to an aspect of the subject technology. The blocks of process 900 are described herein as occurring serially or linearly. However, multiple blocks of process 900 may occur in parallel. Additionally, the blocks of process 900 need not be executed in the order shown, and / or one or more blocks of process 800 need not be executed, and / or may be replaced by other operations.
[0071] In the example of FIG. 9, in block 902, a system process (e.g., 602) on a computing device (e.g., 100) requests a newly rendered view from an extension process running on the computing device, and the extension process is running in a restricted (e.g., sandboxed) mode on the computing device.
[0072] In block 904, a system process (e.g., 602) receives a newly rendered view (e.g., 205 shown in FIG. 3) from an extension process. In block 906, the system process (e.g., 602) displays a transition on the lock screen (e.g., 250) of the computing device from a previously rendered view corresponding to the extension process to the newly rendered view received from the extension process. For example, the currently rendered view may be associated with a sports event, and the currently rendered view may display the score of the sports event on the lock screen. The system process can determine an update to the score, and the system process can request a newly rendered view to show the updated score. For example, during a basketball game, the score can be 33 - 27. In one example, the first team may score a 2-point score, and the score of the basketball game can change to 35 - 27. The system process can determine the score change and request the newly rendered view to display the score of 35 - 27 on the lock screen.
[0073] As described above, aspects of the subject technology may include the collection and transfer of data from an application to other users' computing devices. In the present disclosure, in some instances, it is contemplated that this collected data may include personal information data that can be used to uniquely identify or identify a particular person. Such personal information data can include demographic data, location-based data, online identifiers, phone numbers, user activity data, user power consumption data, email addresses, home addresses, data or records related to a user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other personal information.
[0074] The present disclosure recognizes that the use of such personal information data in the present technology can be a use that benefits the user. For example, personal information data can be used in providing content on an electronic device. Further, other uses related to personal information data that benefit the user are also contemplated by the present disclosure. For example, health and fitness data can be used in accordance with the user's preferences to provide insights into general wellness or as positive feedback to individuals using technologies to pursue wellness goals.
[0075] In this disclosure, it is contemplated that entities responsible for the collection, analysis, disclosure, transfer, storage, or other use of such personal information data comply with well-established privacy policies and / or privacy practices. Specifically, such entities are expected to implement and consistently apply privacy practices that meet or exceed industry or government requirements for maintaining user privacy. Such information regarding the use of personal data should be prominently and readily accessible to users and should be updated as the data collection and / or use changes. Personal information from users should be collected only for legitimate uses. Further, such collection / sharing should be done after receiving user consent or based on other legitimate grounds specified in applicable laws. Moreover, such entities should consider taking all necessary measures to protect and secure access to such personal information data and to ensure that others with access rights to personal information data faithfully adhere to their privacy policies and procedures. Additionally, such entities can subject themselves to third-party evaluations to demonstrate their compliance with widely accepted privacy policies and practices. In addition, the policies and practices should be tailored to the specific types of personal information data being collected and / or accessed and should comply with applicable laws and standards, including jurisdiction-specific considerations that may impose higher standards. For example, in the United States, the collection or access to certain health data may be subject to federal and / or state laws such as the Health Insurance Portability and Accountability Act (HIPAA). On the other hand, health data in other countries may be subject to other regulations and policies and should be addressed accordingly.
[0076] Notwithstanding the above, the present disclosure also contemplates implementations in which a user can selectively block the use of personal information data or access to personal information data. That is, the present disclosure intends that hardware elements and / or software elements can be provided to prevent or block access to such personal information data. For example, when providing dynamic lock screen content on an electronic device, the technology can be configured to allow a user to select "opt-in" or "opt-out" of participating in the collection of personal information data during or at any time after service registration. In addition to providing "opt-in" and "opt-out" options, the present disclosure intends to provide notifications regarding access to or use of personal information. For example, a user can be notified when downloading an app that will access the user's personal information data, and then the user can be alerted again immediately before the personal information data is accessed by the app.
[0077] Furthermore, it is an aspect of the present disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. The risk can be minimized by restricting data collection and deleting data when it is no longer needed. In addition, when applicable in certain health-related applications, data anonymization can be used to protect a user's privacy. Anonymization can be facilitated, when appropriate, by removing identifiers, controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than the address level), controlling how data is stored (e.g., aggregating data across all users), and / or other methods such as differential privacy.
[0078] Therefore, while the present disclosure encompasses the use of personal information data for implementing one or more various disclosed embodiments, the present disclosure also contemplates that it is possible to implement those various embodiments without the need to access such personal information data. That is, the various embodiments of the present technology are not rendered inoperable by the absence of all or part of such personal information data.
[0079] FIG. 10 is a diagram showing an exemplary computing device capable of implementing aspects of the subject technology in accordance with one or more implementations. Computing device 1000 can be any computing device or server for generating the features and processes described above, including, but not limited to, a laptop computer, a smartphone, a tablet device, a wearable device such as a smartwatch, and / or a part thereof. Computing device 1000 can include various types of computer-readable media and an interface for various other types of computer-readable media. Computing device 1000 includes a permanent storage device 1002, a system memory 1004 (and / or buffer), an input device interface 1006, an output device interface 1008, a bus 1010, a ROM 1012, one or more processing units 1014, one or more network interfaces 1016, and / or subsets and variations thereof.
[0080] Bus 1010 collectively represents all system buses, peripheral buses, and chipset buses that communicatively connect a number of internal devices of computing device 1000. In one or more implementations, bus 1010 communicatively connects one or more processing units (s) 1014 to ROM 1012, system memory 1004, and persistent storage device 1002. From these various memory units, one or more processing units (s) 1014 retrieve the instructions to execute and the data to process in order to execute the processes of the present disclosure. One or more processing units (s) 1014 can be a single processor or a multi-core processor in different implementations.
[0081] ROM 1012 stores static data and instructions required by one or more processing units (s) 1014 and other modules of computing device 1000. On the other hand, persistent storage device 1002 may be a read and write memory device. Persistent storage device 1002 can be a non-volatile memory unit that stores instructions and data even when computing device 1000 is off. In one or more implementations, a mass storage device (such as a magnetic disk or optical disk, and its corresponding disk drive) may be used as persistent storage device 1002.
[0082] In one or more implementations, as the permanent storage device 1002, a removable storage device (such as a floppy disk, flash drive, and corresponding disk drive) may be used. Similar to the permanent storage device 1002, the system memory 1004 may be a read and write memory device. However, unlike the permanent storage device 1002, the system memory 1004 may be a volatile read and write memory such as random access memory. The system memory 1004 can store either instructions and data that one or more processing units (singular or plural) 1014 may require during execution. In one or more implementations, the processes of the present disclosure are stored in the system memory 1004, the permanent storage device 1002, and / or the ROM 1012. From these various memory units, one or more processing units (singular or plural) 1014 retrieve the instructions to be executed and the data to be processed in order to execute the processes of one or more implementations.
[0083] The bus 1010 is also connected to input and output device interfaces 1006 and 1008. The input device interface 1006 enables a user to communicate information to and select commands on the computing device 1000. Input devices that may be used with the input device interface 1006 can include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 1008 can enable, for example, the display of images generated by the computing device 1000. Output devices that may be used with the output device interface 1008 can include, for example, printers and display devices such as liquid crystal displays (LCDs), light emitting diode (LED) displays, organic light emitting diode (OLED) displays, flexible displays, flat panel displays, solid state displays, projectors, or any other device for outputting information.
[0084] One or more implementations can include a device that functions as both an input and output device, such as a touch screen. In these implementations, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback, and the input from the user can be received in any form, including acoustic input, voice input, or tactile input.
[0085] Finally, as shown in FIG. 10, bus 1010 also couples computing device 1000 to one or more networks and / or one or more network nodes via one or more network interfaces 1016. In this way, computing device 1000 can be part of a network, such as a computer network (e.g., a local area network (LAN), a wide area network (WAN), or an intranet), or the Internet. Any or all of the components of computing device 1000 can be used in conjunction with the present disclosure.
[0086] Implementations within the scope of the present disclosure can be realized, in part or in whole, using a tangible computer-readable storage medium (or one or more types of multiple tangible computer-readable storage media) that encodes one or more instructions. The tangible computer-readable storage medium can also be substantially non-transitory.
[0087] A computer-readable storage medium can be any storage medium that can be read, written to, or otherwise accessed by a general-purpose or special-purpose computing device, including any processing electronic device and / or processing circuit capable of executing instructions. For example, without limitation, a computer-readable medium can include any volatile semiconductor memory such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. A computer-readable medium can also include any non-volatile semiconductor memory such as ROM, PROM, EPROM, EEPROM, NVRAM, flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and millipede memory.
[0088] Furthermore, a computer-readable storage medium can include any non-semiconductor memory such as optical disk storage devices, magnetic disk storage devices, magnetic tapes, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, a tangible computer-readable storage medium can be directly coupled to a computing device, and in other implementations, a tangible computer-readable storage medium can be indirectly coupled to a computing device via, for example, one or more wired connections, one or more wireless connections, or any combination thereof.
[0089] The commands can be made directly executable or can be used to develop executable commands. For example, the commands can be realized as executable or non-executable machine code, or as high-level language instructions that can be compiled to generate executable or non-executable machine code. Further, the commands can also be realized as data or can include data. Computer-executable instructions can also be structured in any format including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As will be recognized by those skilled in the art, details including the number, structure, order, and structure of the instructions can be varied significantly without changing the basic logic, functionality, processing, and output.
[0090] The above discussion mainly refers to a microprocessor or multi-core processor that executes software, but one or more implementations are executed by one or more integrated circuits such as an ASIC or FPGA(s). In one or more implementations, such integrated circuits execute instructions stored in the circuit itself.
[0091] Those skilled in the art will understand that the various exemplary blocks, modules, elements, components, methods, and algorithms described herein can be implemented as electronic hardware, computer software, or a combination of both. Above, to show this interchangeability of hardware and software, the various exemplary blocks, modules, elements, components, methods, and algorithms have been generally described in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the design constraints imposed on the overall system and the individual application. Those skilled in the art will be able to execute the described functionality in various ways for each individual application. The various components and blocks may be arranged differently (e.g., arranged in a different order or divided differently) without departing from the scope of the technology of the present application at all.
[0092] It should be understood that any particular order or hierarchy of blocks in the disclosed process is an example of an exemplary approach. Based on design preferences, it is understood that the particular order or hierarchy of blocks within the process may be rearranged, or that all of the blocks illustrated may be executed. Any of the blocks may be executed simultaneously. In one or more implementations, multitasking and parallel processing may be advantageous. Further, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components (e.g., computer program products) and systems may generally be integrated together into a single software product or packaged into multiple software products.
[0093] As used in the specification and claims of this application, the terms "base station", "receiver", "computer", "server", "processor", and "memory" all refer to electronic or other technical devices. These terms exclude a person or group of persons. For the purposes of this specification, the term "display" or "displaying" means displaying on an electronic device.
[0094] As used herein, the phrase "at least one" preceding a series of items modifies the list as a whole, rather than each element of the list (i.e., each item), together with the terms "and" or "or" that separate any of the items. The phrase "at least one" does not require at least one selection of each of the listed items; rather, the phrase allows for the meaning of including at least one of any one of the items, and / or at least one of any combination of the items, and / or at least one of each of the items. By way of example, the phrases "at least one of A, B, and C" or "at least one of A, B, or C" each refer to only A, only B, or only C, any combination of A, B, and C, and / or at least one of each of A, B, and C.
[0095] The predicates "configured to", "operable to", and "programmed to" do not mean a particular tangible or intangible modification of an object; rather, they are intended to be used interchangeably. In one or more implementations, a processor configured to monitor and control an operation or component may also mean that the processor is programmed to monitor and control the operation or that the processor is operable to monitor and control the operation. Similarly, a processor configured to execute code can be interpreted as a processor programmed to execute the code or operable to execute the code.
[0096] One aspect, that aspect, another aspect, some aspects, one or more aspects, one implementation, that implementation, another implementation, some implementations, one or more implementations, one embodiment, that embodiment, another embodiment, some embodiments, one or more embodiments, one configuration, that configuration, another configuration, some configurations, one or more configurations, the technology of the present application, the disclosure, this disclosure, other variations thereof, and similar phrases are for convenience only, and the disclosure regarding such phrases (singular or plural) is not meant to imply that the disclosure is essential to the technology of the present application or that such disclosure applies to all configurations of the technology of the present application. The disclosure regarding such phrases (singular or plural) can apply to all configurations, or one or more configurations. The disclosure regarding such phrases (singular or plural) can provide one or more examples. Phrases such as an aspect or some aspects can refer to one or more aspects, and vice versa, and this applies similarly to the other aforementioned phrases.
[0097] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration". Any embodiment described herein as "exemplary" or "an example" should not necessarily be construed as preferred or advantageous over other implementations. Further, to the extent that terms such as "include", "have", etc. are used in the specification or claims, such terms are intended to be inclusive in the same manner as the term "comprise" as construed when "comprise" is used as a transitional term in the claims.
[0098] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure, whether known or later coming to be known to those skilled in the art, are hereby expressly incorporated by reference and intended to be encompassed within the claims. Further, nothing disclosed herein is dedicated to the public, whether or not such disclosure is explicitly recited in the claims. No element of any of the claims is to be construed under the provisions of 35 U.S.C. § 112, paragraph (f), unless the element is expressly recited using the phrase "means for" or, in the case of a method claim, the element is not recited using the phrase "step for".
[0099] The foregoing description is provided to enable a person skilled in the art to make and use the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein can be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but rather should be accorded the full scope consistent with the language of the claims, and references to singular elements are not intended to mean "one and only one" unless specifically stated otherwise, but rather "one or more". Unless otherwise noted, the term "some" refers to one or more. Pronouns in the masculine form (e.g., he) include the feminine and neuter genders (e.g., she and it), and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the disclosure of the present application.
Claims
1. Receiving, by a system process executing on a computing device and from an application process executing on the computing device, a user interface template that defines one or more predefined regions of a user interface view; Receiving, by the system process, additional data subsequent to receiving the user interface template; Rendering, by the system process according to the user interface template, the user interface view that is included on a lock screen associated with the computing device, wherein the rendered user interface view includes the additional data included in the one or more predefined regions.
2. Receiving, from the application process, updated additional data; Replacing the additional data with the updated additional data. The method according to claim 1, further comprising.
3. The method according to claim 1, wherein receiving the additional data further comprises receiving the additional data from the application process.
4. Receiving, by the system process and from the application process, an identifier associated with a channel of a remote server, the channel publishing the additional data; Subscribing, by the system process, to the channel; Receiving, by the system process and from the remote server, the additional data. The method according to claim 1, further comprising.
5. The method according to claim 1, wherein the system process is capable of simultaneously rendering a plurality of user interface views on the lock screen.
6. Determining, by the system process and at least partially based on a lack of interaction with the lock screen, a suspension of updates associated with a user interface view rendered on the lock screen. The method according to claim 1, further comprising.
7. The method according to claim 1, wherein a frequency of an update to the user interface view rendered on the lock screen is determined based at least in part on the additional data. **Claim 8** The user interface template is a first user interface template among a plurality of user interface templates, receiving, by the system process and from the application process, an indication of at least one of the plurality of user interface templates; rendering, by the system process, the user interface view based at least in part on the indication of the at least one of the plurality of user interface templates, the method according to claim 1. **Claim 9** The user interface view is associated with a session corresponding to a physical world event, and the system process removes the user interface view from the lock screen based at least in part on an end of the physical world event, the method according to claim 1. **Claim 10** sending, by an application process, to a system process associated with a computing device, a user interface template that defines one or more predefined regions of a user interface view; accessing, by the application process, additional data; associating the additional data with at least one of the one or more predefined regions of the user interface view; sending, by the application process, to the system process, the additional data associated with the one or more predefined regions, wherein the additional data is included in a rendered version of the user interface view in the one or more associated predefined regions by the system process, and the rendered version of the user interface view is included in a lock screen associated with the computing device, the method comprising. **Claim 11** Determining updated additional data by the application process; Sending the updated additional data to the system process by the application process; The method according to claim 10, further comprising.
12. The application process publishes the additional data to a channel of a remote server, to the channel associated with the application process; The application process sends an identifier associated with the channel to the system process, the system process being able to subscribe to the channel to receive the additional data; The method according to claim 10, further comprising.
13. The application process according to claim 10, wherein the application process associates the additional data with a template identifier, the template identifier being associated with the user interface template.
14. The user interface template is a first user interface template; Generating a second user interface template by the application process; Sending the second user interface template to the system process by the application process; The method according to claim 10, further comprising: sending, by the application process, an indication to the system process for rendering the user interface view using the first user interface template.
15. The application process generates a plurality of user interface templates, and the application process sends an indication to the system process for rendering the user interface view using at least two of the plurality of user interface templates. The method according to claim 10.
16. The additional data is associated with a physical world event; Determining the end of the physical world event by the application process; The method according to claim 10, further comprising transmitting, by the application process, an indication of the end to the system process for the physical world event.
17. Requesting, by a system process associated with a computing device, a newly rendered view from an extension process running on the computing device in sandbox mode; Receiving, by the system process, the newly rendered view from the extension process; Displaying, by the system process, a transition on a lock screen of the computing device from a previously rendered view corresponding to the extension process to the newly rendered view received from the extension process. A method comprising:
18. The method according to claim 17, wherein the transition includes an animation.
19. The extension process is a first extension process, Requesting, by the system process, a second newly rendered view from a second extension process running in a second sandbox mode; The method according to claim 17, further comprising displaying, by the system process, a transition on the lock screen from the first newly rendered view to the second newly rendered view.
20. The method according to claim 17, wherein the previously rendered view corresponds to a user interface template associated with data received from an application process, and the newly rendered view corresponds to the user interface template associated with updated data received from the application process.
Citation Information
Patent Citations
Mobile communication terminal, data communication detection device, data communication detection method, and program
JP2013247664A
Power saving application update for portable electronic devices
JP2014517375A
Device, information processing method and program
JP2016218517A
METHOD AND MOBILE DEVICE TO DISPLAY WIDGETS ON MOBILE DEVICES
JP2016524744A
Information control device and display changing method
JP2020009037A