Adapting order of menu, submenus and cards in user interface based on particular customer usage

A electronic device may generate graphic user interface (GUI) data, based on menu data, for display as a GUI on a display device. The GUI including a plurality of user-selectable menu items configured in a first order, will update the menu data in response to a selection, by the user, of one of the plurality of user-selectable menu items. The GUI data is then updated for display as an updated GUI on the display device wherein the menu data include plurality of menu item counters corresponding to the plurality of user-selectable menu items, respectively. The updated GUI data is updated for display as the updated GUI on the display device by arranging the plurality of the user-selectable menu items in a second order based on values of the menu item counter.

BACKGROUND

Embodiments of the invention generally relate to managing graphic user interface menus.

SUMMARY

Aspects of the present disclosure are drawn to an electronic device for use with a display device and by a user. The electronic device includes a memory having menu data stored therein, and a processor configured to execute the instructions stored on the memory. The electronic device will generate graphic user interface (GUI) data, based on the menu data, for display as a GUI on the display device. The GUI including a plurality of user-selectable menu items configured in a first order, will update the menu data in response to a selection, by the user, of one of the plurality of user-selectable menu items. The GUI data is then updated for display as an updated GUI on the display device wherein the menu data include plurality of menu item counters corresponding to the plurality of user-selectable menu items, respectively. The updated GUI data is updated for display as the updated GUI on the display device by arranging the plurality of the user-selectable menu items in a second order based on values of the menu item counter.

In some embodiments, the processor is further configured to execute instructions stored on the memory to additionally cause the electronic device to generate the GUI data such that one of the plurality of user-selectable menu items includes a plurality of user-selectable sub menu items configured in a first sub menu order. The menu data includes a plurality of sub menu item counters corresponding to the plurality of user-selectable sub menu items, respectively. The menu data is updated in response to a selection, by the user, of one of the plurality of user-selectable sub menu items, so as to increase a sub menu item counter corresponding to the one of the plurality of user-selectable sub menu items. The updated GUI data is updated for display as the updated GUI on the display device by additionally arranging the plurality of user-selectable sub menu items in a second sub menu order based on values of the sub menu item counter.

In some embodiments, the processor is further configured to execute instructions stored on the memory to additionally cause the electronic device to generate the GUI data, based on the menu data, for display as a GUI menu selected from the group of types of GUI menus. This consists of a card menu, a horizontal menu, a hamburger menu, a mega menu, a scroll triggered menu, a vertical slidebar menu, a hover trigger menu, a sticky menu and a fixed menu.

In some embodiments, the electronic device further wherein the menu data includes, for each of the plurality of user-selectable menu items, a respective plurality of attributes wherein a respective menu item counter is included as of an attribute within each of the respective plurality of attributes.

In some embodiments, the processor is further configured to execute instructions stored on the memory to additionally cause the electronic device to transmit the GUI data and the updated GUI data to an external server. The memory will additionally cause the electronic device to receive the GUI data and the updated GUI data from the external server.

Other aspects of the present disclosure are drawn to a method of using an electronic device with a display device and by a user, the method includes generating, via a processor configured to execute instructions stored on a memory additionally having menu data stored therein, graphic user interface (GUI) data, based on the menu data, for display as a GUI on the display device, the GUI including a plurality of user-selectable menu items configured in a first order. The method also includes updating, via the processor, the menu data in response to a selection, by the user, of one of the plurality of user-selectable menu items. The method further includes updating, via the processor, the GUI data for display as an updated GUI on the display device, wherein the menu data includes a plurality of menu item counters corresponding to the plurality of user-selectable menu items, respectively. The menu data is updated in response to the selection, by the user, of one of the plurality of user-selectable menu items, so as to increase a menu item counter corresponding to the one of the plurality of user-selectable menu items. The updated GUI data is updated for display as the updated GUI on the display device by arranging the plurality of user-selectable menu items in a second order based on values of the menu item counter.

