IP Library Granted Patent US 11,494,048
Granted Patent B2
US 11,494,048 · App. 14/841,577 · Granted Nov 8, 2022

View virtualization

Inventors: Brendan Joseph Clark (Seattle, WA); Brandon C. Furtwangler (Issaquah, WA); J. Jordan C. Parker (Seattle, WA)
Assignee: HOME BOX OFFICE, INC.
G06F3/04812G06F3/0485G06F8/38G06F9/451G06F9/452
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,494,048
App. No.
14/841,577
Granted
Nov 8, 2022
Kind
B2
Abstract

The described technology is directed towards having UI elements structured in a hierarchical configuration, in which parent and child UI elements communicate via a virtualization interface. A change to any parent UI element view propagates to each impacted descendant, e.g., each child, any children of that child and so on, whereby each child can manage virtualization and rendering based upon the change. Focus changes among the UI elements are also handled by propagating information via the virtualization interface.

Claims (39)

1. A method comprising:

rendering a view of a parent user interface (UI) element;

receiving input prompting a change to the view, wherein in response to the receiving the input:

determining, by the parent UI element, a new view of the parent UI element based on the input, including determining a visible region of the parent UI element corresponding to the new view;

determining, by the parent UI element, one or more first child UI elements of the parent UI element that are relevant to the new view based on the one or more first child elements being included within or partially included within the visible region;

creating, by the parent UI element, any non-instantiated child UI element of the one or more first child UI elements;

rendering the new view of the parent UI element;

providing, by the parent UI element via a first virtualization interface, first view change data describing the new view to the one or more first child UI elements in response to the one or more first child UI elements being included within or partially included within the visible region, wherein the first view change data defines first bound parameters of the visible region, wherein based on the reception of the first view change data as a result of the providing, the one or more first child UI elements independently determine, based on the first bound parameters, whether to virtualize or virtualize away any second child elements of the one or more first child UI elements;

in response to a first child UI element of the one or more first child UI elements being a parent to a second child element, determining, by the first child UI element based on the first bound parameters, second bound parameters of the first child UI element within the parent UI element; and

providing, by the first child UI element, second view change data to the second child UI element describing the second bound parameters via a second virtualization interface employed by the first child UI element, wherein based on the reception of the second view change data, the second child UI element independently determines, based on the second bound parameters, whether to virtualize or virtualize away any third child UI elements of the second child UI element.

2. The method of claim 1 , further comprising determining, by the parent UI element based on the input, an inflated region outside of the visible region.

3. The method of claim 2 , wherein the determining the one or more first child UI elements further comprises determining the one or more first child UI elements of the parent UI element that are relevant to the new view based on the one or more first child elements being included within the visible region or the inflated region.

4. The method of claim 3 , wherein the rendering the new view comprises rendering any of the one or more first child UI elements included within the visible region and wherein the method further comprises creating and buffering any of the one or more first child UI elements included within the inflated region.

5. The method of claim 1 , wherein the receiving the input comprises receiving user interaction directed to scrolling the parent UI element, wherein the determining the new view comprises determining a new scroll position within current visible boundaries of the parent UI element, and wherein the view change data further identifies the new scroll position.

6. The method of claim 1 , wherein the receiving the input comprises receiving user interaction directed to resizing or zooming the parent UI element.

7. The method of claim 1 , wherein the receiving the input comprises receiving user interaction directed to changing focus from a first child UI element of the parent UI element to a second child UI element.

8. The method of claim 7 , wherein the second child UI element comprises a child UI element of the parent UI element.

9. The method of claim 7 , wherein the second child UI element comprises a child UI element of a different parent UI element.

10. The method of claim 9 , further comprising communicating focus data to the different parent UI element.

11. The method of claim 10 , wherein the focus data includes direction data, and further comprising determining whether the different parent UI element has a peer UI element that is positioned in the direction corresponding to the direction data, and if so, changing focus to the peer UI element.

12. The method of claim 10 , wherein the focus data includes direction data, and further comprising determining whether the different parent UI element has a peer UI element that is positioned in the direction corresponding to the direction data, and if so, changing focus to the peer UI element, and if not, communicating the focus data to a higher parent UI element.

