The present disclosure relates generally to systems and method for implementing user interface elements for display on an electronic device. More particularly, floating user interface elements with dynamically updating state portions are provided in a manner that requires limited screen real estate.
A multitude of various electronic devices are currently configured for providing access to digital content, media, and the like. For instance, Internet-connected computing devices such as smartphones, laptops, personal computers, and other mobile devices can include web browsers or other applications for providing real-time information about any number of people, things, places, events, etc. Smart home devices including televisions are able to electronically stream videos and other media content potentially associated with such real-time information. Technology continues to adapt the manner in which such information is electronically available to users.
Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or can be learned from the description, or can be learned through practice of the embodiments.
One example aspect of the present disclosure is directed to an electronic device including a display device, one or more processors, and at least one tangible, non-transitory computer-readable medium that stores instructions that, when executed by the one or more processors, cause the electronic device to perform operations. The operations include identifying a time-varying event occurring between a first time and a second time and in a first location, the first location different than a second location of the electronic device. The operations include receiving at a third time a request to display information about the time-varying event on the display device. The operations include determining if the third time is between the first time and the second time. In response to the request, and when the third time is determined to be between the first time and the second time, the operations also include initiating display of a floating user interface element on the display device. The floating user interface element displays information related to the time-varying event.
Another example aspect of the present disclosure is directed to a computer-implemented method for dynamically displaying a floating user interface element within graphical user interfaces configured for display on a display device associated with an electronic device. The computer-implemented method includes identifying, by one or more processors associated with the electronic device, a time-varying event occurring between a first time and a second time and in a first location, the first location different than a second location of the electronic device. The computer-implemented method includes receiving, by the one or more processors, at a third time a request to display information about the time-varying event on the display device. The computer-implemented method includes determining, by the one or more processors, if the third time is between the first time and the second time. The computer-implemented method includes in response to the request, when the third time is determined to be between the first time and the second time, initiating, by the one or more processors, display of a floating user interface element on the display device. The floating user interface element displays information related to the time-varying event, the information related to the time-varying event including at least one current state associated with the time-varying event displayed in a current state portion of the floating user interface element. The computer-implemented method includes updating, by the one or more processors, the current state portion of the floating user interface element when the at least one current state changes relative to a previous state.
Another example aspect of the present disclosure is directed to one or more tangible, non-transitory computer-readable media storing computer-readable instructions that when executed by one or more processors cause the one or more processors to perform operations. The operations include identifying a time-varying event occurring between a first time and a second time and in a first location, the first location different than a second location of the electronic device. The operations include receiving at a third time a request to display information about the time-varying event on the display device. The operations include determining if the third time is between the first time and the second time. The operations include in response to the request, when the third time is determined to be between the first time and the second time, initiating display of a floating user interface element on the display device. The floating user interface element displays information related to the time-varying event, the information related to the time-varying event comprising at least one current state associated with the time-varying event displayed in a current state portion of the floating user interface element. The floating user interface element is configured to remain visible on the display device across multiple different user interface screens associated with multiple different programs accessed by the electronic device. The operations include updating the current state portion of the floating user interface element when the at least one current state changes relative to a previous state.
Other aspects of the present disclosure are directed to various systems, apparatuses, non-transitory computer-readable media, computer program products, user interfaces, and electronic devices.
These and other features, aspects, and advantages of various embodiments of the present disclosure will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the related principles.
Detailed discussion of embodiments directed to one of ordinary skill in the art is set forth in the specification, which makes reference to the appended figures, in which:
Reference numerals that are repeated across plural figures are intended to identify the same features in various implementations.
Systems and methods consistent with the present disclosure can include features for implementing dynamically updating user interface elements for display on an electronic device in a manner that requires limited screen real estate. More specifically, floating user interface elements can be provided that include one or more state portions respectively indicative of a current state associated with a time-varying event. The state portions can be updated when the current state changes relative to a previous state. In some implementations, the user may be enabled to “pin” the dynamically updating user interface element to a display of the electronic device so that display of the user interface element persists across different operational modes of the electronic device and/or despite user activity or input directed to an alternative application, element, or feature concurrently presented on the display of the electronic device. In addition, in some implementations, the user interface element can be movable, expandable to receive additional information, collapsible to receive more concise information, and/or interactive in other ways. Thus, in addition or alternatively to pinning the user interface element, the user can re-size and move the user interface element to best allocate display space to various competing display features. By providing a display feature that persists across different operational modes of the electronic device and/or is movable within the display, users can be advantageously provided consistent access to real-time or near real-time event and state information without detracting from their ability to continue using the electronic device for other purposes.
According to an aspect of the present disclosure, a time-varying event associated with the disclosed floating user interface elements can correspond to a real-time event occurring at one or more tangible geographic locations other than a current location of the electronic device and that has an observable status and/or outcome that can vary over time. Non-limiting examples of time-varying events for which floating user interface elements can be implemented include sporting events, elections, stock market activity, travel-related activity, and others. In some implementations, the time-varying event can be a real-time competitive event between one or more competing parties (e.g. individuals, teams, and the like). As such, in the example of a sporting event, the one or more competing parties could correspond to one or more teams competing against one another in the real-time event (e.g., first and second opposing soccer teams, first and second opposing tennis players, a plurality of race car drivers, etc.) In the example of an election, the one or more competing parties could correspond to one or more candidates for an elected position (e.g., a candidate representing a first political party, a candidate representing a second political party, a candidate representing a third political party, etc.).
According to another aspect of the present disclosure, one or more state portions can be used to describe aspects of the observable status and/or outcome of a time-varying event. Example state portions indicative of a current state of such time-varying events can include current scores, stock and/or commodity prices, election results, currency exchange rates, flight status indications (delayed, boarding, etc.), weather information, estimated time of arrival (ETA) for travel, and others. For instance, in the particular example of a sporting event, multiple state portions can be included in a floating user interface element to describe a real-time or near real-time score associated with each competing party engaged in the sporting event as well as additional optional state portions indicative of further observable aspects such as but not limited to elapsed event time, remaining event time, location conditions, and status of one or more competing parties or actions undertaken by the competing parties. In the particular example of an election, multiple state portions can be included in a floating user interface element to describe a real-time or near real-time posting of a number of total votes (e.g., popular votes, electoral votes, etc.) for each competing party in the election.
According to another aspect of the present disclosure, each time-varying event can be identified as occurring between a first time and a second time. In some implementations, the first time can correspond to a start time of the time-varying event (e.g., the kickoff time of a soccer game). In some implementations, the first time can be associated with the start time of the time-varying event, but can additionally include a window of buffer time (e.g., one hour before the event begins). In some implementations, the second time can correspond to an end time of the time-varying event. In some implementations, the second time can start as or depend on an estimated end time. However, the estimated end time can be monitored and tracked to keep up with an actual end time. In this manner, if an estimated end time is extended due to weather, longer game play, or other circumstances, the second time can be dynamically updated. In some implementations, the second time can be associated with an end time, but can additionally include a window of buffer time (e.g., one hour after the event ends).
In some implementations, according to another aspect of the disclosed technology, the first and second times associated with a time-varying event can be used to help determine when to initiate display of floating user interface elements. For example, a request to display information about the time-varying event can be received at a third time. A determination can be made regarding whether the third time is between the first time and the second time. When the third time is between the first time and the second time, display of a floating user interface element including information about the time-varying event can be initiated in response to the request.
When the third time is not between the first time and the second time, no action can be taken or a different action can be initiated. For example, display of a message can be initiated on the display device. A message displayed in response to the third time not being between the first time and the second time can include a message notifying a user of the electronic device that the time-varying event is not “live” or that an option for displaying information about the time-varying event is not currently available. In some implementations, if the third time is after the second time, the message can include a static message displaying information about the time-varying event. For instance, the static message can include final results associated with a time-varying event. However, those final results will not be dynamically updated because real-time updates are no longer available and/or applicable. In some implementations, if the third time is before the first time, a subscription to the time-varying event can be initiated in response to the request. As such, a user can be signed up to receive information about the time-varying event via the disclosed floating user interface elements when the first time arrives.
According to aspects of the present disclosure, an electronic device including one or more processors and a display device can implement aspects of the disclosed technology including an event notification system. In general, the event notification system can be configured to receive instructions indicative of a request for information associated with a time-varying event. The event notification system can then initiate display on the display device of a floating user interface element. The floating user interface element can include one or more state portions respectively indicative of a current state associated with the time-varying event. The state portions indicative of the current state associated with the time-varying event can be updated when the current state changes relative to a previous state.
According to another aspect of the present disclosure, each floating user interface element can be configured for display in a manner whereby it floats on top of anything else displayed. For instance, a floating user interface element can remain visible on the display device across multiple different user interface screens associated with multiple different programs, applications, control menus, windows, and/or the like accessed by the electronic device. Alternatively, a user can define certain other elements which supersede the floating user interface element and/or certain other elements which do not supersede the floating user interface element.
In one example, when the electronic device is a computing device (e.g., a smartphone, laptop, personal computer, mobile device, etc.), the floating user interface element can be configured to remain visible on the display device across multiple different software applications running on the computing device. For instance, the floating user interface element can persist in a designated location on the display device even while a user operates the computing device such that it switches from a first user interface screen associated with a home screen to a second user interface screen associated with a first application (e.g., a chat application) to a third user interface screen associated with a second application (e.g., a navigation application), or others.
In another example, when the electronic device is a television, the floating user interface element can be configured to remain visible on the display device across multiple different channels accessed for viewing on the television. For instance, the floating user interface element can persist in a designated location on the display device even while a user operates the television such that it switches from a first user interface screen associated with a first channel (e.g., a television guide screen) to a second user interface screen associated with a second channel (e.g., a first program channel such as a local news station) to a third user interface screen associated with a third channel (e.g., a second program channel such as a sports station).
In accordance with another example aspect of the present disclosure, the disclosed floating user interface elements can be selectively moveable across a display device. This can be particularly useful when a user of an electronic device prefers for the floating user interface element to be in a user-customizable location or in a different location depending on which program is currently being operated or otherwise viewed on the display device. More particularly, in some implementations, an event notification application or other component of an electronic device can be configured to receiving movement instructions indicative of a request to move the floating user interface element from a first display location to a second display location on the display device. When the display device includes a touch-screen display device, the movement instructions can be received, for example, in response to a touch gesture received on the touch-screen display device of the floating user interface element at the first display location and a drag gesture received on the touch-screen display device to the second display location. In response to receiving the movement instructions, the floating user interface element can then be moved from the first display location to the second display location on the display device.
According to another example aspect of the present disclosure, the disclosed floating user interface elements can be initially configured to occupy a limited portion of overall screen real estate available on a display device. However, the floating user interface elements can be selectable or otherwise adapted to expand from an initial first display size to a larger second display size. In some implementation, the larger second display size of a floating user interface element can accommodate display of the same information as contained in the first display size of floating user interface element, but with an enlarged font. In some implementations, the larger second display size of a floating user interface element can accommodate display of additional information associated with the time-varying event that was not contained in the first display size of floating user interface element.
According to another example aspect of the present disclosure, the electronic device can be configured to activate an attention grabbing behavior associated with the electronic device when the current state of a variable associated with the time-varying event changes relative to a previous state. For example, if a state portion corresponds to a score of a sports game, and the score changes, then this change can be configured to not only update the state data provided within the floating user interface element, but also generate a device output (e.g., an audio sound output, a light or animated video output, a haptic feedback output such as a vibration of the electronic device, etc.) As examples, the light or animated video output can include flashing light, change in color(s), change in size of the element, change in location of the element, and/or various other effects that serve to draw the user's visual interest to the user interface element. These effects (e.g., light or animated video output) can be temporary and can revert to the standard state after a certain period of time.
According to another example aspect of the present disclosure, it should be appreciated that floating user interface elements can be configured and coordinated for display in accordance with multiple time-varying events. Support for multiple time-varying events can be provided in a variety of different manners. For instance, in one example implementation, a single floating user interface element can include information about multiple time-varying events by including one or more state portions respectively indicative of a current state associated with each of a plurality of the multiple time-varying events. In another example implementation, multiple floating user interface elements can be provided for display on the display device. Each of the multiple floating user interface elements can respectively include one or more state portions respectively indicative of a current state associated with a corresponding time-varying event.
According to another example aspect of the present disclosure, the initiation of display of one or more floating user interface elements as described herein can happen in response to a variety of manual actions and/or automated determinations. For instance, the display can be initiated in response to receipt of instructions indicative of a request for information associated with the time-varying event. In some implementations, these instructions can be user-initiated instructions received via the electronic device. For example, the user-initiated instructions can be received via an application (e.g., a search or browser application) that provides selectable buttons for identifying which time-varying events are of interest to a user of the electronic device. Sometimes the selectable buttons can be provided per event, while other times the selectable buttons can be provided per category of event such that every time-varying event falling within a given category (e.g., all sports games played by a particular sports team) will be selectable on a subscription-like basis. In some implementations, an event determination system can be configured to automatically determine (e.g., via one or more machine-learned models) time-varying events of potential interest to a user of the electronic device by considering user profile data, user activity history, etc. when a user selects to make such data available to the event determination system.
According to another example aspect of the present disclosure, in some implementations, a split-screen mode can be made available as an alternative user interface option for use with floating user interface elements as described herein. For instance, a display device can be configured to define first and second portions that are distinct and non-overlapping. The floating user interface element(s) can be configured to remain visible on the display device within a first portion of the display device. The second portion of the display device can be configured to display multiple different user interface screens associated with multiple different programs accessed by the electronic device. By fixing at least one dimension associated with the first portion of the display device (e.g., a height dimension), then the floating user interface element can always occupy a limited screen height. Other applications can be configured to detect initiated display of the floating user interface element(s) within the first portion and use only the second portion of the display device for their user interfaces, thus ensuring that the floating user interface elements never hide any information associated with other currently active applications or channels on the electronic device.
The systems and methods described herein may provide a number of technical effects and benefits. For instance, provision of floating user interface elements in accordance with the disclosed technology can advantageously provide a user to have consistent access to a subset of important state information associated with time-varying events (e.g., sports scores, stock tickers, etc.) without going back and forth between applications and/or channels on an electronic device to do so. Each of these “switching” events can consume device resources (e.g., to load, initialize, and run different applications). Thus, aspects of the present disclosure conserve computing resources by reducing user activity that includes periodically switching between applications and/or channels to obtain updated event information. The disclosed technology provides an ability to show the most important data associated with such events while still using an electronic device for other things. Floating user interface elements and related features can thus enhance the overall useful functionality of electronic devices by affording updated access to current state data in a coordinated and easily accessible manner. In addition, such coordinated integration of display data across multiple programs can further increase safety of device operation, for example, when a device is used for task-specific applications such as navigation or the like.
With reference now to the Figures, example embodiments of the present disclosure will be discussed in further detail.
In some implementations, the event notification application 102 and various components thereof can include computer logic utilized to provide desired functionality. More particularly, the event notification application 102, including one or more of the user event subscription system 104, the automated event determination system 106, the event information access system 108, and the display modification system 110 can be implemented in hardware, firmware, and/or software controlling a general purpose processor. For example, in some implementations, the event notification application 102, including one or more of the user event subscription system 104, the automated event determination system 106, the event information access system 108, and the display modification system 110, can include program files stored on a storage device, loaded into a memory and executed by one or more processors. In other implementations, the event notification application 102, including one or more of the user event subscription system 104, the automated event determination system 106, the event information access system 108, and the display modification system 110, can include one or more sets of computer-executable instructions that are stored in a tangible computer-readable storage medium such as RAM hard disk or optical or magnetic media.
Referring more particularly to
A time-varying event associated with floating user interface element 124 can correspond to a real-time event occurring at one or more tangible geographic locations other than a current location of the electronic device 100 and that has an observable status and/or outcome that can vary over time. Non-limiting examples of time-varying events for which floating user interface element 124 can be implemented include sporting events, elections, stock market activity, travel-related activity, and others. In some implementations, the time-varying event can be a real-time competitive event between one or more competing parties (e.g. individuals, teams, and the like). As such, in the example of a sporting event, the one or more competing parties could correspond to one or more teams competing against one another in the real-time event (e.g., first and second opposing soccer teams, first and second opposing tennis players, a plurality of race car drivers, etc.) In the example of an election, the one or more competing parties could correspond to one or more candidates for an elected position (e.g., a candidate representing a first political party, a candidate representing a second political party, a candidate representing a third political party, etc.).
The one or more state portions 126 can be used to describe aspects of the observable status and/or outcome of a time-varying event. Example state portions 126 indicative of a current state of such time-varying events can include current scores, stock and/or commodity prices, election results, currency exchange rates, flight status indications (delayed, boarding, etc.), weather information, estimated time of arrival (ETA) for travel, and others. For instance, in the particular example of a sporting event, multiple state portions 126 can be included in floating user interface element 124 to describe a real-time or near real-time score associated with each competing party engaged in the sporting event as well as additional optional state portions 126 indicative of further observable aspects such as but not limited to elapsed event time, remaining event time, location conditions, and status of one or more competing parties or actions undertaken by the competing parties. In the particular example of an election, multiple state portions 126 can be included in a floating user interface element 124 to describe a real-time or near real-time posting of a number of total votes (e.g., popular votes, electoral votes, etc.) for each competing party in the election.
In some examples, state portions 126 can provide state information relative to a user of the electronic device 100 or to other third parties. For example, when a time-varying event corresponds to travel of a minor child, a state portion 126 can provide ETA travel details including the time left until the minor child arrives at a destination. Such details can be provided to an electronic device 100 operated by the parent/guardian as available via permissions provided via location-tracking software on a device operated by or otherwise co-located with the minor child. State portions 126 can include one or more visual indicators including text (e.g., names, numbers, or other parameters that are updated), icons (e.g., a circle or other shape having a time-varying volume that is updated), graphs (e.g., a visual graph representative of one or more stock values).
In some implementations, the user may be enabled to “pin” the dynamically updating user interface element 124 to a display 122 (e.g., a screen provided via display device 120) of the electronic device 100 so that display of the user interface element 124 persists across different operational modes of the electronic device 100 and/or despite user activity or input directed to an alternative application, element, or feature concurrently presented on the display 122 of the electronic device 100. In addition, in some implementations, the user interface element 124 can be movable, expandable to receive additional information, collapsible to receive more concise information, and/or interactive in other ways as further described herein. Thus, in addition or alternatively to pinning the user interface element 124, the user can re-size and move the user interface element 124 to best allocate display space to various competing display features. By providing a display feature that persists across different operational modes of the electronic device 100 and/or is movable within the display 122, users can be advantageously provided consistent access to real-time or near real-time event and state information without detracting from their ability to continue using the electronic device 100 for other purposes.
Referring still to
In some implementations, the instructions indicative of a request for information associated with a time-varying event can be received via one or more of the user event subscription system 104 and/or the automated event determination system 106. For example, these instructions can be user-initiated instructions received via the electronic device 100 (e.g., as part of user event subscription system 104). For example, the user-initiated instructions can be received via an application (e.g., a search or browser application) that provides selectable buttons for identifying which time-varying events are of interest to a user of the electronic device. Sometimes the selectable buttons can be provided per event, while other times the selectable buttons can be provided per category of event such that every time-varying event falling within a given category (e.g., all sports games played by a particular sports team) will be selectable on a subscription-like basis. In some implementations, automated event determination system 106 can be configured to automatically determine (e.g., via one or more machine-learned models) time-varying events of potential interest to a user of the electronic device 100 by considering user profile data, user activity history, etc. when a user selects to make such data available to the automated event determination system 106.
After identification of one or more time-varying events, event information access system 108 can be configured to access current state information associated with each time-varying event and initiate display on the display device 120 of a floating user interface element 124 including one or more state portions 126 respectively indicative of a current state associated with the time-varying event. The event information access system 108 can obtain real-time or near real-time updates for the time-varying event and can be configured to dynamically update the state portions 126 within the floating user interface element 124 when the current state changes relative to a previous state. In some implementations, event information access system 108 is implemented using poll technology whereby electronic device 100 is a client device configured to consistently or periodically reach out to a server for updates. In other implementations, event information access system is implemented using push technology, whereby a server proactively sends out updates to all clients, including electronic device 100. Additional exemplary aspects of such client-server interaction for obtaining event information and updates is illustrated in and described with reference to
Referring still to
In one example, when the electronic device 100 is a computing device (e.g., a smartphone, laptop, personal computer, mobile device, etc.), the floating user interface element 124 can be configured to remain visible on the display device 120 across multiple different software applications running on the computing device. For instance, the floating user interface element 124 can persist in a designated location on the display device 122 even while a user operates the computing device such that display 122 switches from a first user interface screen associated with a home screen to a second user interface screen associated with a first application (e.g., a chat application) to a third user interface screen associated with a second application (e.g., a navigation application), or others.
In another example, when the electronic device 100 is a television, the floating user interface element 124 can be configured to remain visible on the display device 120 across multiple different channels accessed for viewing on the television. For instance, the floating user interface element 124 can persist in a designated location on the display device 120 even while a user operates the television such that the display 122 switches from a first user interface screen associated with a first channel (e.g., a television guide screen) to a second user interface screen associated with a second channel (e.g., a first program channel such as a local news station) to a third user interface screen associated with a third channel (e.g., a second program channel such as a sports station).
According to another example aspect of the present disclosure, the electronic device 100 can be configured to activate an attention grabbing behavior associated with the electronic device 100 when the current state of a variable associated with the time-varying event (e.g., one or more state portions 126) changes relative to a previous state. For example, if a state portion 126 corresponds to a score of a sports game, and the score changes or the game ends, then this change can be configured to not only update the data within state portion(s) 126 provided within the floating user interface element 124, but also generate a device output (e.g., an audio sound output, a light or animated video output, a haptic feedback output such as a vibration of the electronic device 100, etc.) As examples, the light or animated video output can include flashing light, change in color(s), change in size of the element, change in location of the element, and/or various other effects that serve to draw the user's visual interest to the user interface element 124. These effects (e.g., light or animated video output) can be temporary and can revert to the standard state after a certain period of time.
Although
Referring still to
Referring now to
In some implementations, the floating user interface element 124 can be snapped to an edge of a display screen as it is moved from one location to another. In other implementations, a different framework of movement parameters can be employed, or no limitations at all can be placed such that user interface element 124 can be moved/dragged to any location on a display screen.
Referring to
Referring to
In some implementations, a user interface element can be collapsible after having been expanded in a fashion as described herein. Instructions can be received based on user interaction with an electronic device indicating a request to collapse the user interface elements. In some examples, for instance, a floating user interface element can be completely removed when a user drags the interface element to a predetermined location on a display screen (e.g., a location on the bottom of a display screen having an “X” symbol representative of an action to close the interface element).
Referring now to
After user selection of the selectable button 202 of
The floating user interface element 204 depicted in
At 402, an electronic device including one or more computing devices, processors, or the like can identify a time-varying event occurring between a first time and a second time. In some implementations, the time-varying event identified at 402 can be at a first location (e.g., a physical location that is different than a second location such as a current location of the electronic device).
In some implementations, the first time associated with the time-varying event identified at 402 can correspond to a start time of the time-varying event (e.g., the kickoff time of a soccer game). In some implementations, the first time can be associated with the start time of the time-varying event, but can additionally include a window of buffer time (e.g., one hour before the event begins). In some implementations, the second time associated with the time-varying event identified at 402 can correspond to an end time of the time-varying event. In some implementations, the second time can start as or depend on an estimated end time. However, the estimated end time can be monitored and tracked to keep up with an actual end time. In this manner, if an estimated end time is extended due to weather, longer game play, or other circumstances, the second time can be dynamically updated. In some implementations, the second time can be associated with an end time, but can additionally include a window of buffer time (e.g., one hour after the event ends).
In some implementations, according to another aspect of the disclosed technology, the first and second times associated with a time-varying event can be used to help determine when to initiate display of floating user interface elements. For example, at 404, the electronic device can receive at a third time a request to display information about the time-varying event. In some implementations, the request received at 404 can be received via manual interaction from a user event subscription system 104 such as depicted in
At 406, an electronic device can make a determination regarding whether the third time is between the first time and the second time. When a determination is made at 406 that the third time is between the first time and the second time, the electronic device can initiate display at 408 of a floating user interface element including information about the time-varying event, in response to the request received at 404. The floating user interface element displayed at 408 can include more state portions respectively indicative of a current state associated with the time-varying event. Additionally or alternatively, the floating user interface element displayed at 408 can be configured to remain visible on the display device across multiple different user interface screens associated with multiple different programs accessed by the electronic device. In some implementations, such as when the electronic device is a computing device, the multiple different programs accessed by the electronic device can include multiple different software applications running on the computing device. In other implementations, such as when the electronic device is a television, the multiple different programs accessed by the electronic device can include multiple different channels accessed for viewing on the television.
When a determination is made at 406 that the third time is not between the first time and the second time, no action can be taken or a different action can be initiated. For example, display of a message can be initiated on the display device. A message displayed in response to the third time not being between the first time and the second time can include a message notifying a user of the electronic device that the time-varying event is not “live” or that an option for displaying information about the time-varying event is not currently available. In some implementations, if the third time is after the second time, the message can include a static message displaying information about the time-varying event. For instance, the static message can include final results associated with a time-varying event. However, those final results will not be dynamically updated because real-time updates are no longer available and/or applicable. In some implementations, if the third time is before the first time, a subscription to the time-varying event can be initiated in response to the request. As such, a user can be signed up to receive information about the time-varying event via the disclosed floating user interface elements when the first time arrives.
In some implementations, the request received at 404 is indicative of a request for information associated with multiple time-varying events (e.g., multiple sports games, stock tickers, or the like). In response, in some implementations, a single floating user interface element initiated for display at 408 can include one or more state portions respectively indicative of a current state associated with each of the multiple time-varying events. In response, in other implementations, multiple floating user interface elements can be initiated for display on a display device. In such example, each floating user interface element can include one or more state portions respectively indicative of a current state associated with a corresponding time-varying event. In addition, the multiple floating user interface elements can be configured to remain visible on the display device across multiple different user interface screens associated with multiple different programs accessed by the electronic device.
In some implementations, the floating user interface element displayed at 408 can be configured to remain visible on the display device within a first portion of the display device and wherein a second portion of the display device is configured to display multiple different user interface screens associated with multiple different programs accessed by the electronic device, wherein the first portion of the display device and the second portion of the display device are distinct and non-overlapping portions.
At 410, the electronic device can update the one or more state portions indicative of the current state associated with the time-varying event when the current state changes relative to a previous state. Additionally or alternatively, at 412, the electronic device can include generating a device output associated with the electronic device when the current state changes relative to a previous state. The device output generated at 412 can be an attention-grabbing behavior such as one or more of an audio sound output, an animated video output, and a haptic feedback output.
At 414, the electronic device can be configured to receive movement instructions indicative of a request to move the floating user interface element from a first display location to a second display location on the display device. In some implementations, such as when the display device is a touch-screen display device and the floating user interface element is moveable across the display device, the movement instructions received at 410 are received in response to a touch gesture received on the touch-screen display device of the floating user interface element at the first display location and drag gesture received on the touch-screen display device to the second display location.
In response to receipt of the movement instructions received at 414, the electronic device can be configured to move at 416 the floating user interface element from the first display location to the second display location on the display device.
At 418, the electronic device can be configured to receive selection instructions indicative of a request to select the floating user interface element. In response to receipt of the selection instructions received at 418, the electronic device can be configured to expand at 420 the floating user interface element from a first display size to a second display size that is larger than the first display size. In some implementations, expanding the floating user interface element from the first display size to the second display size at 420 includes providing additional information associated with the time-varying event within the floating user interface element having the second display size. In some implementations, expanding the floating user interface element from the first display size to the second display size at 420 includes enlarging a font of the information included within floating user interface element having the second display size.
The client electronic device 602 can be any type of electronic device, such as, for example, a personal computing device (e.g., laptop or desktop), a mobile computing device (e.g., smartphone or tablet), a gaming console or controller, a wearable computing device, an embedded computing device, a smart home device such as a television, or any other type of electronic device having computing functionality and a display device 620 (e.g., a touch-screen display device). In some implementations, client electronic device 602 can correspond to or include one or more features of the electronic device 100 depicted in
The client electronic device 602 includes one or more processors 612 and a memory 614. The one or more processors 612 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, a FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory 614 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 614 can store data 616 and instructions 618 which are executed by the processor 612 to cause the client electronic device 602 to perform operations.
In some implementations, the client electronic device 602 can store or include an event notification application 622, which can correspond, for example, to event notification application 102 of
Additionally or alternatively, one or more portions of the event notification application 622 can be included in or otherwise stored and implemented by the server computing system 630 that communicates with the client electronic device 602 according to a client-server relationship. For example, the event notification application 640 can be implemented by the server computing system 630 as a portion of a web service (e.g., a brand penetration determination service). Thus, one or more applications 622 can be stored and implemented at the client electronic device 602 and/or one or more applications 640 can be stored and implemented at the server computing system 630.
The server computing system 630 includes one or more processors 632 and a memory 634. The one or more processors 632 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, a FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory 634 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 634 can store data 636 and instructions 638 which are executed by the processor 632 to cause the server computing system 630 to perform operations.
As described above, the server computing system 630 can store or otherwise include one or more portions of an event notification application 640. In some implementations, the server computing system 630 includes or is otherwise implemented by one or more server computing devices. In instances in which the server computing system 630 includes plural server computing devices, such server computing devices can operate according to sequential computing architectures, parallel computing architectures, or some combination thereof.
In some implementations, an event notification application as described herein can be implemented using client-side rendering logic. For example, event notification application 622 can include client-side code including logic for rendering the disclosed user interfaces and floating user interface elements. The event notification application 622 can sometimes include event-specific (e.g., sport-specific) rendering logic. In some implementations, the rendering logic is service-side rendering logic such that event notification application 640 can include server-side code including logic for rendering the disclosed user interfaces and floating user interface elements. In this latter instance, the event notification application 622 can include lightweight code that can render any user interface element described by the server in an agreed upon manner. This could allow the same client-side code to be used for different types of time-varying events (e.g., sports games and stock tickers), without requiring code updates to the client.
In some implementations, the client electronic device 602 and/or the server computing system 630 can train models (e.g., an event determination model provided within automated event determination system 106 and configured to determine events of interest to a particular user) provided within event notification application 622/640 via interaction with the training computing system 650 that is communicatively coupled over the network 680. The training computing system 650 can be separate from the server computing system 630 or can be a portion of the server computing system 630.
The training computing system 650 includes one or more processors 652 and a memory 654. The one or more processors 652 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, a FPGA, a controller, a microcontroller, etc.) and can be one processor or a plurality of processors that are operatively connected. The memory 654 can include one or more non-transitory computer-readable storage mediums, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 654 can store data 656 and instructions 658 which are executed by the processor 652 to cause the training computing system 650 to perform operations. In some implementations, the training computing system 650 includes or is otherwise implemented by one or more server computing devices.
The training computing system 650 can include a model trainer 660 that trains the machine-learned models (e.g., an event determination model) stored at the client electronic device 602 and/or the server computing system 630 using various training or learning techniques, such as, for example, backwards propagation of errors. In some implementations, performing backwards propagation of errors can include performing truncated backpropagation through time. The model trainer 660 can perform a number of generalization techniques (e.g., weight decays, dropouts, etc.) to improve the generalization capability of the models being trained.
In particular, the model trainer 660 can train the event determination model or other models based on a set of training data 662. The training data 662 can include, for example, data provided as an input to the event determination models, and data provided as an output of the event determination models in response to the input data. The model trainer 660 can train the models in an unsupervised manner by using the input data and the output data of training data 662.
The model trainer 660 includes computer logic utilized to provide desired functionality. The model trainer 660 can be implemented in hardware, firmware, and/or software controlling a general purpose processor. For example, in some implementations, the model trainer 660 includes program files stored on a storage device, loaded into a memory and executed by one or more processors. In other implementations, the model trainer 660 includes one or more sets of computer-executable instructions that are stored in a tangible computer-readable storage medium such as RAM hard disk or optical or magnetic media.
The network 680 can be any type of communications network, such as a local area network (e.g., intranet), wide area network (e.g., Internet), or some combination thereof and can include any number of wired or wireless links. In general, communication over the network 680 can be carried via any type of wired and/or wireless connection, using a wide variety of communication protocols (e.g., TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and/or protection schemes (e.g., VPN, secure HTTP, SSL).
The technology discussed herein makes reference to servers, databases, software applications, and other computer-based systems, as well as actions taken and information sent to and from such systems. The inherent flexibility of computer-based systems allows for a great variety of possible configurations, combinations, and divisions of tasks and functionality between and among components. For instance, processes discussed herein can be implemented using a single device or component or multiple devices or components working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.
While the present subject matter has been described in detail with respect to various specific example embodiments thereof, each example is provided by way of explanation, not limitation of the disclosure. Those skilled in the art, upon attaining an understanding of the foregoing, can readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, the subject disclosure does not preclude inclusion of such modifications, variations and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art. For instance, features illustrated or described as part of one embodiment can be used with another embodiment to yield a still further embodiment. Thus, it is intended that the present disclosure cover such alterations, variations, and equivalents.