In some embodiments, the method further includes generating, via the processor, the GUI data such that the one of the plurality of user-selectable menu items includes a plurality of user-selectable sub menu items configured in a first sub menu order. The menu data includes a plurality of sub menu item counters corresponding to the plurality of user-selectable sub menu items, respectively. The menu data is updated in response to a selection, by the user, of one of the plurality of user-selectable sub menu items, so as to increase a sub menu item counter corresponding to the one of the plurality of user-selectable sub menu items. The updated GUI data is updated for display as the updated GUI on the display device by additionally arranging the plurality of user-selectable sub menu items in a second sub menu order based on values of the sub menu item counter.

In some embodiments, the method wherein the generating the GUI data, based on the menu data, for display as a GUI menu includes generating the GUI menu selected from the group of types of GUI menus consisting of a card menu, a horizontal menu, a hamburger menu, a mega menu, a scroll triggered menu, a vertical slide bar menu, a hover trigger menu, a sticky menu and a fixed menu.

In some embodiments, the method wherein the menu data includes, for each of the plurality of user-selectable menu items, a respective plurality of attributes wherein a respective menu item counter is included as of an attribute within each of the respective plurality of attributes.

In some embodiments, the method further including transmitting, via the processor, the GUI data ant eh updated GUI data to an external server. The method includes receiving, via the processor, the GUI data and the updated GUI from the external sever.

Other aspects of the present disclosure are drawn to a non-transitory, computer-readable media having computer-readable instructions stored thereon, the computer-readable instructions being capable of being read by an electronic device for use with a display device and by a user. The computer-readable instructions are capable of instructing the server device to perform the method including generating, via a processor configured to execute instructions stored on a memory additionally having menu data stored therein, graphic user interface (GUI) data, based on the menu data, for display as a GUI on the display device, the GUI including a plurality of user-selectable menu items configured in a first order. The method further includes updating, via the processor, the menu data in response to a selection, by the user, of one of the plurality of user-selectable menu items. The method also includes updating, via the processor, the GUI data for display as an updated GUI on the display device. The menu data includes a plurality of menu item counters corresponding to the plurality of user-selectable menu items, respectively. The menu data is updated in response to the selection, by the user, of the one of the plurality of user-selectable menu items, so as to increase a menu item counter corresponding to the one of the plurality of user-selectable menu items. The updated GUI data is updated for display as the updated GUI on the display device by arranging the plurality of user-selectable menu items in a second order based on values of the menu item counter.

In some embodiments, the non-transitory, computer-readable media includes the computer-readable instructions are capable of instructing the electronic device to perform the method. The method includes generating, via the processor, the GUI data such that the one of the plurality of user-selectable menu items includes a plurality of user-selectable sub menu items configured in a first sub menu order. The menu data includes a plurality of sub menu item counters corresponding to the plurality of user-selectable sub menu items, respectively. The menu data is updated in response to a selection, by the user, of one of the plurality of user-selectable sub menu items, so as to increase a sub menu item counter corresponding to the one of the plurality of user-selectable sub menu items. The updated GUI data is updated for display as the updated GUI on the display device by additionally arranging the plurality of user-selectable sub menu items in a second sub menu order based on values of the sub menu item counter.

In some embodiments, the non-transitory, computer-readable media includes the computer-readable instructions are capable of instructing the server device to perform the method wherein the generating the GUI data, based on the menu data, for display as a GUI menu includes generating the GUI menu selected from the group of types of GUI menus consisting of a card menu, a horizontal menu, a hamburger menu, a mega menu, a scroll triggered menu, a vertical slide bar menu, a hover trigger menu, a sticky menu and a fixed menu.

In some embodiments, the non-transitory, computer-readable media includes the computer-readable instructions are capable of instructing the electronic device to perform the method wherein the menu data includes, for each of the plurality of user-selectable menu items, a respective plurality of attributes. A respective menu item counter is included as of an attribute within each of the respective plurality of attributes.

In some embodiments, the non-transitory, computer-readable media includes the computer-readable instructions are capable of instructing the electronic device to perform the method further including transmitting, via the processor, the GUI data and the updated GUI data to an external server. The method additionally including receiving, via the processor, the GUI data and the updated GUI data from the external server.