13. A system comprising: a memory that stores computer executable components; and a processor that executes the computer executable components stored in the memory, wherein the computer executable components comprise: a parent container user interface (UI) element having a first virtualization interface; and at least one child UI element of the parent container UI element, wherein the parent container UI element is configured to communicate with at least one the child UI element via the first virtualization interface, wherein the parent container UI element is configured to: receive input prompting a change to a rendered view of the parent container UI element, in response to reception of the input, determine a new view of the parent container UI element based on the input, including determining a visible region of the parent container UI element corresponding to the new view, determine one or more first child UI elements of the parent container UI element that are relevant to the view based on the one or more first child UI elements being included within or partially included within the visible region, create any non-instantiated child UI element of the one or more first child UI elements, render the new view of the parent container UI element, and provide first view change information describing the new view to the one or more first child UI elements via the first virtualization interface in response to the one or more first child UI elements being included within or partially included within the visible region, wherein the view change data defines first bound parameters of the visible region, and wherein based on the reception of the view change data as a result of the sending, the one or more first child UI elements independently determine, based on the first bound parameters of the visible region, whether to virtualize or virtualize away any second child elements of the one or more first child UI elements, and wherein in response to a first child UI element of the one or more first child UI elements being a parent to a second child element, the first child UI element: determines, based on the first bound parameters, second bound parameters of the first child UI element within the parent UI element; and provides second view change data to the second child UI element describing the second bound parameters via a second virtualization interface employed by the first child UI element, wherein based on the reception of the second view change data, the second child UI element independently determines, based on the second bound parameters, whether to virtualize or virtualize away any third child UI elements of the second child UI element.

14. The system of claim 13 , wherein the parent container UI element is further configured to:

determine one or more second set of child UI elements of the parent UI element that are not relevant to the new view based on being excluded from the visible region, and

virtualize away at least one second child UI element of the second the one or more second child UI elements.

15. The system of claim 13 , wherein the parent container UI element comprises a top-level parent hosted in a view host.

16. The system of claim 13 , further comprising determining, by the parent container UI element based on the input, an inflated region outside of the visible region.

17. The system of claim 16 , wherein the parent container UI element renders any of the one or more first child UI elements included within the visible region and wherein the parent UI container element further creates and buffers any of the one of more first child UI elements included within the inflated region.

18. A non-transitory machine-readable storage medium, comprising executable instructions that, when executed by a processor of a device, facilitate performance of operations, the operations comprising:

receiving a scroll interaction at a parent container UI element containing a plurality of child UI elements, wherein in response to receiving the scroll interaction:

determining, by the parent container UI element, a visible region of the parent container UI element for viewing based upon the scroll interaction;

determining, by the parent container UI element, one or more first child UI elements of the plurality of child UI elements that are included within or partially included within the visible region;

rendering the visible region of the parent container UI element;

providing, by the parent container UI element via a first virtualization interface in response to the one or more first child UI elements being included within or partially included within the visible region, first view change information defining first bound parameters of the visible region of the parent container UI element to the one or more first child UI elements;

independently determining, by the one or more first child elements based on the first view change information, whether to virtualize or virtualize away any second child elements of the one or more first child elements;

in response to a first child UI element of the one or more first child UI elements being a parent to a second child element, determining, by the first child UI element based on the first bound parameters, second bound parameters of the first child UI element within the parent UI element; and

providing, by the first child UI element, second view change data to the second child UI element describing the second bound parameters via a second virtualization interface employed by the first child UI element, wherein based on the reception of the second view change data, the second child UI element independently determines, based on the second bound parameters, whether to virtualize or virtualize away any third child UI elements of the second child UI element.

19. The non-transitory machine-readable storage medium of claim 18 , wherein the second bound parameters define a second visible region of the first child UI element for rendering within the visible region of the parent container UI element, and wherein the first child UI element further provides the second view change data to the second child UI element in response to a determination that the second child UI element is included within or partially included within the second visible region.

20. The non-transitory machine-readable storage medium of claim 19 , wherein the first child UI element further provides the second view change data to the second child UI element via the second view virtualization interface in response to another determination that first the child UI element has been configured to participate in view virtualization by implementing the second view virtualization interface.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2025
From: WARNER BROS. DISCOVERY, INC.; WARNER MEDIA, LLC; TURNER BROADCASTING SYSTEM, INC.; HOME BOX OFFICE, INC.; DISCOVERY COMMUNICATIONS, LLC; WARNERMEDIA DIRECT LLC; DISCOVERY.COM LLC; WARNER BROS. ENTERTAINMENT INC.; CNN INTERACTIVE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 072995/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2015
From: CLARK, BRENDAN JOSEPH; FURTWANGLER, BRANDON C.; PARKER, J. JORDAN C.
To: HOME BOX OFFICE, INC.
Reel/Frame 036462/0738 →
Continuity (2)
Provisional Application 62046082 · Sep 4, 2014
Related Publication 20160070434A1 · Mar 10, 2016