Dynamically resizable content of electronic device
By providing status and transition definitions in the system process of electronic devices, the UI view is dynamically adjusted on the lock screen, solving the problems of data display and security in the locked state, achieving an efficient and privacy-protected user interface, reducing the unlocking frequency , improves the device and user experience.
Patent Information
- Application Number
- CN202380039216.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-04-11
- Filing Date
- 2023-05-09
- Publication Date
- 2024-12-20
AI Technical Summary
In the locked state, existing electronic devices are difficult to efficiently display dynamic data associated with applications, while maintaining user privacy and device security, and users need to unlock frequently to continue monitoring physical world events, resulting in waste of resources and inefficiency.
By providing state definitions, trigger definitions and transition definitions to system processes, the UI view is animated to respond to user interaction and data changes on the lock screen, allowing dynamic data to be displayed without allowing underlying applications to receive user interaction information, achieving energy efficiency and Efficient display of resources.
Provide energy-efficient and resource-efficient UI views in locked state, maintain user privacy and device security, reduce the need for repeated unlocking, and improve user experience and device efficiency.
Smart Images

Figure CN119173852A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of priority to U.S. Provisional Patent Application No. 63 / 340,418, filed on May 10, 2022, entitled “Dynamically Resizable Content for Electronic Devices,” the disclosure of which is hereby incorporated herein in its entirety. Technical Field
[0003] This specification relates generally to electronic devices, including, for example, dynamically resizable content of electronic devices. Background Art
[0004] Electronic devices typically include applications that provide information for display in a user interface of the application. To access information from an application, a user typically needs to unlock the electronic device, launch the application, wait for the application to launch, and navigate to a relevant portion of the user interface of the application that displays the information. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Certain features of the subject technology are set forth in the appended claims. However, for illustrative purposes, several specific implementations of the subject technology are set forth in the following figures.
[0006] Figure 1 Illustrated are perspective views of example electronic devices in which various aspects of the subject technology may be implemented.
[0007] Figure 2 A dynamically resizable user interface (UI) view in a first state is illustrated according to one or more implementations.
[0008] Figure 3 A dynamically resizable UI view in a second state is illustrated according to one or more implementations.
[0009] Figure 4 A dynamically resizable UI view in a third state is illustrated according to one or more implementations.
[0010] Figure 5 A block diagram of an example electronic device for obtaining application state information for an application UI view according to one or more specific implementations is illustrated.
[0011] Figure 6 A block diagram of an example electronic device that generates an application UI view for display in a first state according to one or more specific implementations is illustrated.
[0012] Figure 7 A block diagram of an example electronic device that animates transitions between states of an application UI view for display according to one or more implementations is illustrated.
[0013] Figure 8 A flow diagram illustrating an example process for providing state transitions for user interface views in accordance with aspects of the subject technology.
[0014] Fig. 9 A flow chart illustrating an example process for operating an application at an electronic device to provide dynamic state transitions of user interface views in accordance with aspects of the subject technology.
[0015] Fig.10 An example computing device is illustrated that can be used to implement aspects of the subject technology. DETAILED DESCRIPTION
[0016] The specific description shown below is intended to be a description of various configurations of the subject technology and is not intended to represent the only configuration that the subject technology can be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details intended to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details described herein, and one or more other specific implementations can be used to practice. In one or more specific implementations, structures and components are shown in block diagram form to avoid blurring the concepts of the subject technology.
[0017] In one or more specific implementations, an application provides a system process (or a user interface display process separate from the operating system) with multiple states of the application's user interface (UI) view, and one or more transition definitions, each of which defines a transition between two of the multiple states. Each of the multiple states can specify a display element, the size of the display element, and an identifier of the display element. When the user or the content of the UI view triggers a change from one of the multiple states of the UI view to another of the multiple states, the system process animates the change according to the one or more transition definitions. In one or more specific implementations, the application provides system animated transitions between application UI states, and provides application data to be displayed in the presented UI view.
[0018] Figure 1 An exemplary electronic device that can display content and / or a dynamically resizable UI view is shown in FIG. Figure 1 In the example of FIG. 1 , the electronic device 100 has been implemented using a housing that is small enough to be portable and carried by a user (e.g., Figure 1The electronic device 100 may be a handheld electronic device such as a tablet computer, a smart phone, a smart watch, a laptop computer, etc. Figure 1 As shown, electronic device 100 includes a display such as display 110 mounted on the front face of housing 106. Electronic device 100 includes one or more input / output devices (such as a touch screen incorporated into display 110), buttons or switches (such as button 104), and / or other input-output components disposed on or behind display 110 or disposed on or behind other portions of housing 106. Display 110 and / or housing 106 include one or more openings to accommodate button 104, speakers, light sources, or cameras.
[0019] exist Figure 1 In the example of FIG. 1 , housing 106 includes openings 108 on a bottom sidewall of housing 106. One or more of openings 108 form ports for audio components. Housing 106, sometimes referred to as a shell, can be formed of plastic, glass, ceramic, fiber composite materials, metal (e.g., stainless steel, aluminum, etc.), other suitable materials, or a combination of any two or more of these materials.
[0020] Figure 1 The configuration of the electronic device 100 is merely illustrative. In other specific implementations, the electronic device 100 can be a computer, such as a computer integrated into a display (such as a computer monitor), a laptop computer, a wearable device (such as a smart watch, a hanging device or other wearable device or a micro device), a media player, a gaming device, a navigation device, a computer monitor, a television, a headset, or other electronic equipment with a display. In some specific implementations, the electronic device 100 can be provided in the form of a wearable device such as a smart watch. In one or more specific implementations, the housing 106 may include one or more interfaces for mechanically coupling the housing 106 to a strap or other structure for fixing the housing 106 to the wearer.
[0021] Figure 2 An example of a dynamically resizable UI view 205 displayed by an electronic device 100 is illustrated. In some embodiments, the UI view 205 is a system UI view (e.g., a view provided by an operating system of the electronic device 100). In one or more specific implementations, the UI view 205 may be a UI view of a widget. Figure 2 As illustrated, UI view 205 is displayed by lock screen 250 of the electronic device. However, in some embodiments, the electronic device is configured to display a dynamically resizable UI view on any one of a lock screen (eg, lock screen 250), a home screen, and the like.
[0022] In some embodiments, UI view 205 is a UI view displayed by a system process.
[0023] In some implementations, the system process generates the UI view 205 based on the 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 based on 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.
[0024] In some implementations, the UI view includes at least one data element (e.g., first element 209 or second element 211) associated with system data (e.g., battery indicator, signal strength indicator, or timer). In some implementations, the UI view includes at least one data element (e.g., first element 209 or second element 211) associated with application data (e.g., fitness tracking data, sports scores, etc.).
[0025] like Figure 2 As shown, when the electronic device 100 is in a locked state, the electronic device 100 displays a lock screen 250. For example, the electronic device 100 may include a housing 106 and a display 110 that displays the lock screen 250. Figure 2 In the example of , the lock screen 250 includes an unlock feature 219. The user of the electronic device 100 can select the unlock feature 219 to initiate an unlock procedure (eg, a procedure in which the user provides and / or the device obtains authentication information to unlock the electronic device). Figure 2 In the example of , the lock screen 250 also includes a lock indicator 201 indicating that the electronic device is locked. In one or more specific implementations, when the electronic device 100 receives the authentication information, and before the user provides additional interaction to navigate away from the lock screen 250 (e.g., navigate 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 period of time while the lock screen 250 continues to be displayed.
[0026] exist Figure 2 In the example of , the lock screen 250 also includes an operator indicator 212, a signal strength indicator 214, a battery indicator 216, and a functional 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 specific implementations, one or more of the operator indicator 212, the signal strength indicator 214, the battery indicator 216, and the functional element 218 are displayed in a dynamically resizable UI view. Figure 2As shown, the lock screen 250 may also include a background 206 (e.g., an image or color pattern), a dynamically resizable UI view 205 (e.g., a UI view in one or more states defined by a corresponding application or system process installed at the electronic device 100), and may include publicly available data such as time 208 and date 210. Figure 2 In the example of the electronic device 100, 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 authentication information from a user of the electronic device. In other examples, the electronic device 100 can obtain biometric or non-biometric (e.g., passcode) authorization information from other sensors and / or input components (such as a touch screen integrated into the display 110, or a keyboard or other input interface of the electronic device 100).
[0027] exist Figure 2 In the example of , UI view 205 includes background 207, first element 209, and second element 211 within border 215. However, in other examples, UI view 205 can include any number of elements (e.g., 209). As shown, first element 209 can include a display of data 221. Second element 211 can include a display of data 223. Figure 2 In the example of , UI view 205 is a bordered UI view having a border 215 separating UI view 205 from background 206. In one or more other specific implementations, UI view 205 can be a borderless display element. In the borderless state of UI view 205, first element 209 and / or second element 211 and / or second element 211 and / or their respective associated data 221 and data 223 can be displayed as appearing as content integrated with background 206.
[0028] 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) is obtained by the electronic device from an application running on the electronic device. In some variations, one or more data (e.g., data 221 and / or data 223) displayed by a UI view (e.g., 205) is obtained by the electronic device from a remote server (e.g., remote from device 100) associated with the UI view.
[0029] In one illustrative example, UI view 205 may include a single graphical display element (eg, first element 209) for a timer value of a countdown timer. In various implementations, the data displayed by the single graphical display element may be obtained by the electronic device from a timer application running on the electronic device.
[0030] In another illustrative example, UI view 205 may include one or more graphical display elements (e.g., first element 209 and / or second element 211) of a sports-related application installed at electronic device 100. The sports-related application may be inactive when UI view 205 is displayed. In this example, data 221 may be the current score of the first person or team currently participating in a competitive sports event (e.g., a basketball game, a rugby game, a football game, a hockey game, a golf game, a chess game, a soccer game, a tennis game, a fencing game, a bowling game, a curling game, etc.). In this example, data 223 may be the current score of the second person or team currently participating in (e.g., against the first person or team) a sports event. In various specific implementations, when the sports-related application at the electronic device is inactive at the electronic device 100, data 221 and data 223 may be obtained by the electronic device from a server associated with the sports-related application. In this way, UI view 205 may display dynamic (e.g., current, real-time) data without having to operate the sports-related application.
[0031] The examples of sports-related applications and sporting events are merely illustrative. In another illustrative example, the user of the electronic device 100 may be waiting for or riding in a carpool vehicle associated with a carpool application installed at the electronic device 100. The user can view the location, estimated arrival time, estimated cost, or other dynamic data of the carpool vehicle in the complete user interface of the carpool application (e.g., in the complete user interface of the carpool application, such as a user interface generated by the carpool application rather than by the system process). In this example use case, when the UI view 205 (generated by the system process) is displayed instead of the complete user interface of the carpool application (generated by the application), the UI view 205 can display some or all of the data associated with the carpool vehicle. For example, the first element 209 can display data 221 corresponding to the current location of the carpool vehicle, and the second element 211 can display data 223 corresponding to the estimated arrival time of the carpool vehicle.
[0032] Generally speaking, UI view 205 can be a system-generated system-resizable UI view (e.g., a system-generated notification, a status bar UI view, a toolbar UI view, a system tray view, a taskbar view, or other system-generated UI view that displays system-generated data) or a system-generated application-specific resizable UI view that is separate from the application's complete (application-generated) UI and can be displayed when the application's complete UI is inactive (e.g., minimized or closed). For example, the application's complete UI can be resized by providing user-provided resizing input to the application for the application to modify the complete UI. In contrast, UI view 205 can be resized by the system process of electronic device 100 without providing any user input information to the application (e.g., by animating the resizing and / or status update of the UI view based on state information, transition information, and / or trigger information previously received from the application).
[0033] exist Figure 2 In the example of , UI view 205 is displayed in a first state. In the first state, UI view 205 is a first size and includes background 207, border 215, first element 209 and second element 211. The first state can be defined by the underlying application of UI view 205. For example, the first state can be defined by the underlying application before the electronic device displays UI view 205. In one or more specific implementations, Figure 2 The first state illustrated in the example of may be one of several states of the UI view 205 defined by the underlying application.
[0034] For example, Figure 3 The electronic device 100 shows a UI view 205 in a state similar to Figure 2 An example of a second state that is different from the illustrated first state. Figure 3 In the example of , UI view 205 is in the second state. Figure 3 As shown in the example of FIG. 1 , in the second state, the UI view 205 has a Figure 2 The first size of the UI view 205 in the first state is larger than the second size. Figure 3 In the example of FIG. 1 , the UI view 205 includes the same first element 209 and the second element 211 (displaying respective first data 221 and second data 223 ), but the first element 209 and the second element 211 have different Figure 2The first element 209 and the second element 211 in the first state of the UI view 205 are larger in size. Before displaying the UI view 205 in the first state or the second state, the relative sizes of the UI view 205, the first element 209 and the second element 211 can be defined by the underlying application, such as by providing the state definitions of the first state and the second state to the system process of the electronic device 100.
[0035] exist Figure 3 In the example of Figure 2 In the first state, the third element 300 is not included in the UI view 205. As shown, the third element 300 includes data 301. Data 301 may include static or dynamic data. As an example, the static data may include application-specific data (e.g., a logo, etc.), which is independent of the events associated with data 221 and data 223.
[0036] In one or more specific implementations, in response to Figure 2 In the first state, the UI view 205 can be viewed from the user's Figure 2 The first state shown transitions to Figure 3 For example, when Figure 2 When UI view 205 is displayed in the first state of the electronic device 100, the user of the electronic device 100 can tap, swipe, or provide an unlock input at or near the location of UI view 205 to cause the size of UI view 205 to expand. For example, the user may want to view more information about the sporting event, not just the Figure 2 You may want to display the score in the first state of a sporting event, or you may want to view a more graphical display of the score of the sporting event.
[0037] In one or more specific implementations, in response to changes in data associated with UI view 205, UI view 205 may also or alternatively be updated from Figure 2 The first state shown transitions to Figure 3 For example, if UI view 205 is in the second state shown in Figure 2 In the first state of the UI view 205, the score of the sporting event is displayed. When the individual or team participating in the sporting event scores, the UI view 205 can (e.g., temporarily) expand to Figure 3 In this example, the data 301 of the third element 300 may include a notification of a score update (e.g., including the name of the individual or team that scored). In one or more specific implementations, the UI view 205 may be configured by its underlying application to return to the state after a period of time after the notification is displayed with the third element 300. Figure 2 The first state, or remains in the second state, until a new trigger causes a state change.
[0038] In one or more specific implementations, the electronic device 100 and / or the application underlying the UI view 205 can configure one or more triggers (e.g., user interaction, update of data and / or movement or change of other content) that cause the system process of the electronic device 100 to change the UI view 205 from Figure 2 The first state changes to Figure 3 For example, before displaying UI view 205 (e.g., before the underlying application becomes inactive), the underlying application may provide state definitions that include trigger definitions for various triggers between various state combinations, and include definitions of states resulting from the various triggers.
[0039] In one or more specific implementations, in addition to providing one or more states (e.g., including Figure 2 The first state and Figure 3 In addition to the state definition of the second state of the UI view 205, the underlying application can also provide one or more transition definitions to the system process of the electronic device 100. In one or more specific implementations, the transition definitions provided from the application to the system process can each define a transition between two states of the multiple states of the UI view 205. For example, the underlying application of the UI view 205 can provide a transition definition to the system process of the electronic device 100, and the transition definition defines the transition from Figure 2 The first state to Figure 3 The second state transitions to various aspects of the display.
[0040] In one or more specific implementations, the transition definition can define the UI view 205 from Figure 2 The first state to Figure 3 The transition definition may also define an animation of the transition of the first element 209 from the size of the first element 209 in the first state to the size of the first element 209 in the second state. As the UI view 205 grows to include space for the third element 300, the transition definition may also define an animation of the newly added third element 300. For example, the transition definition may define an animation in which the third element appears to fade in, slide in, or solidify from the particleized view as the size of the border 215 expands during the transition. As another example, the transition definition may define the rate at which the border 215 of the UI view 205 expands, and / or whether the border 215 expands to the size defined for the border 215 in the state definition of the second state and stops expanding, or whether the border 215 expands beyond the size defined for the border 215 in the state definition of the second state and quickly returns to the size defined for the border 215 in the state definition of the second state.
[0041] Figure 2 and Figure 3 The example states of the UI view 205 are just two of many different states of the UI view 205 that can be defined by the underlying application of the UI view 205 at the electronic device 100.
[0042] For example, Figure 4 An example of the third state of the UI view 205 is illustrated. Figure 4 In the example, Figure 2 The first state and Figure 3 In the second state, the size of the border 215 of the UI view 205 is smaller than the size of the border 215 of the UI view 205. In this example, the amount of data displayed in the UI view 205 in the third state is also reduced relative to the amount of data displayed in the UI view 205 in the first state and the second state. In this example, the UI view 205 does not include Figure 2 and Figure 3 The second element 211 or the third element 300 included in the illustrated first state and the second state. In one or more specific implementations, Figure 4 The data 221 of the first element 209 of the UI view 205 may be a countdown timer generated by a system process, system data (eg, battery life, signal strength, etc.), calendar data, etc.
[0043] In one or more specific implementations, the system process or underlying application of UI view 205 may Figure 4 The third state shown in is defined as including only the first element 209 and its data 221, and it is also possible to define Figure 2 The first state to Figure 4 The third state between Figure 3 The second state to Figure 4 For example, the underlying application may define when the UI view 205 changes from Figure 2 The first state changes to Figure 4 The third state or from Figure 3 The second state changes to Figure 4 The system process of the electronic device may further include an animation that removes the second element 211 and its dynamic data 223 when the UI view 205 is in the third state. For example, when implemented by the system process, the animation in the defined transition may cause the second element 211 and / or the third element 300 to appear to fade out, blur out, or particle and disappear as the border 215 of the UI view 205 becomes smaller. In one or more specific implementations, the system process of the electronic device may also animate the disappearance or appearance of the border 215 during the state transition between the borderless state and the bordered state of the UI view 205.
[0044] In one or more specific implementations, the underlying application of the UI view 205 may also define trigger definitions, which cause the UI view 205 to Figure 4 The third state to Figure 2 The first state, from Figure 4 The third state to Figure 3 The second state, from Figure 2 The first state to Figure 4 of the third state, and / or from Figure 2 The first state to Figure 4 As described herein, the underlying application of UI view 205 may provide state definitions, trigger definitions, and / or transition definitions for various transitions between various states of UI view 205 to the system process of electronic device 100 before UI view 205 is displayed. In one or more specific implementations, the trigger definition that defines a trigger that triggers a transition between multiple states of another UI view such as UI view 205 may be incorporated into the transition definition of multiple states of the UI view, may be incorporated into the state definition, and / or may be defined by the system process of electronic device 100.
[0045] exist Figures 2 to 4 In the example of , UI view 205 is shown as being displayed on the lock screen 250 of the electronic device 100, as an example of a screen that can display a resizable UI view. In a specific implementation where UI view 205 is displayed on the lock screen and is resizable, UI view 205 can provide various technical advantages. For example, once the device is locked, in some devices, the entire system including application data associated with applications installed at the electronic device can be encrypted. In order for a user to regain access to the data and / or functions of the electronic device, the user is typically required to provide authentication information that proves to the device that the user is an authorized user. As an example, the authentication information may include a passcode entered by the user, or biometric authentication information such as fingerprint, voiceprint, or facial feature information.
[0046] After a lock event of the electronic device, the electronic device may display a lock screen. When the electronic device is locked and the lock screen is displayed, the user may provide authentication information and / or the device may automatically obtain authentication information (e.g., by obtaining imaging or depth data associated with the user's finger or face) and unlock the device if the authentication information indicates that the user is an authorized user of the device.
[0047] In one or more use cases, a user of an electronic device may use an application installed at the electronic device to view or otherwise monitor ongoing events in the real world using the device. As an example, a sports-related application may be used to view or track scores of sporting events, a ride-sharing application may be used to monitor the location of a ride-sharing 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 may be used to monitor natural phenomena such as tides, moon phases, weather, etc.
[0048] In one or more specific implementations, for example, to prevent unauthorized access to an electronic device and / or manage the power usage of the device, the electronic device may be configured to automatically lock after a predetermined amount of time without receiving active user input. However, in many use cases, the user may expect to continue monitoring the physical world events that the application was watching or monitoring before locking the device. Typically, the user will provide authentication information and navigate back from the lock screen of the device to the application user interface (UI) previously used to watch or monitor the event. However, for the user, this may be a time-consuming and inefficient (e.g., including in terms of device power usage, components, and processing resources) way to continue monitoring physical world events. Therefore, it may be desirable to be able to display a resizable UI view including certain types of data (e.g., system data, time-related data, or dynamic data such as data associated with physical world events) on the lock screen of the electronic device. In this way, the user can be provided with the ability to continue using the electronic device to monitor physical world events without spending user and device resources on repeated authentication and unlocking procedures.
[0049] However, obtaining and displaying data associated with an application on a lock screen of an electronic device without allowing the application to access data and / or resources that are locked from access while in the locked state of the device is challenging. For example, it may be desirable to display data associated with an application while preventing the application itself from running on the electronic device and / or receiving information about user interactions with the lock screen of the electronic device (e.g., information that is typically protected by the device until the user provides authentication information and seeks to interact with the application).
[0050] Aspects of the subject technology can provide a resizable UI view when the electronic device is in a locked state in a manner that is energy efficient and maintains user privacy and / or device security, such as Figures 2 to 4UI view 205 of the electronic device 100. For example, by providing state definitions, trigger definitions, and / or transition definitions to the system process of the electronic device 100 before the electronic device 100 enters the locked state, the UI view 205 can be displayed on the lock screen 250 in a manner that appears to be responsive to user interactions, data triggers, and / or other content on the lock screen 250, without allowing the underlying application to receive information about user interactions with the electronic device or other content displayed on the lock screen when the electronic device 100 is in the locked state. In this way, the privacy that the user may desire can be maintained and protected when the user's device is locked.
[0051] Although various examples are described herein, in which the UI view 205 is displayed on a lock screen of an electronic device (such as Figures 2 to 4 In one or more specific implementations, aspects of the subject technology can provide a resizable UI view of the home screen in an energy-efficient and resource-efficient (e.g., in terms of processing and / or memory resources) manner, such as by allowing a system process to handle display aspects of the UI view of an application (e.g., resizing animations) while the application and / or the complete UI of the application is inactive at the electronic device. For example, whether the UI view 205 is displayed on the lock screen or home screen or any other screen of the electronic device 100, providing the state definition, trigger definition, and / or transition definition to the system process of the electronic device 100 before the electronic device 100 displays the UI view 205 can allow the UI view 205 to be displayed in an energy- and computing resource-efficient (e.g., in terms of processing and / or memory resources) manner by dynamically displaying the UI view 205 across multiple states without requiring operation of the underlying application.
[0052] In various specific implementations described herein, regardless of whether the resizable UI view is displayed on the lock screen or the home screen of the electronic device, in addition to the above-mentioned privacy, energy efficiency and / or computing resource efficiency advantages, various aspects of the subject technology can also provide advantages in developer and user efficiency. For example, the developer of the application can provide information to the system process of the electronic device, which allows the system process to display various aspects of the UI view of the application information in an animated manner, without the developer having to create or provide the code for the animation. As another example, when the user wants to view more or less information in the UI view, the user is provided with the ability to interact directly with the UI view (e.g., click, tap or squeeze) to cause the UI view to be resized, thereby allowing the display of increased or decreased data (e.g., rather than the user having to edit the device settings to create a new fixed size UI view to replace the current fixed size UI view). As another example, whether displayed on the lock screen or the home screen of the electronic device, the resizable UI view disclosed herein can allow the UI view to be automatically resized in response to data triggers. In this way, the additional information can be provided to the user when it is relevant to the user, which may be difficult or impossible in a fixed size UI view.
[0053] Further details of various aspects of the subject technology that can be used to display, update, and / or resize UI views on various screens, including the lock screen and the home screen, are provided below in conjunction with Figures 5 to 9 Let's discuss.
[0054] Figure 5 1 illustrates an example architecture that may be implemented by electronic device 100 in accordance with one or more implementations of the subject technology. For purposes of explanation, Figure 5 Part of the architecture is described by Figure 1 The electronic device 100 of the present invention is implemented, such as by a processor and / or memory of the electronic device; however, appropriate parts of the architecture can be implemented by any other electronic device. However, not all of the components depicted can be used in all specific implementations, and one or more specific implementations may include additional or different components than those shown in the figures. Changes in the arrangement and type of these components may be made without departing from the spirit or scope of the claims listed herein. Additional components, different components, or fewer components may be provided.
[0055] Figure 5 Various portions of the architecture may be implemented in software or hardware, including by one or more processors and memory devices containing instructions that, when executed by a processor, cause the processor to perform the operations described herein. Figure 5In the example of , the electronic device 100 includes hardware components, such as a display 110 and a memory 502. In this example, the electronic device 100 also includes one or more logical processes (such as a system process 500) and / or one or more applications 506. For example, the system process 500 and / or the one or more applications 506 can be logical processes executed by one or more processors of the electronic device 100 from the memory 502. The system process 500 can be, for example, a process defined in hardware and / or as part of an operating system of the electronic device 100.
[0056] exist Figure 5 In the example of , the electronic device 100 (e.g., memory 502) stores code for three applications 506 (e.g., "APP1", "APP2", and "APP3"). However, this is merely illustrative, and it should be understood that the electronic device 100 may store code for one application 506, two applications 506, more than three applications 506, or generally any number of applications 506. For example, the applications 506 may be pre-downloaded to the electronic device 100 and installed on the electronic device 100. One or more of the applications 506 may be associated with a UI view that displays data, which may be periodic, occasional, or continuous dynamic data (e.g., application-specific information, system status information, and / or information associated with physical world events discussed herein), while the applications 506 and / or the complete user interfaces of the applications 506 are inactive.
[0057] For example, Figure 5 As shown, one or more applications 506 can provide one or more state definitions of UI views to the system process 500. In this example, APP1 provides one or more APP1 state definitions for one or more corresponding states of the corresponding UI view of APP1 to the system process 500. Figure 5 As illustrated, system process 500 may store the state definition provided by APP1 in association with APP1 in memory 502 (eg, in an archive of state definitions).
[0058] For the purpose of this discussion, this paper combines Figures 2 to 4 The UI view 205 in question may be Figures 5 to 7 The UI view of the application 506 designated as APP1 in FIG. 200 (eg, APP1 may be the underlying application of the UI view 205). Figure 5As illustrated, one or more additional applications may also provide state definitions of their respective UI views to the system process 500 for storage in memory 502 in association with the applications (e.g., APP2 may provide APP2 state definitions to the system process 500, and APP3 may provide APP3 state definitions to the system process for storage in memory 502 in association with those respective applications 506).
[0059] exist Figure 5 In the example of FIG. 5 , the APP1 state definition provided from APP1 to the system process 500 includes information to be used by the system process 500 to display Figure 2 , Figure 3 and Figure 4 The UI view 205 is in the first state, the second state and the third state shown therein respectively. Figure 5 As shown, for the first UI view (eg, the UI view corresponding to UI view 205), Figure 1 ), APP1 status definition can include Figure 2 The first state (e.g., state 1), Figure 3 The second state (e.g., state 2) and Figure 4 Definition of a third state (eg, state 3).
[0060] As shown in the figure, the UI view Figure 1A state definition (e.g., UI view 205) may include a definition of one or more UI elements of the UI view, a definition of one or more UI state transitions of the UI view, a definition of the size of one or more UI elements of the UI view, an identifier of one or more UI elements of the UI view, a size of the UI view (e.g., the size of UI view 205), and / or a layout of the UI view (e.g., the layout of UI elements of UI view 205 relative to other UI elements, borders, background, etc. of the UI view). For example, for a first state of UI view 205, system process 500 may receive and memory 502 may store a definition of first element 209 (e.g., UI element 1), a definition of second element 211 (e.g., UI element 2), a definition of a transition of first element 209 from the first state to another state (e.g., state transition 1), a definition of a transition of second element 211 from the first state to another state (e.g., state transition 2), a size of first element 209 in the first state (e.g., UI element 1 size), a size of second element 211 in the first state (e.g., UI element 2 size), an identifier of first element 209 (e.g., UI element 1 identifier), an identifier of second element 211 (e.g., UI element 2 identifier), a size of border 215 of UI view 205 (e.g., UI view size), and / or a layout of UI view 205 (e.g., UI view layout). The UI view layout may define the positions of first element 209 and second element 211 within and relative to border 215 and / or relative to each other and / or other elements of the UI view (as examples).
[0061] UI element 1 may define a graphic object (e.g., a rectangular object including text, a rectangular object including an image, a circular object containing text or an image, etc.) and / or data (e.g., data 221, including the source of data 221) for display within the graphic object of the first element 209, an update rate of the data, and / or the color, background, and / or one or more other visual aspects of the first element 209. UI element 2 may define a graphic object (e.g., a rectangular object including text, a rectangular object including an image, a circular object containing text or an image, etc.) and / or data (e.g., data 223, including the source of data 223), an update rate of the data, and / or the color, background, and / or one or more other visual aspects of the second element 211. State transition 1 may define, for example, an animation type (e.g., blur in, blur out, pan in, pan out, fade in, fade out, particleization, snapshot, balloon, rotation, spin, flash, etc.) for the animation of the transition of the first element 209 from a first state to another state. State transition 2 may define, for example, an animation type (e.g., particle, snapshot, balloon, rotation, spin, flash, etc.) for the animation of transitioning the second element 211 from the first state to another state. In one or more specific implementations, if the application does not provide a transition definition for one or more elements, the system process 500 may store a default animation or may determine a transition definition based on the content of the UI view.
[0062] exist Figure 5 In the example of FIG. 1 , for the second state of UI view 205 (eg, UI view of APP1), Figure 1 ), in addition to the UI view in the second state and the state information of the first element and the second element, the state definition also includes information defining the third element 300 (e.g., UI element 3, UI element 3 size, UI element 3 identifier). In this example, state transition 1 may define an animation for transitioning the first element 209 from the second state to another state (e.g., the first state or the third state), state transition 2 may define an animation for transitioning the second element 211 from the second state to another state (e.g., the first state or the third state), and state transition 3 may define an animation for transitioning the third element 300 from the second state to another state. In this example, the UI element 1 size in the state definition of state 2 may be larger than the UI element 1 size in the state definition of state 1, the UI element 2 size in the state definition of state 2 may be larger than the UI element 2 size in the state definition of state 1, and the UI view size in the state definition of state 2 may be larger than the UI view size in the state definition of state 1 (e.g., Figure 2 and Figure 3 In this example, the UI view may define the third element 300 relative to the first element 209 and the second element 211 (eg, Figure 3 ) in the example above.
[0063] In one or more specific implementations, transition definitions such as state transition 1 and state transition 2 may include a single transition definition for a UI element that may be applied to any transition to or from the UI element in a state transition, or may include multiple transition definitions between specific state pairs and / or for specific transition directions between state pairs. In one or more specific implementations, transition definitions may be defined in one way, and a reverse transition may use the inverse transition of the defined transition, or transition definitions may be defined separately for transitions to and from specific states of a UI element.
[0064] exist Figure 5 In the example, Figure 4 The state definition of the third state (e.g., state 3) includes a fourth element (e.g., UI element 4, which can be Figure 4 In the example of the state transition 4, the state transition 4 may define an animation for the transition of the fourth element (e.g., the first element 209 or another different UI element) from the third state to the first state or from the third state to the second state. In this example, the UI element 4 size in the state definition of state 3 may be smaller than the UI element 1 size in the state definition of state 1 and the UI element 1 size in the state definition of state 2, and the UI view size in the state definition of state 3 may be smaller than the UI view sizes in the state definitions of states 1 and 2 (e.g., the UI view size such as the size of the border 215 or the border of the UI view). Figures 2 to 4 exemplified).
[0065] exist Figure 5 In the example, only the UI view Figure 1 (eg, UI view 205) of the APP1 state definition is visible. However, the system process 500 may receive and / or the memory 502 may store the UI view Figure 1 , state definitions of additional states of other UI views associated with the same application 506, and / or state definitions of one or more other UI views associated with other applications (e.g., APP2, APP3, etc.).
[0066] In one or more specific implementations, Figure 5 The state definitions shown (eg, APP1 state definition, APP2 state definition, and APP 3 state definition) may include Figure 5 All of the state definition information illustrated (for example, including transition definitions between various states and / or trigger definitions for triggering transitions). In one or more other specific implementations, Figure 5 The state definitions shown (e.g., APP1 state definition, APP2 state definition, and APP 3 state definition) separately provide transition definitions and / or trigger definitions from the application 506 to the system process 500. In one or more specific implementations, the transition definition can include a trigger definition. In one or more specific implementations, the state definition can include a trigger definition. In one or more specific implementations, the trigger definition can be determined by the system process 500.
[0067] In one or more specific implementations, the application 506 may provide state definitions and transition definitions to the system process 500 via a template (e.g., a single template or multiple templates may be used). In one or more specific implementations, the application 506 may provide state definitions and transition definitions to the system process 500 via an application programming interface (API). In one or more specific implementations, the application 506 may provide state definitions and transition definitions to the system process 500 via a file system in a template (e.g., the application 506 may store state definitions and / or transition definitions), and save the template in a known directory parsed by the system process 500 (e.g., the definition may be saved as a resource file of the application, etc.). In one or more specific implementations, the application 506 may provide state definitions and transition definitions to the system process 500 through a combination of one or more templates and one or more API calls (e.g., state definitions via templates and transition definitions via APIs, state definitions via templates and transition definitions via templates, state definitions via APIs and transition definitions via APIs, or state definitions via APIs and transition definitions via templates). In one or more implementations, the template can have a format usable by the system process 500 to render at least one UI view (eg, UI view 205 ) based on information included in the template.
[0068] Figure 5 The provision of the state definition illustrated in can be performed before the corresponding UI view (in which the state definition defines one or more states) is displayed, so that the system process 500 of the electronic device 100 can present a corresponding graphic with data, layout, size and / or other visual characteristics of the UI view in any of the various states defined in the state definition for at least a period of time when the application itself is inactive.
[0069] For example, Figure 6 The operation of the electronic device 100 that may be performed after the state definition has been provided from the application 506 to the system process 500 and stored in the memory 502 is illustrated. For example, when the electronic device 100 is in the locked state, and when the lock screen 250 of the electronic device 100 is displayed on the display 110 of the electronic device 100, the operation may be performed. Figure 6 The operation illustrated.
[0070] For example, Figure 6 As shown, when the system process 500 presents the UI view 205 for display by the display 110 of the electronic device 100, the application 506 of the electronic device 100 may be inactive. Figure 6 In the example of FIG. 5 , the system process 500 obtains from the memory 502 a UI view previously created by APP1 for APP1. Figure 1 The system process 500 provides the UI view presented by APP1 to the display 110 for display as the UI view 205 (for example, as Figure 2 ).
[0071] like Figure 6 As shown, the system process 500 may also receive APP1 data corresponding to APP1. The system process 500 may include some or all of the APP1 data in the UI view presented by APP1. For example, the APP1 data may include dynamic data. For example, the APP1 data may include Figure 2Data 221 and data 223. APP1 data can be received from APP1 and / or from a server that is remote from the electronic device 100 and associated with APP1. For example, in or using the state definition provided from the application 506 to the system process 500, the application 506 can provide one or more links to the communication channel for the system process to access APP1 data. For example, the system process 500 can use one or more links to subscribe to one or more publishing channels, and the application 506 publishes application-related dynamic data through these publishing channels. The publishing channel can be hosted by one or more servers associated with the application 506. In this way, when APP1 is not active at the electronic device, the system process 500 can receive APP1 data from the server associated with APP1. As an example, APP1 data may include score data of an ongoing sporting event from a server associated with a sports-related application installed on the electronic device 100, or may include location data of a carpooling vehicle from a carpooling server associated with a carpooling application installed on the electronic device 100, or location data of a delivery vehicle associated with a delivery application installed on the electronic device 100. In some implementations, the data is data stored on the device 100 (e.g., in memory, in non-volatile storage, in one or more hardware registers, etc.). In some implementations, the data is data generated by the electronic device 100 (e.g., the system process 500). For example, in the use case where the UI view 205 displays system data (e.g., battery information, timers, signal strength information, or other data not provided by an application), the system process can generate the data to be displayed in the UI view 205.
[0072] In one or more other specific implementations, some or all of the APP1 data may be received from APP1 before and / or during display of the UI view presented by APP1. For example, one or more of the applications 506 may also be provided with corresponding data extensions. The data extension may be a lightweight data provider that enables data from the application 506 to be updated without directly querying the data from the associated application 506, thereby bypassing the computationally expensive wake-up or launch of the application 506 to obtain updated data for display by the graphical element.
[0073] exist Figure 6 In the example of APP1, the UI view presented by APP1 (eg, the presented UI view 205) is presented by the system process 500 in a single state (eg, Figure 2 , Figure 3 or Figure 4 any status illustrated in ). Figure 7An example operation of the electronic device 100 for presenting a transition between two states of the UI view 205 without involving (eg, without waking up or otherwise operating) the underlying application APP1 is illustrated. Figure 7 As shown, when APP1 is inactive, the system process 500 can receive the UI view. Figure 1 A trigger may be provided to trigger a transition from one state (e.g., state 1) of an electronic device (e.g., UI view 205) to another state. For example, the trigger may be received via a user interface of the electronic device 100, such as by utilizing a touch-sensitive element of the display 110 to receive a user interaction with a UI view presented by APP1 of the displayed state 1. As another example, the trigger may be a data-driven trigger corresponding to an update of APP1 data (e.g., when an individual or team scores a point in a sporting event, or when a rideshare vehicle arrives at a pickup location or destination). In response to the trigger, the system process 500 may obtain one or more transition definitions for a transition from state 1 to another state, and may animate the transition on the display 110 according to the transition definitions. For example, as Figure 7 As shown, the system process 500 can generate an animated UI state transition presented by APP1 according to the transition definition, and provide the animated UI state transition presented by APP1 to the display 110 for display.
[0074] As an example, the system process 500 may receive an indication of an update to a score of a sporting event in the APP1 data. In response to the indication of an update to the score, the system process 500 may view the score from the UI of the APP1. Figure 1 State transition 1 and state transition 2 are obtained from the state 1 definition, and an animated UI state transition presented by APP1 from state 1 to state 2 can be generated based on the obtained state transition 1 definition and state transition 2 definition. The animated UI state transition presented by APP1 may include one or more animations of one or more elements of the UI view over time. For example, based on the corresponding state transition 1 definition and state transition 2 definition, the animated UI state transition presented by APP1 may include an animation of a first element 209 over time and an animation of a second element 211 over time. The animated UI state transition presented by APP1 may also include an animation of the introduction of a third element 300 in the UI view over time, and / or the entire UI view during the transition. Figure 1 Animation over time (eg, based on state transition 3 and / or other transition definition information previously received from APP1).
[0075] In one or more specific implementations, when a transition from one state to another state is triggered at system process 500 (e.g., by a user interaction with UI view 205 or with another element of the screen displaying UI view 205, by a data trigger, or by a movement or change of another element of the screen displaying UI view 205), system process 500 can identify (e.g., using UI element identifiers for the current state and the destination state) elements included in the current state of UI view 205 and the destination state of the UI view (e.g., in the transition from the current state to the destination state). Figure 2 The first state to Figure 3 The first element 209 and the second element 211 in the example of the transition from the current state of the UI view 205 to the second state), the element that is in the current state of the UI view 205 and is not in the destination state of the UI view 205 (for example, from Figure 3 The second state to Figure 2 The first state or Figure 4 ), and / or an element that is not in the current state of UI view 205 but in the destination state of UI view 205 (e.g., from Figure 2 The first state or Figure 4 The third state to Figure 3 The third element 300 in the example of the transition to the second state).
[0076] The system process 500 may then (e.g., based on application-provided transition definitions and / or system-level preferences) identify a first animation (e.g., a blended animation, such as an interpolated view based on a view of an element in the current state and a view of an element in the destination state) for an element included in the current state and the destination state. The system process 500 may also identify one or more second animations (e.g., fade-out, blur-out, pan-out, particle-ization, and disappearance animations, etc.) for one or more elements included in the current state but not included in the destination state. The system process 500 may also identify one or more third animations (e.g., fade-in, blur-in, pan-in, solidification from a particle-ization animation, etc.) for one or more elements not included in the current state but included in the destination state.
[0077] The system process 500 may also determine one or more timelines of transitions of the UI view 205 and / or one or more elements thereof without involving the underlying application (e.g., APP1). In one or more specific implementations, the timeline may be determined by the system process to accommodate other display content to be displayed, and the underlying application of the UI view 205 is unaware (and may not be authorized to know) these contents.
[0078] As an example, system process 500 can animate the transition of various elements of UI view 205 and / or the entire UI view 205 at various times and / or various rates based on system preferences and / or information not provided or accessible by the underlying application of UI view 205. For example, Figure 2 The size of the first element 209 is from Figure 2 The first state to Figure 3 The transition to the second state can occur at Figure 2 The size of the second element 211 is from Figure 2 The first state to Figure 3 As another example, before and / or faster than the transition from the second state of Figure 2 The first state to Figure 3 In the transition to the second state of , the system process 500 may animate the increase in size of the first element 209 and the second element 211 before or after (eg, and / or at different rates) the first element 209 and the second element 211 are animated. Figure 3 In one or more specific implementations, the system process 500 can determine the time (eg, one second, several seconds, or a fraction of a second) of the overall transition from the current state of the UI view 205 to its target state.
[0079] like Figure 7 As shown, in the system, the system process 500 can store transition time information 700, which can include one or more transition times and / or one or more transition curves (such as transition curve 702). For example, the transition curve 702 can define a linear or nonlinear progression of an inserted state between the current state of the UI view 205 and the destination state of the UI view 205. The transition curve 702 can also be used to control the progression of non-insertion animations (such as fade-in, fade-out, blur-in, blur-out, etc.). For example, Figure 7 The example transition curve 702 (if applied to an animation of a transition of an element of the UI view 205) would result in very small changes in the appearance of the element in the first half of the transition time, rapid changes in the element (according to the animation defined for the element) in the first third of the transition time, and slow changes (according to the animation defined for the element) in the last quarter of the transition time. In this way, the system process 500 can provide a dynamic and / or interactive display of the UI view 205 that can accommodate other content on the screen and give the appearance of application control without requiring operation of the underlying application of the UI view 205.
[0080] In one or more specific implementations, the transition curve 702 can be applied to an animation defined in a state definition (e.g., and / or in a separate transition definition). For example, the system process 500 can define a time (e.g., the total time of a state transition, such as one second, two seconds, four seconds, or a fraction of a second) and a curve (e.g., a transition curve 702, such as an easing-in curve, an easing-out curve, or a linear curve), and apply the cover to the animation for the system-defined time. For a linear curve, applying the curve to the animation may cause the animation to execute linearly within the system-defined time. For other example curves, the animation may be maintained until, for example, the last portion of the transition time (e.g., the last fifty percent).
[0081] like Figure 7 As illustrated, in one or more specific implementations, system process 500 may receive APP1 data while system process 500 is animating the transition, and the APP1 data may be included in the animated UI state transition presented by APP1 (e.g., such that the data may continue to be displayed and / or updated during the animated state transition of UI view 205).
[0082] Figure 8 A flowchart illustrating an example process for providing a dynamically resizable user interface view according to aspects 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. In addition, the blocks of process 800 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. In some embodiments, a system process (e.g., system process 500) of an operating system of an electronic device executes Figure 8 In some embodiments, the system process is a user interface view display process (e.g., a process for displaying widgets, etc.). In other embodiments, a user interface view display process (e.g., a process for displaying widgets, etc.) separate from the operating system of the electronic device executes Figure 8 process.
[0083] exist Figure 8 In the example of FIG. 8 , at block 802, a system process (e.g., system process 500) of an electronic device (e.g., electronic device 100) may receive a user interface view (e.g., UI view 506) from an application (e.g., application 506, such as “APP1” described herein) running on the electronic device. Figure 1or UI view 205), and one or more transition definitions, each transition definition defining a transition between two of the multiple states. In one or more specific implementations, each of the multiple states includes at least one display element (e.g., first element 209, second element 211, and / or third element 300), a size of the at least one display element (e.g., UI element N size), and an identifier of the at least one display element (e.g., UI element N identifier). In one or more specific implementations, the multiple states of the UI view correspond to at least one physical world event (e.g., a sporting event, a carpooling event, etc.). In one or more specific implementations, the user interface view can be a user interface view of a widget for an application.
[0084] At box 804, the system process can identify a trigger for a change from one of multiple states of the user interface view (e.g., a current state) to another of multiple states of the user interface view (e.g., a destination state). As described herein, a trigger can include a user interaction with the user interface view, a user interaction with another user interface view displayed simultaneously with the user interface view, a change in dynamic data displayed in the user interface view, a change in the size or position of other content displayed simultaneously with the user interface view, or other user or data triggers. In one or more specific implementations, the trigger can be an application-defined trigger defined in a state definition and / or a transition definition from an application. In one or more specific implementations, the trigger can be a system-defined trigger.
[0085] At block 806, in response to the trigger, the system process may implement a change from one of the multiple states of the user interface view to another of the multiple states of the user interface view according to one or more transition definitions (e.g., as described herein in conjunction with Figure 7 For example, the system process can implement the change in part by determining a time (e.g., a transition time) and a curve (e.g., transition curve 702) of the change and applying one or more transition definitions to the curve. In one or more implementations, before implementing the change (e.g., before animating the transition), the plurality of states can be archived by the system process (e.g., in memory 502). In one or more implementations, implementing the change can include displaying the change in an animated manner.
[0086] In one or more specific implementations, the plurality of states includes a first state (eg, Figure 2In one or more implementations, the system process implements the change by animating a transition of the first element using the first transition definition and animating a transition of the second element using the second transition definition.
[0087] In one or more specific implementations, before implementing the change, the system process may compare a set of elements of the first state with a set of elements of the second state. For example, before implementing the change, the system process may determine based on the comparison that a second state in the plurality of states includes a first element with a first identifier and a second element with a second identifier (e.g., in the first state corresponding to Figure 2 and the second state corresponds to Figure 3 in the example of the second state).
[0088] As another example, before implementing the change, the system process may determine, based on the comparison, that a second state in the plurality of states includes a first element with a first identifier and does not include a second element with a second identifier (e.g., when the first state corresponds to Figure 2 and the second state corresponds to Figure 4 In the example of the third state, or in the first state corresponding to Figure 3 and the second state corresponds to Figure 2 The first state or Figure 4 In this example, animating the transition of the second element using the second transition definition may include animating (e.g., by animating a fade-out, pan-out, blur-out, or particle-and-disappear animation) the removal of the second element from the user interface view.
[0089] In one or more specific implementations, the plurality of states includes a first state having a first element having a first identifier (e.g., Figure 2 The second element 211 has an identifier UI element 2 identifier), does not include a second state of the first element having the first identifier (for example, Figure 4 exemplified state) and a third state including a first element having a first identifier (e.g., Figure 3 For example, a first element may have a first size in a first state and a second size different from the first size in a third state (e.g., Figure 2and Figure 3 In one or more implementations, the third state including the first element having the first identifier also includes additional elements not included in the first state.
[0090] In one or more specific implementations, the plurality of states includes a first state in which the user interface view has a first size and a second state in which the user interface view has a second size (e.g., Figures 2 to 4 In one or more specific implementations, the first size and the second size of the user interface view are defined in a state definition received from the application.
[0091] In one or more specific implementations, when one of the multiple states of the user interface view is displayed, the system process receives application information from the application (e.g., as described herein in conjunction with Figure 7 The APP1 data) is displayed in an element of one of the multiple states of the user interface view. In one or more specific implementations, the system process may also receive additional application information of an element of one of the multiple states of the user interface view from the application (for example, as described herein in conjunction with Figure 7 In one or more implementations, the application information received from the application may include a pre-rendered image of the application information for display at a future time as dynamic data within one or more of the plurality of states of the UI view. In one or more implementations, the application information received from the application may include application information received from an application extension of the application.
[0092] In one or more specific implementations, when one of the multiple states of the user interface view is displayed, the system process receives application information from a server associated with the application (e.g., as described herein in conjunction with Figure 7 The APP1 data) is displayed in an element of one of the multiple states of the user interface view. In one or more specific implementations, the system process may also receive additional application information of an element of one of the multiple states of the user interface view from a server associated with the application (for example, as described herein in conjunction with Figure 7 The additional APP1 data described above) to be displayed within the element during implementation of the change.
[0093] Fig. 9A flowchart of an example process for operating an application at an electronic device to provide a dynamically resizable user interface view according to various aspects of the subject technology is illustrated. The blocks of process 900 are described herein as occurring sequentially or linearly. However, multiple blocks of process 900 may occur in parallel. In addition, the blocks of process 900 do not have to be executed in the order shown, and / or one or more blocks of process 900 do not have to be executed and / or may be replaced by other operations.
[0094] At block 902, an application (e.g., application 506, such as APP1) running on an electronic device (e.g., electronic device 100) may provide a system process (e.g., system process 500) of the electronic device with state definitions of a plurality of states of a user interface view, and one or more transition definitions, each of which defines a transition between two states of the plurality of states (e.g., as described herein in conjunction with Figure 5 In one or more specific implementations, each state of the plurality of states includes at least one display element, a size of the at least one display element, and an identifier of the at least one display element.
[0095] In one or more specific implementations, the application may provide state definitions and transition definitions via application programming (API). In one or more specific implementations, the application may provide state definitions and transition definitions via a file system (e.g., the application 506 may store the state definitions and / or transition definitions in a template and save the template in a known directory parsed by a system process). For example, the definition may be saved as a resource file of the application, etc. In one or more specific implementations, the application may provide state definitions and transition definitions through a combination of one or more templates and one or more API calls (e.g., state definitions via templates and transition definitions via APIs, state definitions via templates and transition definitions via templates, state definitions via APIs and transition definitions via APIs, or state definitions via APIs and transition definitions via templates). In one or more specific implementations, the template may have a format that can be used by a system process to present at least one UI view (e.g., UI view 205) based on the information included in the template.
[0096] At block 904, when the user interface view is in at least one of the plurality of states, an application running on the electronic device may provide application information (e.g., APP1 data) to be displayed by the system process in the user interface view. In one or more specific implementations, the application may provide the system process with more than one element for incorporating the user interface view (e.g., Figures 2 to 4 The first element 209, the second element 211 and / or the third element 300) described above displays application information.
[0097] In one or more specific implementations, the plurality of states includes a first state (eg, first element 209) in which the user interface view has a first size and includes a first element (eg, first element 209). Figure 4 exemplified state), and a second state (eg, Figure 2 The state or Figure 3 state illustrated). In one or more specific implementations, providing application information may include providing at least first application information (e.g., dynamic data 221) for display in conjunction with a first element when the user interface view is in a first state, and providing first application information (e.g., dynamic data 221) and second application information (e.g., dynamic data 223 and / or data 301) for display in conjunction with a second element when the user interface view is in a second state. In one or more specific implementations, providing application information may include, when the user interface view is in a first state that does not include the second element, the application providing second application information of the second element to the system process (e.g., the application may provide application information of an element regardless of whether the element is currently displayed). In this way, the system process can determine which application information to display without notifying the application of the display state of the UI view.
[0098] In one or more other implementations, the second application information may only be provided to the system process when the user interface view is in a state including the second element. For example, in one or more implementations, process 900 may also include receiving, by the application, state transition information from the system process indicating a transition from the first state to the second state. For example, the system process may provide the state transition information to the application in response to receiving a trigger at the system process (e.g., as described herein in conjunction with Figure 7 In one or more specific implementations, providing the application information may include, in response to receiving the state transition information, providing, by the application, second application information of the second element to the system process.
[0099] In one or more specific implementations, providing application information from an application to a system process may include providing first application information and second application information by providing one or more links to communication channels to the system process based on a state of a user interface view, the communication channels being used for the system process to access the first application information and the second application information. For example, the links may be used by the system process to subscribe to a publishing channel associated with the application, and a server associated with the application provides application information to one or more subscriber processes via the links. In this way, when the application is not active at the electronic device, the system process may receive application information from a server associated with the application based on the state of the UI view (e.g., Figure 6 and Figure 7 APP1 data in the example).
[0100] In one or more specific implementations, the application may also provide the system process with additional application information to be displayed by the system process in a user interface view during a transition from one of the multiple states to another of the multiple states (e.g., when the system process animates the transition according to the transition definition and when the application is inactive at the electronic device).
[0101] As described above, aspects of the subject technology may include the collection and delivery of data from applications to other users' computing devices. The present disclosure contemplates that, in some instances, the collected data may include personal information data that uniquely identifies or can be used to identify a specific person. Such personal information data may 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.
[0102] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit users. For example, the personal information data can be used to provide content on an electronic device. In addition, the present disclosure also anticipates other uses of personal information data that benefit users. For example, health and fitness data can be used according to the user's preferences to provide insights into their overall health, or can be used as positive feedback to individuals who use technology to pursue health goals.
[0103] The present disclosure envisions that entities responsible for collecting, analyzing, disclosing, transmitting, storing or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, it is expected that such entities will implement and consistently apply privacy practices that are generally recognized as meeting or exceeding the industry or government requirements for maintaining user privacy. Such information about the use of personal data should be prominently accessible to users and should be updated as the collection and / or use of data changes. The user's personal information should be collected only for legal use. In addition, such collection / sharing should only occur after receiving user consent or other legal basis specified in applicable law. In addition, such entities should consider taking any necessary steps to protect and safeguard access to such personal information data and ensure that other entities with access to personal information data comply with their privacy policies and procedures. In addition, such entities can subject themselves to third-party assessments to prove that they comply with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted for specific types of personal information data collected and / or accessed, and applied to applicable laws and standards, including specific considerations that are exclusive to jurisdictions that can be used to impose higher standards. For example, in the United States, the collection or access of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA); while health data in other countries may be subject to other regulations and policies and should be handled accordingly.
[0104] Regardless of the foregoing, the present disclosure also contemplates implementations in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates hardware elements and / or software elements to prevent or block access to such personal information data. For example, in the case of providing dynamic lock screen content on an electronic device, the present technology may be configured to allow users to choose to "opt in" or "opt out" to participate in the collection of personal information data at any time during or after registration for the service. In addition to providing "opt-in" and "opt-out" options, the present disclosure also contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then reminded again just before the personal information data is accessed by the application.
[0105] Furthermore, it is the intent 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. Once the data is no longer needed, the risk can be minimized by limiting data collection and data deletion. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be facilitated by removing identifiers, controlling the amount or specificity of stored data (e.g., collecting location data at a city level rather than at an address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods such as differential privacy, where appropriate.
[0106] Therefore, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may be implemented without access to such personal information data. That is, various embodiments of the present technology will not fail to function properly due to the lack of all or part of such personal information data.
[0107] Fig.10 An example computing device that can be used to implement various aspects of the subject technology according to one or more specific implementations is illustrated. Computing device 1000 can be any computing device or server used to generate the above-mentioned features and processes and / or can be a part of any computing device or server used to generate the above-mentioned features and processes, including but not limited to laptop computers, smart phones, tablet devices, wearable devices such as smart watches or glasses, etc. Computing device 1000 may include various types of computer-readable media and interfaces for various other types of computer-readable media. Computing device 1000 includes permanent storage device 1002, system memory 1004 (and / or buffer), input device interface 1006, output device interface 1008, bus 1010, ROM 1012, one or more processing units 1014, one or more network interfaces 1016 and / or their subsets and variations.
[0108] The bus 1010 generally represents all system, peripheral, and chipset buses that communicatively connect the many internal devices of the computing device 1000. In one or more implementations, the bus 1010 communicatively connects the one or more processing units 1014 with the ROM 1012, the system memory 1004, and the permanent storage device 1002. The one or more processing units 1014 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes disclosed in the present subject matter. In different implementations, the one or more processing units 1014 can be a single processor or a multi-core processor.
[0109] ROM 1012 stores static data and instructions needed by one or more processing units 1014 and other modules of computing device 1000. On the other hand, permanent storage device 1002 can be a read-write memory device. Permanent storage device 1002 can be a non-volatile memory unit that stores instructions and data even when computing device 1000 is turned off. In one or more specific implementations, a mass storage device (such as a magnetic or optical disk and its corresponding disk drive) can be used as permanent storage device 1002.
[0110] In one or more implementations, a removable storage device (such as a floppy disk, a flash drive, and its corresponding disk drive) may be used as the permanent storage device 1002. Like the permanent storage device 1002, the system memory 1004 may be a read-write memory device. However, unlike the permanent storage device 1002, the system memory 1004 may be a volatile read-write memory, such as a random access memory. The system memory 1004 may store any of the instructions and data that one or more processing units 1014 may need at runtime. In one or more implementations, the processes disclosed in the subject matter are stored in the system memory 1004, the permanent storage device 1002, and / or the ROM 1012. The one or more processing units 1014 retrieve instructions to be executed and data to be processed from these various memory units in order to perform the processes of one or more implementations.
[0111] The bus 1010 is also connected to an input device interface 1006 and an output device interface 1008. The input device interface 1006 enables a user to transmit information and select commands to the computing device 1000. Input devices that can be used with the input device interface 1006 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 1008 may, for example, enable the display of images generated by the computing device 1000. Output devices that can be used with the output device interface 1008 may include, for example, a printer and a display device, such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid state display, a projector, or any other device for outputting information.
[0112] One or more implementations may include a device that acts as both an input device and an output device, such as a touch screen. In these implementations, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and the input from the user may be received in any form, including acoustic, voice, or tactile input.
[0113] Finally, if Fig.10As shown, bus 1010 also couples computing device 1000 to one or more networks and / or to one or more network nodes via one or more network interfaces 1016. In this manner, computing device 1000 may be part of a computer network, such as a LAN, a wide area network ("WAN"), or an intranet, or a network of networks, such as the Internet. Any or all components of computing device 1000 may be used with the subject disclosure.
[0114] Implementations within the scope of the present disclosure may be implemented in part or in whole using a tangible computer-readable storage medium (or multiple tangible computer-readable storage media of one or more types) programmed with one or more instructions. Tangible computer-readable storage media may also be non-transitory in nature.
[0115] Computer-readable storage media can be any storage media that can be read, written, or otherwise accessed by a general or special computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, without limitation, computer-readable media can include any volatile semiconductor memory, such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. Computer-readable media can also include any non-volatile semiconductor memory, such as ROM, PROM, EPROM, EEPROM, NVRAM, flash memory, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, racetrack memory, FJG, and Millipede memory.
[0116] In addition, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more specific implementations, the tangible computer-readable storage medium may be directly coupled to the computing device, while in other specific implementations, the tangible computer-readable storage medium may be indirectly coupled to the computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.
[0117] Instructions can be directly executable, or can be used to develop executable instructions. For example, instructions can be implemented as executable or non-executable machine code, or can be implemented as high-level language instructions that can be compiled to produce executable or non-executable machine code. In addition, instructions can also be implemented as data, or can include data. Computer executable instructions can also be organized in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As recognized by those skilled in the art, the details including but not limited to the number, structure, sequence and organization of instructions can be significantly different without changing the underlying logic, function, processing and output.
[0118] Although the above discussion mainly involves microprocessors or multi-core processors that execute software, one or more implementations are performed by one or more integrated circuits such as ASICs or FPGAs. In one or more implementations, such integrated circuits execute instructions stored on the circuits themselves.
[0119] Those skilled in the art will recognize that various illustrative frames, modules, elements, parts, methods and algorithms described herein can be implemented as electronic hardware, computer software or a combination of the two. In order to illustrate this interchangeability of hardware and software, various illustrative frames, modules, elements, parts, methods and algorithms have been generally described above according to functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the entire system. The technician can implement the described functionality in different ways for each specific application. Various parts and frames can be arranged differently (e.g., arranged in different orders, or divided in different ways), without departing from the scope of the subject technology.
[0120] It should be understood that the specific order or the hierarchical structure of the frames in the process disclosed by the present invention are illustrations of the example method. Based on the design preferred requirements, it should be understood that the specific order or the hierarchical structure of the frames in the process can be rearranged or all the illustrated frames are executed. Any frame in these frames can be executed simultaneously. In one or more specific implementations, multitasking and parallel processing may be advantageous. In addition, the division of each system component in the specific implementation described above should not be understood as requiring such division in all specific implementations, and it should be understood that the program component (e.g., computer program product) and the system can be generally integrated together in a single software product or encapsulated in multiple software products.
[0121] As used in this specification and any claims of this patent application, the terms "base station", "receiver", "computer", "server", "processor" and "memory" all refer to electronic devices or other technical devices. These terms exclude people or groups of people. For the purpose of this specification, the term "display" or "displaying" means displaying on an electronic device.
[0122] As used herein, the phrase "at least one of" following a list of items, any of which is separated by the terms "and" or "or", modifies the list as a whole, rather than each member of the list (i.e., each item). The phrase "at least one of" does not require selection of at least one of each item listed; rather, the phrase allows for a meaning that includes at least one of any one item and / or at least one of any combination of items and / or at least one of each item. For 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.
[0123] The predicate words "configured to," "operable to," and "programmed to" do not imply any specific tangible or intangible modification of a subject matter but are intended to be used interchangeably. In one or more specific 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 may be interpreted as a processor programmed to execute code or operable to execute code.
[0124] Phrases such as aspect, this aspect, on the other hand, some aspects, one or more aspects, a specific implementation, this specific implementation, another specific implementation, some specific implementations, one or more specific implementations, an embodiment, this embodiment, another embodiment, some embodiments, one or more embodiments, configuration, this configuration, other configurations, some configurations, one or more configurations, subject technology, disclosure, the present disclosure, other variations thereof, etc. are for convenience and do not mean that the disclosure involving such one or more phrases is essential to the subject technology, nor does it mean that such disclosure applies to all configurations of the subject technology. Disclosures involving such one or more phrases may apply to all configurations or one or more configurations. Disclosures involving such one or more phrases may provide one or more examples. Phrases such as aspect or some aspects may refer to one or more aspects and vice versa, and this applies similarly to the other aforementioned phrases.
[0125] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" or as an "example" is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, to the extent that the terms "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive, in a manner similar to how the term "comprising" is interpreted when used as a transitional word in a claim.
[0126] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later become known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be covered by the claims. In addition, nothing disclosed herein is intended to be made available to the public regardless of whether the disclosure is explicitly stated in a claim. No claim element shall be interpreted under the provisions of 35 USC §112(f) unless the element is explicitly stated using the phrase "means for..." or, in the case of a method claim, the element is stated using the phrase "step for..."
[0127] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects. Therefore, the claims are not intended to be limited to the aspects shown herein, but are intended to make the full scope consistent with the language claims, wherein the reference to a singular element is not intended to mean "only one", but to mean "one or more", unless specifically noted. Unless otherwise specifically stated, the term "some" refers to one or more. Male pronouns (e.g., his) include female and neutral (e.g., her and its), and vice versa. Headings and subheadings (if any) are used only for convenience and do not limit the subject disclosure.
Claims
1. A method, comprising: receiving, by a system process of an electronic device, from an application running on the electronic device, state definitions for a plurality of states of a user interface view, and one or more transition definitions, each transition definition defining a transition between two states of the plurality of states, wherein each state of the plurality of states includes at least one display element, a size of the at least one display element, and an identifier of the at least one display element; identifying, by the system process, a trigger of a change from one of the plurality of states of the user interface view to another of the plurality of states of the user interface view; as well as In response to the trigger, the change from the one of the plurality of states of the user interface view to the another of the plurality of states of the user interface view is implemented by the system process and in accordance with the one or more transition definitions. 2 . The method of claim 1 , wherein the system process implements the change in part by determining a time and profile of the change and applying the one or more transition definitions to the profile.
3. The method of claim 1, wherein the plurality of states comprises a first state having a first element with a first identifier and a second element with a second identifier, and the one or more transition definitions comprise a first transition definition for the first element and a second transition definition for the second element. 4 . The method of claim 3 , wherein the system process implements the changing by animating a transition of the first element using the first transition definition and animating a transition of the second element using the second transition definition.
5. The method according to claim 4, further comprising: Prior to implementing the change, a set of elements of the first state is compared, by the system process, to a set of elements of the second state.
6. The method according to claim 5, further comprising: Prior to implementing the changing, it is determined by the system process and based on the comparing that the second state of the plurality of states includes the first element with the first identifier and the second element with the second identifier.
7. The method according to claim 5, further comprising: Prior to implementing the changing, it is determined by the system process and based on the comparison that the second state of the plurality of states includes the first element with the first identifier and does not include the second element with the second identifier. 8 . The method of claim 7 , wherein animating the transition of the second element using the second transition definition comprises animating removal of the second element from the user interface view.
9. The method of claim 1, wherein the plurality of states include a first state with a first element having a first identifier, a second state excluding the first element having the first identifier, and a third state including the first element having the first identifier. 10 . The method of claim 9 , wherein the first element has a first size in the first state and has a second size different from the first size in the third state. 11 . The method of claim 1 , wherein the plurality of states comprises a first state in which the user interface view has a first size and a second state in which the user interface view has a second size.
12. The method according to claim 1, further comprising: When one of the plurality of states of the user interface view is displayed, application information is received by the system process from the application for display within an element of the one of the plurality of states of the user interface view.
13. The method according to claim 12, further comprising: Additional application information for the element in one of the plurality of states of the user interface view is received from the application by the system process for display within the element during implementation of the change.
14. The method of claim 1, wherein the user interface view is a user interface view for a widget of the application.
15. A method comprising: Using an application running on an electronic device to: providing, to a system process of the electronic device, state definitions of a plurality of states of a user interface view, and one or more transition definitions, each transition definition defining a transition between two states of the plurality of states, wherein each state of the plurality of states includes at least one display element, a size of the at least one display element, and an identifier of the at least one display element; as well as When the user interface view is in at least one of the plurality of states, application information to be displayed by the system process in the user interface view is provided to the system process.
16. The method of claim 15, wherein the plurality of states include a first state in which the user interface view has a first size and includes a first element, and a second state in which the user interface view has a second size greater than the first size and includes the first element and a second element, and wherein providing the application information includes: When the user interface view is in the first state, providing at least first application information for display in conjunction with the first element; as well as When the user interface view is in the second state, the first application information and the second application information are provided for display in combination with the second element.
17. The method according to claim 16, further comprising: State transition information indicating a transition from the first state to the second state is received by the application from the system process, wherein providing the application information includes providing the second application information of the second element to the system process by the application in response to receiving the state transition information.
18. A method according to claim 16, wherein providing the application information includes providing the first application information and the second application information by providing one or more links to a communication channel to the system process based on the state of the user interface view, and the communication channel is used for the system process to access the first application information and the second application information.
19. The method according to claim 15, further comprising: Additional application information is provided, by the application, to the system process to be displayed by the system process in the user interface view during a transition from one of the plurality of states to another of the plurality of states.
20. A non-transitory computer-readable medium storing instructions for a user interface view display process, the instructions, when executed by one or more processors of an electronic device, causing the one or more processors to: receiving, from an application running on the electronic device, state definitions for a plurality of states of a user interface view, and one or more transition definitions, each transition definition defining a transition between two states of the plurality of states, wherein each state of the plurality of states includes at least one display element, a size of the at least one display element, and an identifier of the at least one display element; identifying a trigger of a change from one of the plurality of states of the user interface view to another of the plurality of states of the user interface view; as well as In response to the trigger, and in accordance with the one or more transition definitions, the change from the one of the plurality of states of the user interface view to the another of the plurality of states of the user interface view is implemented.