DETAILED DESCRIPTION

Aspects of the present disclosure play a vital role in onboarding and managing a router in the customer premises of the user. The client device is essentially used as a single point of control for the features supported by a router with 4×4 802.11ax Wi-Fi 6 mesh network technology.

One of the important parts of UI design in any client device is about creating and providing meaningful menus, submenus and cards to direct the user to their desired page in the client device and then complete their action. If the menus, submenus, and cards are not meaningfully named, the users may end up picking the items that are not suitable for their actions. This will have negative effects on users and may lose users' interest and their first impression of using the client device. Hence, choosing meaningful names for the menus, submenus and titles for the cards is one important item. Another critical element in the UI design is the ability to quickly lead user to and prompt the desired item (which can be a user-selectable menu item, user-selectable submenu item or a digital card display) to the user in the client device.

In a client device UI design, menus and submenus have always dominated as the most important start point for maneuvering the device. Menus and submenus are available in various forms out of which the top commonly used ones include: a card menu, a horizontal menu, hamburger menu, mega menu, scroll triggered menu, vertical sidebar menu, hover triggered menu, and lastly sticky or fixed menu.

Another important UI design item frequently used is the representation in form of digital cards. Cards are little rectangles with images, text and specialized background colors or patterns that serve as entry points to more detailed information. Digital cards are useful in UI design because they are straightforward analogs to real-world cards.

Using cards has many advantages including the ability to display heterogenous content from varying sources such as network related information which can include router information and parental control features for example. Another advantage is the responsive and dynamic content that can aggregate content to show content based on context as well as being a medium for interaction and media files where the card itself can act as a window to interact and play media files such as audio and video to the user. An additional advantage is for call-to-actions (CTAs) that need specific attention from the user such as describing and propping up subscription information for a paid feature. This card may require the user to click and go to more descriptive information of the feature or subscribe to the feature itself. Another advantage of using cards is with varying screen sizes, where card content could be either increased or decreased based on screen size.

Aspects of the present disclosure are incorporated with well-articulated names for menus that describe the menus, submenus and cards items in the UI design. However, there are some limitations with card designs. One limitation is that fixed menus and submenus are static, can be too long for the display port, and are not customizable. Favorites are also fixed within the UI design. Another limitation is that several cards are provided in one page which requires the user to scroll through all cards every time to reach the card that may be at the bottom of the page. A further limitation is that there is no animation possibility as it is not customizable for each user and the amount of information could easily overwhelm the user if it is displayed for each and every visit to the pages.

This disclosure shows how the device will incorporate steps in a novel way so that the above limitations may be overcome while continuing to employ the menus, submenus and cards in the same level of richness and simplicity in the invention.

Consider for purposes of this discussion, that the user is accessing a menu through a client device. As will be discussed in greater detail below, the client device is able to generate GUI data, based on the menu data, for display as a GUI on the display device. The GUI menu displays a plurality of user-selectable menu items for the user. However, the client may not know how to get to certain user-selectable menu items, and with the many choices it may be difficult to navigate through the menu. This may be time-consuming for the client and could increase frustration when trying to operate the product.

FIG.1illustrates an example algorithm100to be executed by a processor for automatically rearranging user-selectable menu items on a GUI menu, in accordance with aspects of the present disclosure.

As shown in the figure, algorithm100starts (S102), and GUI data is generated (S104). For example, with the situation previously mentioned, the processor of the client device is configured to execute instructions stored on the memory to cause the client device to generate GUI data, based on the menu data, including user-selectable menu items such as add a new satellite, speed test history, settings, etc. When first presented, the menu is displayed in a predetermined order. However, as will be discussed in greater detail below, the menu data will be updated in response to the user's selections. Also, the menu is displayed in a new order based on the updated menu data.

Returning toFIG.1, after GUI data is generated (S104), a user-selectable menu item selection is detected (S106).

FIG.2illustrates a system200for modifying a GUI, in accordance with aspects of the present disclosure.

As shown in the figure, system200includes a client device202, a display204, an external server206, a communication channel210, and a communication channel212. In this embodiment, client device202and display device are illustrated as distinct devices. In some embodiments client device202and display device204may be implemented as a unitary device as illustrated by dotted box208.

Client device202is configured to communicate with display204via communication channel210. Client device202is additionally configured to communicate with external server206via communication channel212.

FIG.3illustrates an exploded view of client device202ofFIG.2.

Controller302is configured to communicate with memory304.

In this example, controller302and memory304are illustrated as individual devices. However, in some embodiments, controller302and memory304may be combined as a unitary device. Whether as individual devices or as combined devices, controller302and memory304may be implemented as any combination of an apparatus, a system, and an integrated circuit. Further, in some embodiments, at least one of controller302and memory304may be implemented as a computer having non-transitory computer-readable media for carrying or having computer-executable instructions or data structures thereon. Such non-transitory computer-readable recording medium refers to any computer program product, apparatus or device, such as a magnetic disk, optical disk, solid-state storage device, memory, programmable logic devices (PLDs), DRAM, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired computer-readable program code in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Disk or disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc. Combinations of the above are also included within the scope of computer-readable media. For information transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer may properly view the connection as a computer-readable medium. Thus, any such connection may be properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media.

Example tangible computer-readable media may be coupled to a processor such that the processor may read information from, and write information to the tangible computer-readable media. In the alternative, the tangible computer-readable media may be integral to the processor. The processor and the tangible computer-readable media may reside in an integrated circuit (IC), an application specific integrated circuit (ASIC), or large scale integrated circuit (LSI), system LSI, super LSI, or ultra LSI components that perform a part or all of the functions described herein. In the alternative, the processor and the tangible computer-readable media may reside as discrete components.

Components of an example computer system/server may include, but are not limited to, one or more processors or processing units, a system memory, and a bus that couples various system components including the system memory to the processor.

A program/utility, having a set (at least one) of program modules, may be stored in the memory by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. The program modules generally carry out the functions and/or methodologies of various embodiments of the application as described herein.

Controller302may be a hardware processor such as a microprocessor, a multi-core processor, a single core processor, a field programmable gate array (FPGA), a microcontroller, an application specific integrated circuit (ASIC), a digital signal processor (DSP), or other similar processing device capable of executing any type of instructions, algorithms, or software for controlling the operation and functions of client device202in accordance with the embodiments described in the present disclosure.

Memory304can store various programming, and user content, and data including GUI data308. In some embodiments, as will be described in more detail below, memory304includes instructions to be executed by controller302to enable client device202to generate GUI data308, based on the menu data, for display as a GUI on display204. The GUI includes a plurality of user-selectable menu items configured in a first order. The menu data is updated in response to a selection, by the user, of one of the plurality of user-selectable menu items. GUI data308is updated for display as an updated GUI on display204, wherein the menu data includes a plurality of menu item counters corresponding to the plurality of user-selectable menu items, respectively. The menu data is updated in response to the selection, by the user, of the one of the plurality of user-selectable menu items, so as to increase a menu item counter corresponding to the one of the plurality of user-selectable menu items. GUI data308is updated for display as the GUI is updated on display204by arranging the plurality of user-selectable menu items in a second order based on values of the menu item counter.

In some embodiments, as will be described in more detail below, memory304includes instructions to be executed by controller302to enable client device202to generate GUI data308such that the one of the plurality of user-selectable menu items includes a plurality of user-selectable submenu items configured in a first sub menu order. The menu data includes a plurality of submenu item counters corresponding to the plurality of user selectable submenu items, respectively. The menu data is updated in response to a selection, by the user, of one of the plurality of user-selectable submenu items, so as to increase a submenu item counter corresponding to the one of the plurality of user-selectable submenu items. GUI data308is updated for display as the updated GUI on display204by additionally arranging the plurality of user-selectable submenu items in a second submenu order based on values of the submenu item counter.

In some embodiments, as will be described in more detail below, memory304includes instructions to be executed by controller302to enable client device202to generate GUI data308, based on the menu data, for display as a GUI menu selected from the group of types of GUI menus consisting of a card menu, a horizontal menu, a hamburger menu, a mega menu, a scroll triggered menu, a vertical slidebar menu, a hover trigger menu, a sticky menu and a fixed menu.

Controller302may interface with one or more layers including a human-machine interface (HMI) machines with physical input hardware such as keyboards, mice, game pads and output hardware such as computer monitors, speakers, and printers. Additional user interface (UI) layers may interact with one or more human senses, including tactile UI (touch), visual UI (sight), and auditory UI (sound). For example, the user may use client device202that has a touch display as a way of accessing their controller.

In further embodiments, with reference toFIG.3, in the event that the display device is a secondary device and it is a user interface display device, for example a touch display, then the user selecting with touch display will go through communication channel210to controller302.

FIG.4Aillustrates a non-limiting example of display204displaying a GUI404at time to, in accordance with aspects of the present disclosure.

As shown in in the figure, GUI404includes user-selectable menu items406,408,410,412, and414.

With reference toFIG.4A, the menu data is updated in response to a selection by the user within the data processing of the device. However, the user does not see this change immediately; they only perceive the updated version of the menu after a predetermined period of time.

For example, the user may choose the user-selectable menu item speed test history, which will open up a display with further information regarding speed test history. The GUI data for display will be updated after a predetermined time period, for example, a week, and will then present the user's most selected user-selectable menu items first.

In some embodiments, the GUI data for display may be updated in real time. The menu may also show some changes in font size or font color with addition to the order changes.

In an example embodiment, as shown inFIG.2, the user may interact with a touch screen, in this example display204, which instructs device202what was selected. More specifically, as shown inFIG.4A, a user may select Get Alexa Skills410. Additionally, as shown inFIG.3, controller302would update GUI data308and memory304based on the selection by the user.

Returning toFIG.1, after a user-selectable menu item selection is detected (S106), menu data is updated (S108).

FIG.5Aillustrates a non-limiting example of a lookup table (LUT)500at time to, in accordance with aspects of the present disclosure.

As shown in the figure, LUT500includes a menu item column502, a counter column504, a font size column506, a font color column508, a location column510, a row512, a row514, a row516, a row518, and a row520.

Data entries in menu item column502identify each user-selectable menu item shown inFIG.4A, as a respective identifier. In this example, each identifier includes a four letter portion related to the title of the corresponding user-selectable menu item ofFIG.4A, a dash and an integer. In this example, the integer corresponds to the number of times each user-selectable menu item has been selected. For example, ANST-0 in row512identifies menu item406Add a New Satellite inFIG.4A. At time t0, no user-selectable menu items have been selected. As such, all the integers in the data entries of menu item column502are zero.

Counter column504identifies how many times each user-selectable menu item has been chosen, which in this example, at time t0indicates that no user-selectable menu item has been chosen. It should be noted that in some embodiments, either counter column504is not included or the integer in each data entry of menu item column502is not included.

Font size column506identifies the font size at which each user-selectable menu item will be presented. In this example, no items have been chosen causing the font size to remain at the standard, which in this example is 12 point font.

Font color column508identifies the font color given to each of the user-selectable menu items. Since none of the items have yet to be selected, the font color remains at the standard, which in this example is black.

Location column510identifies the location in which the user-selectable menu items will be presented to the user. In this example, the user-selectable menu items are presented in a single card column as shown inFIG.4A. Accordingly, in column510, all the user-selectable menu items are in indicated as being in the same horizontal plane as indicated by H1. Further, the user-selectable menu items are arranged in a predetermined default manner vertically as indicated by V1, V2, V3, etc. For example, column510row512shows the location of ANST-0 inFIG.4Awhich can be seen as the first user-selectable menu item presented to the user, item406Add a New Satellite.

FIG.5Billustrates LUT500ofFIG.5Aat time t1, in accordance with aspects of the present disclosure.

As the user makes selections, the data within the columns of LUT500will update accordingly. For example, consider the situation wherein as shown inFIG.4A, user-selectable menu item410Get Alexa Skills has been selected once at time t1. As shown inFIG.5B, counter column504row516has been increased to 1. However, it should be noted that data within location column510ofFIG.5Bhas not yet changed as compared toFIG.5A. This is because the predetermined period of time or number of times an item needs to be selected has yet to be reached at time t1.

FIG.5Cillustrates LUT500ofFIG.5Aat time t2, in accordance with aspects of the present disclosure.

In this example, at time t2, the predetermined period of time or number of times an item needs to be selected has been reached. As shown in the figure, counter column504row520shows that Settings, or SETT-8, has been selected 8 times as indicated by the 8 in the counter column as well as an 8 replacing a 0 in the menu item name.

Settings, or SETT-8, has been chosen the most, so in this non-limiting example embodiment font size column506row520shows the corresponding font change, which in this example is 13. The other less selected items were given smaller font sizes, as shown in column506with the number 11. By changing the font to be more pronounced over the other user-selectable menu items, the Settings user-selectable menu item will be more easily seen by the user.

Font color column508also indicates change in row520, where the item chosen the most has the font color change to blue, as indicated in the row with the word “Blue”. By changing the font to have a different color as compared with the other user-selectable menu items, the Settings user-selectable menu item will be more easily seen by the user.

Lastly, location column510shows the changes made to the order of presentation to the user-selectable menu items based on the number of times chosen. While the orientation of the user-selectable items does not change horizontally in this example, they are rearranged vertically from the menu-selectable item chosen the most being presented at the top, with lesser chosen menu-selectable items descending down to where the menu-selectable item chosen the least being presented at the bottom. For example, SETT-0 was chosen the most, as indicated in counter column504row520, so this item is given horizontal 1 vertical 1, as shown in the figure as “H1 V1”. This order presentation change is shown inFIG.4Bwith Settings414being shown at the top of the user's screen.

In an example embodiment, controller302ofFIG.3rearranges the user-selectable menu items in real time. For example, as shown inFIG.4A, consider the user selecting Get Alexa Skills410. Each time the user selects this, GUI data308is updated in memory304of client device202. This change is shown with row516inFIGS.5A and5B.

However, in some embodiments, controller302makes the changes after a predetermined time period. For example, controller302may rearrange user-selectable menu items based on the number of selection after a week.

Further, in some embodiments, controller302may rearrange user-selectable menu items based on a number of selections. For example, as shown inFIG.5C, the user-selectable menu items may be rearranged after a user-selectable menu item, such as Get Alexa Skills516, is chosen 5 times. Once the number of times has been reached, controller302rearranges the user-selectable menu items in accordance with those changes.

In an example embodiment,FIG.4Ashows display204before user interaction as well asFIG.5Ashowing an example of a LUT showing user-selectable menu items before they are interacted with. If the user were to choose Get Alexa Skills410, as shown inFIG.4A, the counter column504ofFIG.5Bwould be updated based on the selection detection.

Returning toFIG.1, after menu data is updated (S108), GUI data is updated (S110).

FIG.4Billustrates display204displaying GUI404at time t1, in accordance with aspects of the present disclosure.

For example, with reference toFIG.5C, if the user were to choose Get Alexa Skills 5 times, Add a New Satellite 3 times, Currently Blocked Devices 0 times, Speed Test History 1 time, and Settings 8 times; then the user-selectable menu items would be presented as shown inFIG.4Bas: user-selectable menu item414titled Settings, user-selectable menu item410titled Get Alexa Skills, user-selectable menu item406titled Add a New Satellite, user-selectable menu item408titled Speed Test History, and user-selectable menu item412titled Currently Blocked Devices.

As mentioned previously, the user-selectable menu items are arranged based on the number of times they are selected as indicated by counter column504. This then corresponds with their location as shown in location column510, with the user-selectable menu items selected the most being the first item presented and with the user-selectable menu item selected the least being pushed to the bottom of the list. In this example, SETT-8, or user-selectable menu item414titled Settings as shown inFIG.4B, was selected the most and is shown first due to the location column being H1 V1, this meaning a position of horizontal 1 and vertical 1. However, CBDV-0, or user-selectable menu item412titled Currently Blocked Devices as shown inFIG.4B, was selected the least and is shown last due to the location column being H1 V5, meaning a position of horizontal 1 and vertical 5.

In some embodiments, user-selectable user-selectable menu items may be chosen the same number of times. In these instances, they may be further arranged in alphabetical order. For example, if the user-selectable menu items Currently Blocked Devices and Speed Test History were both chosen five times, Currently Blocked Devices would receive the H1 V1 location column spot while Speed Test History would receive the H1 V2 column spot.

Returning toFIG.1, after GUI data is updated (S110), algorithm100stops (S112).

FIG.6Aillustrates a non-limiting example of display204displaying a GUI604at time t3, in accordance with aspects of the present disclosure.

As shown in the figure, GUI604includes user-selectable menu items606,608,610, and612.

In an example embodiment, as shown inFIG.2, the user may interact with a touch screen, in this example, display204, which instructs device202what was selected. More specifically, as shown inFIG.4A, a user may select Add a New Satellite406. This then presents menu with more information regarding adding a satellite such as Satellite Name606, SSID608, Search Locally610, and Security612. The user then has the option to select one of these user-selectable menu items to interact with. Additionally, as shown inFIG.3, controller302would update GUI data308and memory304based on the selection by the user.

FIG.6Billustrates display204displaying GUI604at time t4, in accordance with aspects of the present disclosure.

FIG.7Aillustrates a non-limiting example of a LUT700at time t3in accordance with aspects of the present disclosure.

As shown in the figure, LUT700includes a menu item column702, a counter column704, a font size column706, a font color column708, a location column710, a row712, a row714, a row716, and a row718.

Data entries in menu item column702identify each user-selectable submenu item shown inFIG.6A, as a respective identifier. In this example, each identifier includes a four letter portion related to the title of the corresponding user-selectable menu item for which the submenu item belongs, a first dash, a two letter portion related to the title of the corresponding user-selectable submenu item ofFIG.6A, a second dash, and an integer. In this example, the integer corresponds to the number of times each user-selectable submenu item has been selected. For example, ANST-SN-0 in row712identifies user-selectable submenu item606Satellite name inFIG.6A.

Counter column704identifies how many times each user-selectable submenu item has been chosen. Counter column704is identifies that at time t3no user-selectable menu item has been chosen. Font size column706identifies the font size each user-selectable submenu item will be presented in. In this example, no items have been chosen causing the font size to remain at the standard, which in this example is 12 point font. Font color column708identifies the font color given to each of the user-selectable submenu items. Since none of the user-selectable submenu items have yet to be selected, the font color remains at the standard, which in this example is black. Location column710identifies the location in which the user-selectable submenu items will be presented to the user. In this example, none of the user-selectable submenu items have been selected so they are in the same horizontal plane as indicated by H1. The items are arranged in a predetermined default manner vertically as indicated by V1, V2, V3, etc. For example, column710row712shows the location of ANST-SN-0 inFIG.6Awhich can be seen as the first user-selectable submenu item presented to the user, user-selectable submenu item606Satellite Name.

FIG.7Billustrates LUT700ofFIG.7Aat time t4, in accordance with aspects of the present disclosure.

As the user makes selections, the columns will update accordingly. For example, as shown inFIG.6A, user-selectable menu item608SSID has been selected once at time t4, shown inFIG.7Bas the 1 in counter column704row714. However, the location column has not yet changed, as shown in location column710row714being the same as inFIG.7A. This is because the predetermined period of time or number of times a user-selectable submenu item needs to be selected has yet to be reached at time t3.

FIG.7Cillustrates LUT700ofFIG.7Aat time t5in accordance with aspects of the present disclosure.

In this example, at time t5, the predetermined period of time or number of times a user-selectable submenu item needs to be selected has been reached. Counter column704identifies the number of times each user-selectable submenu item has been selected. For example, counter column704row714shows that SSID, or ANST-SD-4, has been selected 4 times by the 4 in the counter column as well as a 4 replacing a 0 in the menu item name. This user-selectable submenu item has been chosen the most, so font size column706row714shows the corresponding font change, which in this example is 13. The other less selected user-selectable submenu items were given smaller font sizes, as shown in column706with the number 11. Font color column708also indicates change in row714, where the item chosen the most has the font color change to blue, as indicated in the row with the word “Blue”. Lastly, location column710shows the changes made to the order of presentation to the user-selectable submenu items based on the number of times chosen. While the items orientation does not change horizontally in this example, they are arranged vertically from the user-selectable submenu item chosen the most being displayed at the top to the user-selectable submenu item chosen the least being displayed at the bottom. For example, ANST-SD-4 was chosen the most, as indicated in counter column704row714, so this user-selectable submenu item is given horizontal 1 vertical 1, as shown in the figure as “H1 V1”. This order presentation change is shown inFIG.6Bwith submenu item SSID608being shown at the top of the display.

As discussed with reference toFIG.5C, in the event of two user-selectable menu items (or submenu items) being chosen the same number of times, then such evenly selected user-selectable menu items (or submenu items) may then be organized in alphabetical order.

In an example embodiment, controller302ofFIG.3rearranges the user-selectable menu items in real time. For example, as shown inFIG.6A, consider the user selects SSID608. Each time the user selects this, GUI data308is updated in memory304of client device202. This change is shown with row714inFIGS.7A and7B.

In an example embodiment,FIG.6Ashows display204before user interaction as well asFIG.7Ashowing an example of a LUT showing menu items before they are interacted with. If the user were to choose SSID608, as shown inFIG.6A, the counter column704ofFIG.7Bwould be updated based on the selection detection.

In an example embodiment, with reference toFIG.7C, if the user were to choose Satellite Name 3 times, SSID 4 times, Search Locally 0 times, and Security 1 time, then the menu items would be presented as shown inFIG.6B: SSID608, Satellite Name606, Security612, and Search Locally610.

In an example embodiment, the menu is drawn to a menu of the client device. The menu may be for another device that the client device is controlling. For example, if the client device is controlling an access point device (APD), gateway, or television, etc., then the menu associated with the operations of the device to be controlled will be presented to the user.

Further, in some embodiments, the client device in the above discussed non-limiting example may be any device that has a menu associated with it, non-limiting examples of which include Internet of Things (JOT) devices, or other devices such as an automobile having a GUI to control operations of the automobile.

Further, in some embodiments, the client device in the above discussed non-limiting example may provide to the user an ability to manage these UI menus, submenus and card rearrangement, if desired. For example, the client device may provide customization options in a separate UI page that may turn off customization. In other examples, the client device may provide customization options in a separate UI page that may customize menu, submenu and cards based on: a descending order; a most recently used shown on top; or alphabetically. In other examples, the client device may provide customization options in a separate UI page that may reset all customizations.

In this disclosure, a novel technique presents a UI design offered by menus, submenus and cards while also helping to customize the menus, submenus and cards in a way specific to that particular user. The disclosure is to keep different counters to track the usage of menus, submenus and cards in the client device. By gathering information in form of these counters, there are several advantages that the invention design can immediately reuse in the client device. The invention can choose to display the most commonly used items to a greater degree, e.g., by position, shape, size, etc., and display the least commonly used items to a lesser degree. This is a self-customization that is naturally occurring in the client device and is not random but customized for user and by the user themselves. Further, campaigns could be targeted and shown as special cards based on the most commonly preferred items by the user. Data collected in the device may easily be controlled as a global device setting to erase all customizations or restart fresh customizations or turn off customizations or as a local device setting to erase a specific menu customization or submenu customization or specific card customization. Information may also be included in the device analytics and stored in the device cloud for deep learning.

The operations disclosed herein may constitute algorithms that can be effected by software, applications (apps, or mobile apps), or computer programs. The software, applications, computer programs can be stored on a non-transitory computer-readable medium for causing a computer, such as the one or more processors, to execute the operations described herein and shown in the drawing figures.