US20230137957A1 - Revolving on-screen virtual keyboard for efficient use during character input - Google Patents
Revolving on-screen virtual keyboard for efficient use during character input Download PDFInfo
- Publication number
- US20230137957A1 US20230137957A1 US18/091,324 US202218091324A US2023137957A1 US 20230137957 A1 US20230137957 A1 US 20230137957A1 US 202218091324 A US202218091324 A US 202218091324A US 2023137957 A1 US2023137957 A1 US 2023137957A1
- Authority
- US
- United States
- Prior art keywords
- virtual keyboard
- cursor
- characters
- column
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 38
- 230000033001 locomotion Effects 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 description 30
- 230000015654 memory Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 241000272470 Circus Species 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000219357 Cactaceae Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 235000009508 confectionery Nutrition 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 230000003090 exacerbative effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04886—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
- G06F3/0236—Character input methods using selection techniques to select from displayed items
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
- G06F3/0233—Character input methods
- G06F3/0237—Character input methods using prediction or retrieval techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/42204—User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
- H04N21/42206—User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor characterized by hardware details
- H04N21/42212—Specific keyboard arrangements
- H04N21/42213—Specific keyboard arrangements for facilitating data entry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04801—Cursor retrieval aid, i.e. visual aspect modification, blinking, colour changes, enlargement or other visual cues, for helping user do find the cursor in graphical user interfaces
Definitions
- aspects and implementations of the present disclosure relate to a virtual keyboard, and more specifically, to a revolving on-screen virtual keyboard for efficient use during character input.
- Various platforms may provide media content items that are shared by users (e.g., user-uploaded videos, live-streaming videos) and/or provided by various entities (e.g., movies and/or television shows made by production studios).
- the media content items may include pre-recorded or live-streaming content that is presented to a user on a client device via a user interface of the platforms.
- the user may access the user interface and use a virtual keyboard to enter a search query for a desired media content item to consume.
- Other platforms may provide a virtual keyboard to input characters to perform various operations (e.g., writing a review, writing an electronic message, entering a uniform resource locator, etc.) associated with the platforms.
- Using certain electronic devices to input characters with conventional virtual keyboards may be tedious and entail entering an inefficient number of key inputs to enter the desired characters.
- a virtual keyboard can include one or more characters, symbols, numbers, and/or special characters.
- a focus of a cursor can be fixed to a first column or a first row in the virtual keyboard.
- a list of word suggestions may be displayed immediately adjacent to the first row or the first column.
- the word suggestions may be associated with a search suggestion (e.g., title of a media content item), word auto-completions for any suitable purpose (e.g., typing out a website URL, email address, word completions to facilitate writing user feedback, etc.), or the like.
- the user's cursor focus position may be one-click away from accessing the list of word suggestions that may enable the user to quickly complete their query without needing to fully type it to completion (e.g., reducing key presses).
- the character currently in the focus of the cursor may wrap around the first column to a last column or around the first row to a last row while the cursor remains fixed at its current location in the first column and/or first row in the virtual keyboard.
- the characters may wrap around a vertical axis or a horizontal axis within the virtual keyboard in a cylindrical fashion.
- the movement of the characters in the virtual keyboard may be restricted to a direction opposite the first direction (e.g., from right to left or from down to up).
- the cursor may move to the list of word suggestions.
- Constructing the virtual keyboard in this way allows the user's cursor focus to have immediate access to the list of word suggestions regardless of which character is positioned within the focus of the cursor.
- the focus of the cursor may be just one-click away from the list of word suggestions at any given time. Accordingly, the user may complete a search with far fewer clicks than if the cursor was at a very far edge of the virtual keyboard at the time the appropriate search suggestion materializes. Reducing the number of key inputs may reduce the computing resources consumed by an input electronic device (e.g., remote controller), a client device displaying the virtual keyboard that processes the key inputs and displays search results, and a server that performs searches using the input characters and returns the search results.
- an input electronic device e.g., remote controller
- the user's eye-gaze/visual focus is going to be centered on the word suggestions more of the time, thereby providing an easier time identifying when the suggestion they are looking for appears. Accordingly, the user experience may be enhanced when using the disclosed techniques.
- a method comprising: displaying a user interface on a display of a client device, the user interface comprising a virtual keyboard including a plurality of characters arranged in one or more rows and one or more columns; fixing a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard, wherein at least one of the plurality of characters is within the focus of the cursor; responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, wrapping the at least one of the plurality of characters around the row or the column to a last row or a last column of the virtual keyboard to present another of the plurality of characters within the focus of the cursor; and responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, moving the focus of the cursor to a list of word suggestions.
- the method may further comprise restricting movement of the plurality of characters within the virtual keyboard to a direction opposite to the first direction.
- the method may further comprise displaying the list of word suggestions immediately adjacent to the first row or the first column.
- the first direction may be a horizontal direction; and the method may further comprise, responsive to receiving the first request to move the cursor in the horizontal direction in the virtual keyboard, wrapping the at least one of the plurality of characters around the first column to the last column in the virtual keyboard.
- the first direction is a vertical direction; and the method may further comprise, responsive to receiving the first request to move the cursor in the vertical direction in the virtual keyboard, wrapping the at least one of the plurality of characters around the first row to the last row in the virtual keyboard.
- the method may further comprise displaying a query builder that displays one or more characters as the one or more characters are selected from the virtual keyboard.
- the last row may be located at an opposing side of the virtual keyboard from the first row and the last column may be located at an opposing side of the virtual keyboard from the first column.
- the method may further comprise: responsive to receiving a third request to select one of the plurality of characters that are within the focus of the cursor, updating the list of word suggestions to include one or more entries including the selected one of the plurality of characters.
- the at least one of the one or more entries in the list may have a word that is automatically completed based on the selected one of the plurality of characters.
- the second direction may be opposite the first direction.
- the plurality of characters may comprise all letters or symbols of a language being presented in the virtual keyboard.
- the client device may be a television and the first request and the second request may be received from a remote controller in communication with the television.
- a non-transitory, computer-readable medium storing instructions that, when executed, cause a processing device to: display a user interface on a display of a client device, the user interface comprising a virtual keyboard including a plurality of characters arranged in one or more rows and one or more columns; fix a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard, wherein at least one of the plurality of characters is within the focus of the cursor; responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, wrap the at least one of the plurality of characters around the row or the column to a last row or a last column of the virtual keyboard to present another of the plurality of characters within the focus of the cursor; and responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, move the focus of the cursor to a list of word suggestions.
- the instructions when executed, may cause the processing device to restrict movement of the plurality of characters within the virtual keyboard to a direction opposite the first direction.
- the instructions when executed, may cause the processing device to display the list of word suggestions immediately adjacent to the first row or the first column.
- the first direction may be a horizontal direction; and the instructions, when executed, may cause the processing device to, responsive to receiving the first request to move the cursor in the horizontal direction in the virtual keyboard, wrap the at least one of the plurality of characters around the first column to the last column in the virtual keyboard.
- the first direction may be a vertical direction; and the instructions, when executed, may cause the processing device is further to, responsive to receiving the first request to move the cursor in the vertical direction in the virtual keyboard, wrap the at least one of the plurality of characters around the first row to the last row in the virtual keyboard.
- the instructions when executed, may cause the processing device to display a query builder that displays one or more characters as the one or more characters are selected from the virtual keyboard.
- the last row may be located at an opposing side of the virtual keyboard from the first row and the last column may be located at an opposing side of the virtual keyboard from the first column.
- a system comprising: a memory device; a processing device operatively coupled to the memory device, the processing device to: display a user interface on a display of a client device, the user interface comprising a virtual keyboard including a plurality of characters arranged in one or more rows and one or more columns; fix a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard, wherein at least one of the plurality of characters are within the focus of the cursor; responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, wrap the at least one of the plurality of characters around the row or the column to a last row or a last column of the virtual keyboard to present another of the plurality of characters within the focus of the cursor; and responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, move the focus of the cursor to a list of word suggestions.
- FIG. 1 illustrates an example of system architecture for efficiently searching for media content items, in accordance with one implementation of the disclosure.
- FIG. 2 depicts a flow diagram of aspects of a method for efficiently searching for media content items, in accordance with one implementation of the present disclosure.
- FIG. 3 A illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a first horizontal direction, in accordance with one implementation of the disclosure.
- FIG. 3 B illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the selection in FIG. 3 A , and the user has selected to move the cursor in the first horizontal direction, in accordance with one implementation of the disclosure.
- FIG. 3 C illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the selection in FIG. 3 B , and the user has selected a character under the focus of the cursor to add to a query builder, in accordance with one implementation of the disclosure.
- FIG. 3 D illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a vertical direction, in accordance with one implementation of the disclosure.
- FIG. 3 E illustrates an example of a user interface including a virtual keyboard where the cursor has moved down a row based on the selection in FIG. 3 D , and the user has selected to move the cursor in the first horizontal direction, in accordance with one implementation of the disclosure.
- FIG. 3 F illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the selection in FIG. 3 E , and the user has selected a character under the focus of the cursor to add to a query builder, in accordance with one implementation of the disclosure.
- FIG. 3 G illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a second horizontal direction, in accordance with one implementation of the disclosure.
- FIG. 3 H illustrates an example of a user interface including a virtual keyboard where the cursor has moved to a list of word suggestions based on the selection in FIG. 3 G , and the user has selected to move the cursor down in the list of word suggestions, in accordance with one implementation of the disclosure.
- FIG. 3 I illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a horizontal direction to return to the virtual keyboard, in accordance with one implementation of the disclosure.
- FIG. 3 J illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in the first horizontal direction a number of times, in accordance with one implementation of the disclosure.
- FIG. 3 K illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the number of selections in FIG. 3 J , the user has selected a character under the focus of the cursor to add to a query builder, and the user has selected to move the cursor in the second horizontal direction, in accordance with one implementation of the disclosure.
- FIG. 3 L illustrates an example of a user interface including a virtual keyboard where the cursor has moved to a list of word suggestions based on the selection in FIG. 3 K , and the user has selected an auto-completed title of a media content item to consume, in accordance with one implementation of the disclosure.
- FIG. 4 depicts a block diagram of an example computing device operating in accordance with one or more aspects of the present disclosure.
- a technical problem addressed by implementations of the disclosure is that unnecessary processing resources and network bandwidth resources may be consumed by typing in characters using virtual keyboards.
- a virtual keyboard may refer to a software component that allows the input of characters without the need for physical keys. The interaction with the virtual keyboard may happen via a touchscreen interface, but can also take place in a different form in virtual or augmented reality.
- a virtual keyboard may be used when searching for a media content item to consume, entering user feedback, entering an electronic message (e.g., email, text, etc.), entering a website URL, and the like.
- searching for media content items is primarily described below as an example of using the enhanced virtual keyboard of the present disclosure, it should be understood that any suitable implementation that may benefit from the enhanced virtual keyboard is considered to be within the scope of the disclosure.
- typing in a search query may often include multiple key-presses to navigate a cursor around a virtual keyboard and select characters using a directional pad (“D-pad”).
- the multiple key presses can undesirably consume processing resources on both an electronic device (e.g., remote controller (if used)), client device (e.g., a television (which displays the virtual keyboard)), a server (which performs queries using received characters that were selected), and the network over which media content items and search results are sent while the user is typing a query. This may be particularly problematic for the remote controller where battery life is limited and processing the multiple key presses may drain the batteries.
- each time a character is entered by a user the character is transmitted from the client device to a server to look-up media content items based on the entered character.
- the server may transmit found media content items that include one or more of the entered characters in their titles as word suggestions (e.g., search suggestions and/or auto-completions) to the client device that is displaying the user interface.
- Word suggestions may refer to search suggestions that include one or more characters that are different than the characters selected in the virtual keyboard (e.g., “film” may be suggested as a word for “felm” entered via the virtual keyboard).
- Auto-completions may refer to words that include at least each of the characters selected from the virtual keyboard (e.g., “film” may be suggested as an auto-completed word for “fi” entered via the virtual keyboard).
- a data payload for transferring the suggestions may include a thumbnail, the full video file of the media content item, and/or metadata (e.g., title and description of the media content item).
- Sending multiple data payloads as the user enters the search query can consume processing resources at the server to perform the look-ups, processing resources at the client device by displaying the list of word suggestions, network bandwidth resources by sending multiple data payloads as the characters are entered, and the like.
- the number of key presses may increase if a suggestion appears in the list but the cursor is at a far end of the virtual keyboard. The user may have to press a key in a certain direction numerous times to move the cursor across the keyboard to the list of word suggestions. This results in a slow process in the user arriving at a desired suggestion and unnecessary compute resource usage to process the excess key presses.
- Another technical problem addressed by implementations of the disclosure is that entering a search query in a conventional manner by moving a cursor across multiple rows and columns to find the desired characters can be error-prone for a user.
- the user has to track the cursor around the virtual keyboard and stop it on the desired character to select that character. If a title includes multiple characters, the more key-presses required to enter the title, the higher the chance of the user selecting a wrong character on accident. Erroneously entering a character may cause a data payload to be transmitted that includes wrong suggested words that were found based on the erroneous character.
- more processing resources of the server and client device, and network resources may be incurred. Additionally, errors in this manner should be corrected by the user by navigating to a delete key of the virtual keyboard, thereby exacerbating the problems described above.
- Voice enabled remote controls with embedded microphones allow a user to provide an audible search query.
- these conventional solutions suffer from inaccuracies in detecting the search query spoken by a user.
- implementations of the present disclosure relate to reducing the number of key-presses required to enter characters (e.g., entering a search query, an electronic message, user feedback, a review, an email address, a website URL, etc.) by using an enhanced user interface.
- the key presses may be entered via an electronic device, such as a remote controller, a game controller, a smartphone, or the like.
- the keys may be included in a directional pad and correspond to a selection (e.g., enter) key and a different respective key for a left, right, up, and down direction.
- the keys may control the movement of the cursor and/or characters represented in a virtual keyboard of a user interface for searching for media content items provided by a content sharing platform.
- the user interface including the virtual keyboard may be presented on a display of a client device (e.g., television, display of a desktop or laptop, etc.).
- the virtual keyboard can include one or more characters, symbols, numbers, and/or special characters.
- the user may press the keys to request desired characters to come within the focus of the cursor that is fixed within the virtual keyboard.
- the user may select desired characters to add the desired characters to a query builder displayed in the user interface.
- the full alphabet (e.g., every letter, character, and/or symbol of any suitable language) may be displayed on the virtual keyboard at the same time.
- the user may select to change the language presented in the virtual keyboard at any time, and the characters associated with the selected language may be mapped to the virtual keyboard.
- a technical solution to the above identified technical problems may include fixing a focus of a cursor to a first row and/or a first column in the virtual keyboard. Movement of the characters under the cursor within the virtual keyboard may be allowed to wrap around the first row and/or the first column in the virtual keyboard when the user requests movement of the cursor in one or more directions. The characters may wrap around a horizontal axis or a vertical axis within the virtual keyboard in a cylindrical fashion when the user requests movement in one or more directions.
- the virtual keyboard may be configured as a sphere instead of a cylinder.
- the characters of the virtual keyboard may wrap around both the vertical axis and the horizontal axis.
- the focus of the cursor may be fixed in place at a location of the virtual keyboard and movement of the characters under the focus of the cursor may be constrained to one horizontal direction (e.g., right) and one vertical direction (e.g., down).
- a key input to move the cursor in another horizontal direction may move the cursor to the suggestions and/or auto-completions adjacent to the left side of the virtual keyboard
- another key input to move the cursor in another vertical direction e.g., up
- Movement of the characters in one or more other directions may be restricted within the virtual keyboard. Instead, when the user requests to move the cursor in the one or more other directions, the cursor can move to the list of word suggestions and/or auto-completions, a query builder, or search results including a representation for each media content item. Accordingly, the list of word suggestions and/or auto-completions, query builder, or search results is one-click away (e.g., less key presses) from the virtual keyboard regardless of which character is under the focus of the cursor in the virtual keyboard.
- the list of word suggestions may include titles based on the one or more characters that are entered and can be updated as subsequent characters are entered.
- Providing suggested media content items and/or auto-completed media content items based on the characters entered may allow the user to select a media content item that materializes in the list without having to enter the full title (e.g., less key presses) of the media content item in a query builder.
- the user's eye-gaze/visual focus may be centered on the suggestions and/or auto-completions, which may make it easier for the user to select words representing a desired media content item. Further, by fixing the focus of the cursor to within one row and/or one column to allow the characters to cycle under the cursor through that row and/or that column, the user is less likely to make an input selection error because the user does not have to track the cursor around multiple rows and/or columns in the virtual keyboard.
- the technical effect may include reducing the number of key presses that are entered to find a media content item to consume. For example, when the cursor is inside the virtual keyboard, the user can press a key in the direction that is restricted within the virtual keyboard, and the cursor may jump to the list of word suggestions and/or auto-completions with a single key press. Reducing the number of key presses may also reduce the processing resources (on all of a remote control, client device and backend server) and network bandwidth resources that are incurred during character entry because of fewer key presses and fewer suggestion data payloads being sent if a desired media content item is found based on error-free characters in a search query.
- FIG. 1 illustrates an example of system architecture 100 for providing a revolving on-screen virtual keyboard for efficient use during media content item searching, in accordance with one implementation of the disclosure.
- the system architecture 100 includes client devices 110 A through 110 Z, one or more networks 105 , one or more data stores 106 , one or more electronic devices 170 , and one or more platforms (e.g., content sharing platform 120 , recommendation platform 157 , advertisement platform 165 , mobile platform 150 , social network platform 160 , search platform 145 , content provider platform 195 , and collaboration platform 155 ).
- platforms e.g., content sharing platform 120 , recommendation platform 157 , advertisement platform 165 , mobile platform 150 , social network platform 160 , search platform 145 , content provider platform 195 , and collaboration platform 155 ).
- the platforms can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, and databases), networks, software components, and/or hardware components.
- computing devices such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.
- data stores e.g., hard disks, memories, and databases
- networks e.g., software components, and/or hardware components.
- the one or more networks 105 can include one or more public networks (e.g., the Internet), one or more private networks (e.g., a local area network (LAN) or one or more wide area networks (WAN)), one or more wired networks (e.g., Ethernet network), one or more wireless networks (e.g., an 802.11 network or a Wi-Fi network), one or more cellular networks (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and/or a combination thereof.
- LTE Long Term Evolution
- some components of architecture 100 are not directly connected to each other.
- architecture 100 includes separate networks 105 .
- the one or more data stores 106 can be memory (e.g., random access memory), cache, drives (e.g., hard drive), flash drives, database systems, or another type of component or device capable of storing data.
- the one or more data stores 106 can include multiple storage components (e.g., multiple drives or multiple databases) that may also span multiple computing devices (e.g., multiple server computers).
- the data stores 106 can be persistent storage that are capable of storing data.
- a persistent storage can be a local storage unit or a remote storage unit.
- Persistent storage can be a magnetic storage unit, optical storage unit, solid state storage unit, electronic storage units (main memory), or similar storage unit. Persistent storage can be a monolithic device or a distributed set of devices.
- Content items 121 can be stored in one or more data stores 106 .
- the data stores 106 can be part of one or more platforms.
- Examples of a content item 121 can include, and are not limited to, digital video, digital movies, animated images, digital photos, digital music, digital audio, website content, social media updates, electronic books (ebooks), electronic magazines, digital newspapers, digital audio books, electronic journals, web blogs, real simple syndication (RSS) feeds, electronic comic books, software applications, etc.
- Content item 121 is also referred to as a media item.
- the content items 121 may be pre-recorded or live-streaming.
- an online video also hereinafter referred to as a video
- a video is used as an example of a content item 121 throughout this document.
- the content items 121 can be provided by content providers.
- a content provider can be a user, a company, an organization, etc.
- a content provider can provide content items 121 that are video advertisements.
- a content provider that provides video advertisements is hereinafter referred to as an advertiser.
- a content item 121 may be a video advertisement for a car provided by a car advertiser.
- a service provider can charge an advertiser a fee, for example, when the service provider provides the advertisements on client devices 110 A- 110 Z to be viewed by users.
- the client devices 110 A- 110 Z can include devices, such as, televisions, smart phones, cellular telephones, personal digital assistants (PDAs), portable media players, netbooks, laptop computers, electronic book readers, tablet computers, desktop computers, set-top boxes, gaming consoles, and the like.
- PDAs personal digital assistants
- portable media players netbooks
- laptop computers electronic book readers
- tablet computers desktop computers
- set-top boxes gaming consoles, and the like.
- the individual client devices 110 A- 110 Z can include a communication application 115 .
- a content item 121 can be consumed via the communication application 115 , the Internet, etc.
- “media,” “media item,” “online media item,” “digital media,” “digital media item,” “content,” “media content item,” and “content item” can include an electronic file that can be executed or loaded using software, firmware or hardware configured to present a content item.
- the communication applications 115 may be applications that allow users to compose, send, and receive content items 121 (e.g., videos) over a platform (e.g., content sharing platform 120 , recommendation platform 157 , advertisement platform 165 , mobile platform 150 , social network platform 160 , search platform 145 , collaboration platform 155 , and content provider platform 195 ) and/or a combination of platforms and/or networks.
- a platform e.g., content sharing platform 120 , recommendation platform 157 , advertisement platform 165 , mobile platform 150 , social network platform 160 , search platform 145 , collaboration platform 155 , and content provider platform 195
- platforms and/or networks e.g., a platform that allow users to compose, send, and receive content items 121 (e.g., videos) over a platform (e.g., content sharing platform 120 , recommendation platform 157 , advertisement platform 165 , mobile platform 150 , social network platform 160 , search platform 145 , collaboration platform 155 , and content provider platform
- the communication application 115 may be a social networking application, video sharing application, video streaming application, video on demand application, photo sharing application, chat application, mobile application of a content provider or any combination of such applications.
- the communication application 115 in a client device can render, display, and/or present one or more content items 121 (e.g., videos) to one or more users.
- the communication application 115 can provide one or more user interfaces (e.g., graphical user interfaces) to be rendered in a display of a client device for sending, receiving and/or playing videos.
- the communication application 115 may include a search component 114 and a content viewer 113 and may provide a user interface 116 that may be used to search for media content items via a virtual keyboard and that may play content items 121 in a content viewer 113 portion of the user interface 116 .
- the content viewer 113 may render, display, and/or present content items 121 (e.g., videos) to one or more users.
- the content viewer 113 is embedded in an application (e.g., communication application 115 ).
- the content viewer 113 may be a standalone application (e.g., mobile application, desktop application, gaming console application, television application, etc.), such as communication application 115 , that allows users to consume (e.g., play, display) content items 121 , such as videos, images, documents (e.g., web pages), etc.
- the content viewer 113 may be a web browser that can access, retrieve, present, and/or navigate content (e.g., web pages such as Hyper Text Markup Language (HTML) pages, digital media items, etc.) served by a web server of a platform.
- the content viewer 113 may display an embedded media player (e.g., a Flash® player or an HTML5 player) that is embedded in a document (e.g., user interface 116 (a web page)).
- an embedded media player e.g., a Flash® player or an HTML5 player
- the content viewer 113 can be provided to the client devices 110 A- 110 Z by a server and/or a platform.
- the content viewers 113 may be embedded media players that are embedded in user interfaces 116 (e.g., documents (web pages) or screens of a stand-alone application) provided by the content sharing platform 120 or the content provider platform 195 .
- the content viewers 113 may be applications that are downloaded from a platform (e.g., content sharing platform 120 , recommendation platform 157 , advertisement platform 165 , mobile platform 150 , social network platform 160 , search platform 145 , collaboration platform 155 , and content provider platform 195 ).
- the content viewers 113 may be standalone applications that are pre-installed on the client devices 110 A- 110 Z.
- the search component 114 may provide a revolving on-screen virtual keyboard to use for efficient searching of the content items 121 .
- the search component 114 may provide the on-screen virtual keyboard for efficient character entry for any suitable purpose (e.g., entering an electronic message, a website URL, a review, user feedback, etc.).
- the search component 114 may be implemented in computer instructions that are stored on one or more memory devices and that are executed by one or more processing devices.
- the search component 114 may fix a focus of a character to a first row and/or a first column in a virtual keyboard displayed in the user interface 116 . Movement of the characters may be allowed to wrap around the first row and/or the first column in the virtual keyboard when the user requests movement of the cursor in one or more directions.
- the cursor may remain fixed at its current location as the characters wrap around the first row and/or the first column when the user requests movement of the cursor in the one or more directions.
- the movement of the characters within the virtual keyboard may be restrained to a direction opposing the one or more directions.
- the cursor can jump to a list of word suggestions, auto-completions, and/or search results. Accordingly, the list of word suggestions is one-click away (e.g., less key presses) from the virtual keyboard regardless of which character is under the focus of the cursor in the virtual keyboard.
- Providing suggested words e.g., titles of media content items
- Providing suggested words may allow the user to select a media content item that materializes in the list without having to enter the full title (e.g., less key presses) of the media content item in a query builder.
- the electronic device 170 may be any suitable electronic device capable of communicating directional key inputs to the client device 110 A- 110 Z.
- the electronic device 170 may include a remote controller, a gaming controller, a smartphone, a tablet, or the like.
- the electronic device 170 may include a physical or virtual directional pad (“D-pad”) 175 that includes keys corresponding to up, down, left, right, and enter (select).
- the electronic device 170 may receive key input selections when the user presses one or more of the keys on the directional pad 175 .
- the electronic device 170 may transmit the key inputs to the client device 110 A- 110 Z for processing by one or more processors running the search component 114 .
- the client device 110 A- 110 Z may send the selected characters to the one or more platforms to search for suggested or auto-completed content items 121 .
- the one or more platforms may query the data store 106 for the list of word suggestions (e.g., media content item search suggestions and/or auto-completions) and send the list of word suggestions to the requesting client device 110 A- 110 Z.
- the list of word suggestions may include one or more entries having a respective title associated with a media content item 121 .
- the list of word suggestions may include emojis (e.g., if the user selects characters “ca”, the suggestions may be , which represent a cat, cake, cactus, and candy, respectively).
- An emoji may refer to a small digital image or icon used to express an idea, emotion, etc.
- the list of word suggestions may be sent in a data payload that includes a representation (e.g., link, thumbnail) of the content item 121 , an executable file that plays the content item 121 , metadata (e.g., title, file type, file size, content item length, etc.), and so forth.
- the client device 110 A- 110 Z may receive the list of word suggestions and display the titles in a list adjacent to one side of the virtual keyboard and display the representation of the content items 121 adjacent to another side of the virtual keyboard.
- the data store 106 may be local to and reside in memory of the client device 110 A- 110 Z.
- the data store 106 may include a dictionary that is searched for the list of word suggestions (e.g., media content item search suggestions and/or auto-completions).
- word suggestions e.g., media content item search suggestions and/or auto-completions.
- the content provider platform 195 can provide a service and the content provider can be the service provider.
- a content provider may be a video streaming service provider that provides a media streaming service via a communication application 115 for users to play videos, TV shows, video clips, audio, audio clips, and movies, on client devices 110 A- 110 Z via the content provider platform 195 .
- the social network platform 160 can provide an online social networking service.
- the social network platform 160 can provide a communication application 115 for users to create profiles and perform activity with their profile.
- Activity can include updating a profiling, exchanging messages with other users, posting status updates, photos, videos, etc. to share with other users, evaluating (e.g., like, comment, share, recommend) status updates, photos, videos, etc., and receiving notifications of other users activity.
- the mobile platform 150 can be and/or include one or more computing devices (e.g., servers), data stores, networks (e.g., phone network, cellular network, local area network, the Internet, and/or a combination of networks), software components, and/or hardware components that can be used to allow users to connect to, share information, and/or interact with each other using one or more mobile devices (e.g., phones, tablet computers, laptop computers, wearable computing devices, etc.) and/or any other suitable device.
- the mobile platform 150 may enable telephony communication, Short Message Service (SMS) messaging, Multimedia Message Service (MMS) messaging, text chat, and/or any other communication between users.
- SMS Short Message Service
- MMS Multimedia Message Service
- the mobile platform 150 can support user communications via video messaging, video chat, and/or videoconferences.
- the collaboration platform 155 can enable collaboration services, such as video chat, video messaging, and audio and/or videoconferences (e.g., among the users of devices 110 A- 110 Z) using, for example, streaming video or voice over IP (VoIP) technologies, cellular technologies, LAN and/or WAN technologies, and may be used for personal, entertainment, business, educational or academically oriented interactions.
- video chat video messaging
- audio and/or videoconferences e.g., among the users of devices 110 A- 110 Z
- VoIP voice over IP
- the recommendation platform 157 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used to generate and provide content recommendations (e.g., articles, videos, posts, news, games, etc.).
- the recommendation platform 157 can include one or more recommendation servers.
- the search platform 145 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used to allow users to query the one or more data stores 106 and/or one or more platforms and receive query results.
- computing devices such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.
- data stores e.g., hard disks, memories, databases
- networks e.g., software components, and/or hardware components that can be used to allow users to query the one or more data stores 106 and/or one or more platforms and receive query results.
- the advertisement platform 165 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used provide video advertisements.
- computing devices such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.
- data stores e.g., hard disks, memories, databases
- networks e.g., software components, and/or hardware components that can be used provide video advertisements.
- the content sharing platform 120 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used to provide one or more users with access to content items 121 and/or provide the content items 121 to one or more users.
- the content sharing platform 120 may allow users to consume, upload, download, and/or search for content items 121 .
- the content sharing platform 120 may allow users to evaluate content items 121 , such as, approve of (“like”), dislike, recommend, share, rate, and/or comment on content items 121 .
- the content sharing platform 120 may allow users to edit content items 121 .
- the content sharing platform 120 can also include a web site (e.g., one or more webpages) and/or one or more applications (e.g., communication applications 115 ) that may be used to provide one or more users with access to the content items 121 , for example, via client devices 110 A- 110 Z.
- Content sharing platform 120 can include any type of content delivery network providing access to content items 121 .
- the content sharing platform 120 can include multiple channels (e.g., Channel A 125 through Channel Z 129 ).
- a channel can be data content available from a common source or data content having a common topic or theme.
- the data content can be digital content chosen by a user, digital content made available by a user, digital content uploaded by a user, digital content chosen by a content provider, digital content chosen by a broadcaster, etc.
- Channel A 125 may include videos Y and Z.
- a channel can be associated with an owner, who is a user that can perform actions on the channel.
- the data content can be one or more content items 121 .
- the data content in the channels can be pre-recorded or live-streaming.
- FIG. 2 depicts a flow diagram of aspects of a method 200 for efficiently searching for media content items, in accordance with one implementation of the present disclosure.
- the method 200 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both.
- the method 200 is performed by a search component 114 in a client device 110 A of FIG. 1 .
- a processing device of a client device performs method 200 .
- the processing device displays a user interface on a display of a client device.
- the client device may be a television or a computer display.
- the user interface includes a virtual keyboard including a set of characters or symbols arranged in one or more rows and one or more columns.
- the set of characters or symbols may be associated with any desired language and include every character (e.g., English letters in the alphabet) or symbol (e.g., Chinese, Japanese, Korean) for that particular language.
- the characters may include a subset of characters or symbols for the language.
- the virtual keyboard may also include an option to depict different characters or symbols of another language, an option to depict special characters associated with the depicted language, and/or an option to depict numbers in the virtual keyboard.
- the virtual keyboard may switch the mapping of the elements of the virtual keyboard from the currently depicted character, symbol, number, or special character to the selected characters, symbols, numbers, or special characters.
- the virtual keyboard is depicted in more detail in FIGS. 3 A- 3 L .
- the processing device may display a list of word suggestions (e.g., search suggestions and/or auto-completions and/or transliterations) immediately adjacent to the first row or the first column where the cursor is fixed.
- the list of word suggestions may be displayed adjacent to a left side of the virtual keyboard when the cursor is fixed to a first column, or the list of word suggestions may be displayed adjacent to a top side when the cursor is fixed to a first row.
- the list of words may include search suggestions including titles of media content items that include one or more different characters than the characters selected by the user in the virtual keyboard and that are automatically completed based on the one or more different characters.
- the list of words may include auto-completions that include titles of media content items that include at least each of the characters entered by the user in the virtual keyboard and that are automatically completed based on each of the characters entered by the user.
- the list of words may also include transliterations that serve to convert characters typed in one alphabet into corresponding letters of another alphabet.
- the cursor is one-click or key input away from accessing the list of word suggestions regardless of what character is displayed in the cursor in the virtual keyboard of the user interface.
- Such a technique may provide a benefit of reducing key inputs, thereby reducing computing resource usage of the electronic device (e.g., remote controller), the client device, the server of the platform providing the list of media content item suggestions and media content item selected, and/or the network over which the list of word suggestions is transmitted.
- the enhanced virtual keyboard may increase the user experience of using the user interface, thereby potentially retaining the attention of the user and causing the user to reuse the user interface.
- a query builder and/or search results may also be located immediately adjacent to a side of the virtual keyboard to enable the user to easily access the query builder or the search results to select a media content item to consume (e.g., view/play).
- the query builder may be located adjacent to a top side of the virtual keyboard and the search results may be located adjacent to a bottom side of the virtual keyboard.
- the query builder may display the characters as the characters are selected using the cursor in the virtual keyboard. It should be appreciated that the list of word suggestions and/or the search results may be dynamically updated for each character that is selected to be added to the query builder.
- the processing device may receive a request to select one of characters that is in the focus of the cursor in the virtual keyboard and may add the letter to the query builder and send the updated query to the appropriate platform.
- the platform may search the data store using the updated query and return a list of word suggestions including titles to related media content items.
- the processing device may update the list of word suggestions to include one or more titles of the media content items including the selected character.
- the search results may be updated based on the updated list of word suggestions.
- the search results may include representations (e.g., thumbnails, images, video clips, audio links, etc.) of the media content items related to titles presented in the list of word suggestions.
- the user may use a voice enabled remote controller and may speak the title of the media content item they desire to watch into the remote controller.
- the received audio may be transmitted to the client device, which populates the query builder with the title of the media content item deciphered from the audio.
- the title may be transmitted by the query builder to the platform (e.g., content provider platform, content sharing platform, etc.) to perform a search and obtain the list of word suggestions and/or search results.
- the user may use the virtual keyboard including the revolving characters and the fixed cursor to modify the title (e.g., correct any typos) in the query builder to find the desired media content item in the list of word suggestions and/or search results in fewer key inputs than using conventional virtual keyboards.
- the processing device fixes a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard.
- the cursor may be fixed to a first column to allow the characters to wrap or revolve around a vertical axis.
- the cursor may be fixed to a first row to allow the characters to wrap or revolve around a horizontal axis.
- the cursor may be fixed to a first row and a first column to allow the characters to wrap or revolve around both the vertical axis and the horizontal axis.
- the processing device wraps or revolves at least one of the set of characters around the row or the column to a last row or a last column of the virtual keyboard to present another character of the set of characters within the focus of the cursor.
- the first request may be received from an electronic device (e.g., remote controller) communicatively coupled to the client device (e.g., television) when the user selects (e.g., presses) a designated key on the electronic device such as a remote controller.
- Movement of the characters into the focus of the cursor may be allowed in the virtual keyboard based on the first direction, and the focus of the cursor may remain fixed at its current location as the another character of the set of characters is transitioned into the focus of the cursor. For example, if the user requests to move the cursor right, another character may be moved left to come into the focus of the cursor, since the cursor remains fixed.
- movement of the characters within the virtual keyboard may be restricted to a direction opposite the first direction.
- the last row may be located at an opposing side of the virtual keyboard from the first row and the last column may be located at an opposing side of the virtual keyboard from the first column.
- the first direction may be a horizontal direction (e.g., left or right), and responsive to receiving the first request to move the cursor in the horizontal direction in the virtual keyboard, the processing device may wrap or revolve the at least one of the set of characters around the first column to the last column in the virtual keyboard.
- the first direction may be a vertical direction (e.g., up or down), and responsive to receiving the first request to move the cursor in the vertical direction in the virtual keyboard, the processing device may wrap or revolve the at least one of the set of characters around the first row to the last row in the virtual keyboard.
- the processing device may move the focus of the cursor to a list of word suggestions.
- the second request may be received from an electronic device (e.g., remote controller) communicatively coupled to the client device (e.g., television).
- the list of word suggestions may be displayed immediately adjacent to a side of the virtual keyboard such that it is one-click or key input away from the virtual keyboard and is also within the gaze or view of the eyes of the user.
- the processing device may restrict movement of the set of characters within the virtual keyboard based on the second direction.
- the second direction e.g., left or up
- the first direction e.g., right or down.
- FIG. 3 A illustrates an example of a user interface 116 including a virtual keyboard 300 where the user has selected to move the cursor in a first horizontal direction, in accordance with one implementation of the disclosure.
- the user interface 116 may be included in the communication application provided by one of the platforms in FIG. 1 .
- the user interface 116 includes the virtual keyboard 300 including a set of characters.
- the set of characters in the depicted example includes every letter of the English alphabet. However, as may be appreciated, the characters and/or symbols of any suitable language may be displayed in the virtual keyboard 300 .
- the virtual keyboard 300 also includes an option 302 (e.g., a link) to cause the virtual keyboard 300 to switch from displaying the characters to displaying special characters and numbers.
- the virtual keyboard 300 may also include an option (not depicted) to switch from displaying characters of the English language to displaying characters and/or symbols of any other suitable language.
- the user interface 116 includes a query builder 304 that displays characters as they are selected from the virtual keyboard 300 .
- the query builder 304 may be displayed immediately adjacent to a side (e.g., top) of the virtual keyboard 300 , as depicted.
- the virtual keyboard 300 may also display one or more buttons adjacent to a side of the virtual keyboard 300 .
- a “Clear” button may delete any characters that are being displayed in the query builder 304
- a “Space” button may add a space to the query being built in the query builder 304
- a “Search” button may cause the client device to transmit the query to the appropriate platform to search for the desired media content item.
- the query is transmitted to the appropriate platform each time a character is selected by the user and added to the query builder 304 , even when the “Search” button is not selected.
- the user interface 116 also presents a list of word suggestions 306 immediately adjacent to a side (e.g., left) of the virtual keyboard 300 .
- the list of word suggestions may include titles of media content items from which the user can select to consume (e.g., play).
- the list of word suggestions 306 may include search suggestions and/or auto-completions.
- the list of word suggestions 306 may not be visible because the user has not selected any characters yet.
- the list of word suggestions 306 may be received from the appropriate platform based on the selected first character and displayed in the user interface 116 .
- the list of word suggestions 306 may already be visible even when the user has not selected any characters.
- the titles included in the list of word suggestions 306 may be based on the preferences (e.g., media content item genre, media content item type, media content item duration, media content items “liked” by the user or other users, etc.) of the user and/or other users, previous selections of media content items by the user and/or other users, previous searches for media content items made by the user and/or other users, and so forth.
- the user may select to play a media content item included in the list of word suggestions 306 by selecting the title of the media content item.
- the title may be a link that causes the selected media content item to play in the content viewer 113 , either full-screen or in a portion of the user interface 116 .
- the user interface 116 may also present search results 308 that include a representation of the media content items included in the list of word suggestions 306 . That is, in some implementations, the representations of the media content items presented in the search results 308 correspond to the titles of media content items included in the list of word suggestions 306 .
- the search results 308 include the content viewer 113 which may be displaying a thumbnail associated with the “Suggestion A” media content item 121 . The user may select to play the media content item in the content viewer 113 , either full-screen or in the portion of the user interface 116 where the content viewer 113 is located.
- the media content items presented in the search results 308 may be dynamically updated as the list of word suggestions 306 is updated.
- a cursor 310 (e.g., represented by the circle) of the virtual keyboard 300 may be fixed to a row and/or a column.
- the cursor 310 may be fixed to a column or a row, and when the characters are moved in an allowed direction, the characters may wrap or revolve around the column or row to a respective column or row at an opposite side of the virtual keyboard 300 .
- the cursor 310 may be fixed to a column and a row, and when the characters are moved in an allowed direction, the characters may wrap or revolve around the column and row to a respective column and row at an opposite side of the virtual keyboard 300 .
- the virtual keyboard 300 in FIGS. 3 A- 3 L is configured in a cylindrical fashion and the cursor 310 is fixed to a first column 312 .
- the character “A” is within the focus of the cursor 310 .
- the user has input a key on an electronic device (e.g., using a directional pad on a remote controller) to move the cursor in a first horizontal direction (e.g., right, as represented by arrow 314 ).
- requesting movement of the cursor in the first horizontal direction may cause the characters in the row with the letter “A” to move in a horizontal direction (e.g., left) opposite the first horizontal direction such that a character to the right of the character within the focus of the cursor 310 is moved left into the focus of the cursor 310 .
- Movement of the characters within the virtual keyboard 300 may be restricted to a horizontal direction opposite the first horizontal direction.
- the character “A” has wrapped around a vertical axis (e.g., the first column 312 ) to a last column 316 in the virtual keyboard 300 based on the user selection, and another character “B” is presented within the focus of the cursor 310 .
- the cursor 310 remains fixed at its current location, which is one-click or key input away from the list of word suggestions 306 .
- the rest of the characters in the row in which the characters “A” and “B” are located are also moved to different columns accordingly.
- the rows including other characters may either wrap around the vertical axis as well or remain in place and not moved. Further, the user has selected, using the electronic device, to move the cursor in the first horizontal direction again (as represented by arrow 314 ).
- the character “B” has wrapped around the vertical axis (e.g., the first column 312 ) to the last column 316 in the virtual keyboard 300 based on the user selection, and another character “C” is presented within the focus of the cursor 310 .
- the cursor 310 remains fixed at its current location, which is one-click or key input away from the list of word suggestions 306 .
- the rest of the characters in the row in which the characters “B” and “C” are located are also moved to different columns accordingly.
- the user has selected a character “C” under the focus of the cursor 310 to add to the query builder 304 .
- the user made the selection by clicking or inputting the enter key on the electronic device (e.g., the remote controller communicatively coupled to the client device).
- the query in the query builder 304 displays the character “C”, and the query is sent (e.g., with or without the user clicking the “Search” button) by the client device to the content sharing platform, for example, to search for media content items based on the character “C”.
- the client device receives the list of word suggestions 306 from the content sharing platform and displays it in the user interface 116 immediately adjacent to a left side of the virtual keyboard 300 .
- the list of word suggestions 306 includes search suggestions and/or auto-completions of “Cartoon,” “Cats,” and “Coloring” based on the input “C” character in the query builder 304 . Further, the search results 308 may be updated based on the updated list of word suggestions 306 . For example, media content item 122 a is updated to present a representation of “Cartoon” based on the list of word suggestions.
- FIG. 3 D an example of the user interface 116 including the virtual keyboard 300 is depicted where the user has selected to move the cursor in a first vertical direction (e.g., down, as represented by arrow 320 ), in accordance with one implementation of the disclosure. If the user selected to move the cursor in a second vertical direction (e.g., up), the cursor 310 may move its focus to the query builder 304 , for example. Movement of the cursor in the first vertical direction may be allowed within the column 312 in which the cursor 310 is fixed.
- a first vertical direction e.g., down, as represented by arrow 320
- the cursor 310 may move its focus to the query builder 304 , for example. Movement of the cursor in the first vertical direction may be allowed within the column 312 in which the cursor 310 is fixed.
- the cursor 310 is moved down a row to focus on the character “H”.
- the user has selected to move the cursor 310 in the first horizontal direction (e.g., right, as represented by arrow 314 ) again.
- the character “H” has wrapped around the vertical axis (e.g., the first column 312 ) to the last column 316 in the virtual keyboard 300 based on the user selection, and another character “I” is presented within the focus of the cursor 310 .
- the cursor 310 remains fixed at its current location, which is one-click or key input away from the list of word suggestions 306 .
- the rest of the characters in the row in which the characters “H” and “I” are located are also moved to different columns accordingly.
- the user has selected a character “I” under the focus of the cursor 310 to add to the query builder 304 .
- the user made the selection by clicking or inputting the enter key on the electronic device (e.g., the remote controller communicatively coupled to the client device).
- the query in the query builder 304 displays the character “CI”, and the query is sent (e.g., with or without the user clicking the “Search” button) by the client device to the content sharing platform, for example, to search for media content items based on the character “CI”.
- the client device receives the list of word suggestions 306 from the content sharing platform and updates the list of word suggestions 306 in the user interface 116 immediately adjacent to the left side of the virtual keyboard 300 .
- the updated list of word suggestions 306 includes search suggestions and/or auto-completions of “Cinema,” “City,” “Citation,” and “Civilization” based on the input “CI” characters in the query builder 304 . Further, the search results 308 may be updated based on the updated list of word suggestions 306 . For example, media content item 122 a is updated to present a representation of “Cinema” in the content viewer 113 based on the list of word suggestions 306 .
- FIG. 3 G illustrates an example of the user interface 116 including the virtual keyboard 300 where the user has selected to move the cursor in the virtual keyboard 300 in a second horizontal direction (e.g., left, as represented by arrow 330 ), in accordance with one implementation of the disclosure.
- Requesting movement of the cursor 310 within the virtual keyboard 300 in the second direction may be restricted and may cause the cursor 310 to move its focus to the list of word suggestions 306 .
- the content viewer 133 may still present a representation of “Cinema” for the media content item 122 a.
- FIG. 3 H illustrates an example of the user interface 116 including the virtual keyboard 300 where the cursor 310 has moved to a list of word suggestions 306 based on the selection in FIG. 3 G .
- the focus of the cursor 310 is on the word “Citation” in the list of word suggestions 306 .
- the user has selected to move the cursor 310 in a first vertical direction (e.g., down) in the list of suggestions (as represented by arrow 320 ).
- the content viewer 133 may still present a representation of “Cinema” for the media content item 122 a.
- FIG. 3 I illustrates an example of the user interface 116 including the virtual keyboard 300 where the user has selected to move the cursor 310 in a first horizontal direction (e.g., right, as represented by arrow 314 ) to return to the virtual keyboard 300 , in accordance with one implementation of the disclosure.
- a first horizontal direction e.g., right, as represented by arrow 314
- the focus of the cursor 310 is fixed to the first column 312 .
- the focus of the cursor 310 moved to the character “O” in the virtual keyboard 300 .
- the user has selected to move the cursor in the first horizontal direction three times (e.g., right, as represented by arrows 314 ).
- the content viewer 133 may still present a representation of “Cinema” for the media content item 122 a.
- the characters “O”, “P”, and “Q” have wrapped around the vertical axis (e.g., the first column 312 ) to the last column 316 in the virtual keyboard 300 based on the user selection to move the cursor three times in FIG. 3 J .
- another character “R” is presented within the focus of the cursor 310 .
- the cursor 310 remains fixed at its current location, which is one-click or key input away from the list of word suggestions 306 .
- the rest of the characters in the row in which the characters “O”, “P”, “Q”, and “R” are located are also moved to different columns accordingly.
- the other characters in other rows may be unaffected and remain in their current locations in the virtual keyboard 300 .
- the user has selected to add the character “R” within the focus of the cursor 310 to the query builder 304 .
- the user made the selection by clicking or inputting the enter key on the electronic device (e.g., the remote controller communicatively coupled to the client device).
- the query in the query builder 304 displays the character “CIR”, and the query is sent (e.g., with or without the user clicking the “Search” button) by the client device to the content sharing platform, for example, to search for media content items based on the character “CIR”.
- the client device receives the list of word suggestions 306 from the content sharing platform and updates the list of word suggestions 306 in the user interface 116 immediately adjacent to the left side of the virtual keyboard 300 .
- the updated list of word suggestions 306 includes search suggestions and/or auto-completions of “Circuit,” “Circumstance,” and “Circus” based on the input “CIR” characters in the query builder 304 . Further, the search results 308 may be updated based on the updated list of word suggestions 306 . For example, media content item 122 a is updated to present a representation of “Circuit” in the content viewer 113 based on the list of word suggestions 306 .
- the user then selected to move the cursor in the virtual keyboard 300 in the second horizontal direction (e.g., left, as represented by arrow 330 ).
- the request may cause the focus of the cursor to move to the list of word suggestions 306 .
- FIG. 3 L an example of the user interface 116 including the virtual keyboard 300 where the cursor 310 has moved to the list of word suggestions 306 based on the selection in FIG. 3 K is depicted.
- the cursor 310 is focused on the word “Circus” in the list of word suggestions 306 .
- the user has selected an auto-completed media content item for consumption, in accordance with one implementation of the disclosure.
- the media content item 122 a associated with the title may begin playback in the content viewer 113 .
- the media content item 122 a title “Circus” is being played in the content viewer 113 .
- FIG. 4 illustrates a diagram of a machine in an example form of a computer system 400 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, can be executed, in accordance with one implementation of the present disclosure.
- the computer system 400 can be client device 110 A- 110 Z in FIG. 1 .
- the machine can operate in the capacity of a client machine in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine can be a television, a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- PDA Personal Digital Assistant
- STB set-top box
- a cellular telephone a web appliance
- server a server
- network router switch or bridge
- the example computer system 400 includes a processing device (processor) 402 , a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM), etc.), a static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 418 , which communicate with each other via a bus 440 .
- processor processing device
- main memory 404 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM), etc.
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- DDR SDRAM double data rate
- RDRAM DRAM
- static memory 406 e.g., flash memory, static random access memory (SRAM), etc.
- SRAM static random access memory
- Processor 402 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processor 402 can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets.
- the processor 402 can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like.
- the processor 402 is configured to execute instructions 405 (e.g., search component 114 , user interface 116 , content viewer 113 , communication application 115 ) for performing the operations and steps discussed herein.
- instructions 405 e.g., search component 114 , user interface 116 , content viewer 113 , communication application 115 .
- the computer system 400 can further include a network interface device 408 .
- the computer system 400 also can include a video display unit 410 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an input device 412 (e.g., a keyboard, and alphanumeric keyboard, a motion sensing input device, touch screen), a cursor control device 414 (e.g., a mouse), and a signal generation device 420 (e.g., a speaker).
- a video display unit 410 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
- an input device 412 e.g., a keyboard, and alphanumeric keyboard, a motion sensing input device, touch screen
- a cursor control device 414 e.g., a mouse
- a signal generation device 420 e.g., a speaker
- the data storage device 418 can include a non-transitory machine-readable storage medium 424 (also computer-readable storage medium) on which is stored one or more sets of instructions 405 (e.g., search component 114 , user interface 116 , content viewer 113 , communication application 115 , etc.) embodying any one or more of the methodologies or functions described herein.
- the instructions can also reside, completely or at least partially, within the main memory 404 and/or within the processor 402 during execution thereof by the computer system 400 , the main memory 404 and the processor 402 also constituting machine-readable storage media.
- the instructions can further be transmitted or received over a network 430 via the network interface device 408 .
- the instructions 405 include instructions for search component 114 (e.g., search component 114 in FIG. 1 ) and/or a software library containing methods that call the search component 114 .
- the instructions 405 include instructions for the search component 114 , the user interface 116 , the content viewer 113 , and/or the communication application 115 .
- the computer-readable storage medium 424 (machine-readable storage medium) is shown in an exemplary implementation to be a single medium, the terms “computer-readable storage medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
- computer-readable storage medium and “machine-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
- This apparatus can be constructed for the intended purposes, or it can comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
- the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user.
- user information e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location
- certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
- a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
- location information such as to a city, ZIP code, or state level
- the user may have control over how information is collected about the user and used by a content server.
- Embodiments of the present disclosure also relate to an apparatus for performing the operations herein.
- This apparatus may be specially constructed for the discussed purposes, or it may comprise a general purpose computer system selectively programmed by a computer program stored in the computer system.
- a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic disk storage media, optical storage media, flash memory devices, or other type of machine-accessible storage media.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
- This application is a continuation application of co-pending U.S. patent application Ser. No. 17/043,635, filed Sep. 29, 2020, which is a 371 application of International Application No. PCT/US2019/013680, filed Jan. 15, 2019, which claims the benefit of U.S. Provisional Patent Application No. 62/775,149, Dec. 4, 2018, each of which is incorporated herein by reference.
- Aspects and implementations of the present disclosure relate to a virtual keyboard, and more specifically, to a revolving on-screen virtual keyboard for efficient use during character input.
- Various platforms may provide media content items that are shared by users (e.g., user-uploaded videos, live-streaming videos) and/or provided by various entities (e.g., movies and/or television shows made by production studios). The media content items may include pre-recorded or live-streaming content that is presented to a user on a client device via a user interface of the platforms. The user may access the user interface and use a virtual keyboard to enter a search query for a desired media content item to consume. Other platforms may provide a virtual keyboard to input characters to perform various operations (e.g., writing a review, writing an electronic message, entering a uniform resource locator, etc.) associated with the platforms. Using certain electronic devices to input characters with conventional virtual keyboards may be tedious and entail entering an inefficient number of key inputs to enter the desired characters.
- The subject matter of the disclosure relates to reducing the number of key-presses required to input characters by using an enhanced user interface. A virtual keyboard can include one or more characters, symbols, numbers, and/or special characters. A focus of a cursor can be fixed to a first column or a first row in the virtual keyboard. A list of word suggestions may be displayed immediately adjacent to the first row or the first column. The word suggestions may be associated with a search suggestion (e.g., title of a media content item), word auto-completions for any suitable purpose (e.g., typing out a website URL, email address, word completions to facilitate writing user feedback, etc.), or the like. The user's cursor focus position may be one-click away from accessing the list of word suggestions that may enable the user to quickly complete their query without needing to fully type it to completion (e.g., reducing key presses). When a user requests to move the cursor in the keyboard in a first direction, the character currently in the focus of the cursor may wrap around the first column to a last column or around the first row to a last row while the cursor remains fixed at its current location in the first column and/or first row in the virtual keyboard. The characters may wrap around a vertical axis or a horizontal axis within the virtual keyboard in a cylindrical fashion. The movement of the characters in the virtual keyboard may be restricted to a direction opposite the first direction (e.g., from right to left or from down to up). When the user requests to move the cursor in the virtual keyboard in a second direction, the cursor may move to the list of word suggestions.
- Constructing the virtual keyboard in this way allows the user's cursor focus to have immediate access to the list of word suggestions regardless of which character is positioned within the focus of the cursor. In particular, when the cursor is within the virtual keyboard, the focus of the cursor may be just one-click away from the list of word suggestions at any given time. Accordingly, the user may complete a search with far fewer clicks than if the cursor was at a very far edge of the virtual keyboard at the time the appropriate search suggestion materializes. Reducing the number of key inputs may reduce the computing resources consumed by an input electronic device (e.g., remote controller), a client device displaying the virtual keyboard that processes the key inputs and displays search results, and a server that performs searches using the input characters and returns the search results. Additionally, by keeping the word suggestions visually close to the cursor at any given time, the user's eye-gaze/visual focus is going to be centered on the word suggestions more of the time, thereby providing an easier time identifying when the suggestion they are looking for appears. Accordingly, the user experience may be enhanced when using the disclosed techniques.
- According to one aspect of the present disclosure there is provided a method comprising: displaying a user interface on a display of a client device, the user interface comprising a virtual keyboard including a plurality of characters arranged in one or more rows and one or more columns; fixing a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard, wherein at least one of the plurality of characters is within the focus of the cursor; responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, wrapping the at least one of the plurality of characters around the row or the column to a last row or a last column of the virtual keyboard to present another of the plurality of characters within the focus of the cursor; and responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, moving the focus of the cursor to a list of word suggestions.
- The method may further comprise restricting movement of the plurality of characters within the virtual keyboard to a direction opposite to the first direction.
- The method may further comprise displaying the list of word suggestions immediately adjacent to the first row or the first column.
- The first direction may be a horizontal direction; and the method may further comprise, responsive to receiving the first request to move the cursor in the horizontal direction in the virtual keyboard, wrapping the at least one of the plurality of characters around the first column to the last column in the virtual keyboard.
- Alternatively, the first direction is a vertical direction; and the method may further comprise, responsive to receiving the first request to move the cursor in the vertical direction in the virtual keyboard, wrapping the at least one of the plurality of characters around the first row to the last row in the virtual keyboard.
- The method may further comprise displaying a query builder that displays one or more characters as the one or more characters are selected from the virtual keyboard.
- The last row may be located at an opposing side of the virtual keyboard from the first row and the last column may be located at an opposing side of the virtual keyboard from the first column.
- The method may further comprise: responsive to receiving a third request to select one of the plurality of characters that are within the focus of the cursor, updating the list of word suggestions to include one or more entries including the selected one of the plurality of characters.
- The at least one of the one or more entries in the list may have a word that is automatically completed based on the selected one of the plurality of characters.
- The second direction may be opposite the first direction.
- The plurality of characters may comprise all letters or symbols of a language being presented in the virtual keyboard.
- The client device may be a television and the first request and the second request may be received from a remote controller in communication with the television.
- According to another aspect of the present disclosure there is provided a non-transitory, computer-readable medium storing instructions that, when executed, cause a processing device to: display a user interface on a display of a client device, the user interface comprising a virtual keyboard including a plurality of characters arranged in one or more rows and one or more columns; fix a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard, wherein at least one of the plurality of characters is within the focus of the cursor; responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, wrap the at least one of the plurality of characters around the row or the column to a last row or a last column of the virtual keyboard to present another of the plurality of characters within the focus of the cursor; and responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, move the focus of the cursor to a list of word suggestions.
- The instructions, when executed, may cause the processing device to restrict movement of the plurality of characters within the virtual keyboard to a direction opposite the first direction.
- The instructions, when executed, may cause the processing device to display the list of word suggestions immediately adjacent to the first row or the first column.
- The first direction may be a horizontal direction; and the instructions, when executed, may cause the processing device to, responsive to receiving the first request to move the cursor in the horizontal direction in the virtual keyboard, wrap the at least one of the plurality of characters around the first column to the last column in the virtual keyboard.
- Alternatively, the first direction may be a vertical direction; and the instructions, when executed, may cause the processing device is further to, responsive to receiving the first request to move the cursor in the vertical direction in the virtual keyboard, wrap the at least one of the plurality of characters around the first row to the last row in the virtual keyboard.
- The instructions, when executed, may cause the processing device to display a query builder that displays one or more characters as the one or more characters are selected from the virtual keyboard.
- The last row may be located at an opposing side of the virtual keyboard from the first row and the last column may be located at an opposing side of the virtual keyboard from the first column.
- According to another aspect of the present disclosure there is provided a system, comprising: a memory device; a processing device operatively coupled to the memory device, the processing device to: display a user interface on a display of a client device, the user interface comprising a virtual keyboard including a plurality of characters arranged in one or more rows and one or more columns; fix a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard, wherein at least one of the plurality of characters are within the focus of the cursor; responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, wrap the at least one of the plurality of characters around the row or the column to a last row or a last column of the virtual keyboard to present another of the plurality of characters within the focus of the cursor; and responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, move the focus of the cursor to a list of word suggestions.
- Aspects and implementations of the present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various aspects and implementations of the disclosure, which, however, should not be taken to limit the disclosure to the specific aspects or implementations, but are for explanation and understanding only.
-
FIG. 1 illustrates an example of system architecture for efficiently searching for media content items, in accordance with one implementation of the disclosure. -
FIG. 2 depicts a flow diagram of aspects of a method for efficiently searching for media content items, in accordance with one implementation of the present disclosure. -
FIG. 3A illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a first horizontal direction, in accordance with one implementation of the disclosure. -
FIG. 3B illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the selection inFIG. 3A , and the user has selected to move the cursor in the first horizontal direction, in accordance with one implementation of the disclosure. -
FIG. 3C illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the selection inFIG. 3B , and the user has selected a character under the focus of the cursor to add to a query builder, in accordance with one implementation of the disclosure. -
FIG. 3D illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a vertical direction, in accordance with one implementation of the disclosure. -
FIG. 3E illustrates an example of a user interface including a virtual keyboard where the cursor has moved down a row based on the selection inFIG. 3D , and the user has selected to move the cursor in the first horizontal direction, in accordance with one implementation of the disclosure. -
FIG. 3F illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the selection inFIG. 3E , and the user has selected a character under the focus of the cursor to add to a query builder, in accordance with one implementation of the disclosure. -
FIG. 3G illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a second horizontal direction, in accordance with one implementation of the disclosure. -
FIG. 3H illustrates an example of a user interface including a virtual keyboard where the cursor has moved to a list of word suggestions based on the selection inFIG. 3G , and the user has selected to move the cursor down in the list of word suggestions, in accordance with one implementation of the disclosure. -
FIG. 3I illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in a horizontal direction to return to the virtual keyboard, in accordance with one implementation of the disclosure. -
FIG. 3J illustrates an example of a user interface including a virtual keyboard where the user has selected to move the cursor in the first horizontal direction a number of times, in accordance with one implementation of the disclosure. -
FIG. 3K illustrates an example of a user interface including a virtual keyboard where the characters have wrapped around a vertical axis based on the number of selections inFIG. 3J , the user has selected a character under the focus of the cursor to add to a query builder, and the user has selected to move the cursor in the second horizontal direction, in accordance with one implementation of the disclosure. -
FIG. 3L illustrates an example of a user interface including a virtual keyboard where the cursor has moved to a list of word suggestions based on the selection inFIG. 3K , and the user has selected an auto-completed title of a media content item to consume, in accordance with one implementation of the disclosure. -
FIG. 4 depicts a block diagram of an example computing device operating in accordance with one or more aspects of the present disclosure. - A technical problem addressed by implementations of the disclosure is that unnecessary processing resources and network bandwidth resources may be consumed by typing in characters using virtual keyboards. A virtual keyboard may refer to a software component that allows the input of characters without the need for physical keys. The interaction with the virtual keyboard may happen via a touchscreen interface, but can also take place in a different form in virtual or augmented reality. A virtual keyboard may be used when searching for a media content item to consume, entering user feedback, entering an electronic message (e.g., email, text, etc.), entering a website URL, and the like. Although searching for media content items is primarily described below as an example of using the enhanced virtual keyboard of the present disclosure, it should be understood that any suitable implementation that may benefit from the enhanced virtual keyboard is considered to be within the scope of the disclosure.
- The terms “media content item” and “content item” may be used interchangeably herein. Typing in a search query may often include multiple key-presses to navigate a cursor around a virtual keyboard and select characters using a directional pad (“D-pad”). The multiple key presses can undesirably consume processing resources on both an electronic device (e.g., remote controller (if used)), client device (e.g., a television (which displays the virtual keyboard)), a server (which performs queries using received characters that were selected), and the network over which media content items and search results are sent while the user is typing a query. This may be particularly problematic for the remote controller where battery life is limited and processing the multiple key presses may drain the batteries.
- Further, each time a character is entered by a user, the character is transmitted from the client device to a server to look-up media content items based on the entered character. The server may transmit found media content items that include one or more of the entered characters in their titles as word suggestions (e.g., search suggestions and/or auto-completions) to the client device that is displaying the user interface. Word suggestions may refer to search suggestions that include one or more characters that are different than the characters selected in the virtual keyboard (e.g., “film” may be suggested as a word for “felm” entered via the virtual keyboard). Auto-completions may refer to words that include at least each of the characters selected from the virtual keyboard (e.g., “film” may be suggested as an auto-completed word for “fi” entered via the virtual keyboard).
- A data payload for transferring the suggestions may include a thumbnail, the full video file of the media content item, and/or metadata (e.g., title and description of the media content item). Sending multiple data payloads as the user enters the search query can consume processing resources at the server to perform the look-ups, processing resources at the client device by displaying the list of word suggestions, network bandwidth resources by sending multiple data payloads as the characters are entered, and the like. Also, the number of key presses may increase if a suggestion appears in the list but the cursor is at a far end of the virtual keyboard. The user may have to press a key in a certain direction numerous times to move the cursor across the keyboard to the list of word suggestions. This results in a slow process in the user arriving at a desired suggestion and unnecessary compute resource usage to process the excess key presses.
- Another technical problem addressed by implementations of the disclosure is that entering a search query in a conventional manner by moving a cursor across multiple rows and columns to find the desired characters can be error-prone for a user. The user has to track the cursor around the virtual keyboard and stop it on the desired character to select that character. If a title includes multiple characters, the more key-presses required to enter the title, the higher the chance of the user selecting a wrong character on accident. Erroneously entering a character may cause a data payload to be transmitted that includes wrong suggested words that were found based on the erroneous character. Thus, more processing resources of the server and client device, and network resources, may be incurred. Additionally, errors in this manner should be corrected by the user by navigating to a delete key of the virtual keyboard, thereby exacerbating the problems described above.
- Voice enabled remote controls with embedded microphones allow a user to provide an audible search query. However, these conventional solutions suffer from inaccuracies in detecting the search query spoken by a user.
- Accordingly, implementations of the present disclosure relate to reducing the number of key-presses required to enter characters (e.g., entering a search query, an electronic message, user feedback, a review, an email address, a website URL, etc.) by using an enhanced user interface. The key presses may be entered via an electronic device, such as a remote controller, a game controller, a smartphone, or the like. The keys may be included in a directional pad and correspond to a selection (e.g., enter) key and a different respective key for a left, right, up, and down direction. The keys may control the movement of the cursor and/or characters represented in a virtual keyboard of a user interface for searching for media content items provided by a content sharing platform. The user interface including the virtual keyboard may be presented on a display of a client device (e.g., television, display of a desktop or laptop, etc.). The virtual keyboard can include one or more characters, symbols, numbers, and/or special characters. The user may press the keys to request desired characters to come within the focus of the cursor that is fixed within the virtual keyboard. The user may select desired characters to add the desired characters to a query builder displayed in the user interface.
- In contrast to some conventional solutions whereby letters of an alphabet may be provided on multiple slot-machine style reels (with only some letters of the alphabet being displayed at any one time), in some implementations of the present disclosure the full alphabet (e.g., every letter, character, and/or symbol of any suitable language) may be displayed on the virtual keyboard at the same time. In addition, the user may select to change the language presented in the virtual keyboard at any time, and the characters associated with the selected language may be mapped to the virtual keyboard.
- A technical solution to the above identified technical problems may include fixing a focus of a cursor to a first row and/or a first column in the virtual keyboard. Movement of the characters under the cursor within the virtual keyboard may be allowed to wrap around the first row and/or the first column in the virtual keyboard when the user requests movement of the cursor in one or more directions. The characters may wrap around a horizontal axis or a vertical axis within the virtual keyboard in a cylindrical fashion when the user requests movement in one or more directions.
- In some implementations, the virtual keyboard may be configured as a sphere instead of a cylinder. For example, instead of wrapping characters of the virtual keyboard just around the vertical axis or horizontal axis, the characters of the virtual keyboard may wrap around both the vertical axis and the horizontal axis. In this implementation, the focus of the cursor may be fixed in place at a location of the virtual keyboard and movement of the characters under the focus of the cursor may be constrained to one horizontal direction (e.g., right) and one vertical direction (e.g., down). A key input to move the cursor in another horizontal direction (e.g., left) may move the cursor to the suggestions and/or auto-completions adjacent to the left side of the virtual keyboard, and another key input to move the cursor in another vertical direction (e.g., up) may move the cursor to auto-completions or search results, for example, adjacent to the top side of the virtual keyboard.
- Movement of the characters in one or more other directions may be restricted within the virtual keyboard. Instead, when the user requests to move the cursor in the one or more other directions, the cursor can move to the list of word suggestions and/or auto-completions, a query builder, or search results including a representation for each media content item. Accordingly, the list of word suggestions and/or auto-completions, query builder, or search results is one-click away (e.g., less key presses) from the virtual keyboard regardless of which character is under the focus of the cursor in the virtual keyboard. Thus, in one example, the list of word suggestions may include titles based on the one or more characters that are entered and can be updated as subsequent characters are entered. Providing suggested media content items and/or auto-completed media content items based on the characters entered may allow the user to select a media content item that materializes in the list without having to enter the full title (e.g., less key presses) of the media content item in a query builder.
- By maintaining the list of word suggestions and/or auto-completions immediately adjacent to the row or the column at which the focus of the cursor is fixed in the virtual keyboard, the user's eye-gaze/visual focus may be centered on the suggestions and/or auto-completions, which may make it easier for the user to select words representing a desired media content item. Further, by fixing the focus of the cursor to within one row and/or one column to allow the characters to cycle under the cursor through that row and/or that column, the user is less likely to make an input selection error because the user does not have to track the cursor around multiple rows and/or columns in the virtual keyboard.
- Thus, the technical effect may include reducing the number of key presses that are entered to find a media content item to consume. For example, when the cursor is inside the virtual keyboard, the user can press a key in the direction that is restricted within the virtual keyboard, and the cursor may jump to the list of word suggestions and/or auto-completions with a single key press. Reducing the number of key presses may also reduce the processing resources (on all of a remote control, client device and backend server) and network bandwidth resources that are incurred during character entry because of fewer key presses and fewer suggestion data payloads being sent if a desired media content item is found based on error-free characters in a search query.
-
FIG. 1 illustrates an example ofsystem architecture 100 for providing a revolving on-screen virtual keyboard for efficient use during media content item searching, in accordance with one implementation of the disclosure. Thesystem architecture 100 includesclient devices 110A through 110Z, one ormore networks 105, one ormore data stores 106, one or moreelectronic devices 170, and one or more platforms (e.g., content sharing platform 120,recommendation platform 157,advertisement platform 165,mobile platform 150, social network platform 160,search platform 145,content provider platform 195, and collaboration platform 155). The platforms can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, and databases), networks, software components, and/or hardware components. - The one or
more networks 105 can include one or more public networks (e.g., the Internet), one or more private networks (e.g., a local area network (LAN) or one or more wide area networks (WAN)), one or more wired networks (e.g., Ethernet network), one or more wireless networks (e.g., an 802.11 network or a Wi-Fi network), one or more cellular networks (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and/or a combination thereof. In one implementation, some components ofarchitecture 100 are not directly connected to each other. In one implementation,architecture 100 includesseparate networks 105. - The one or
more data stores 106 can be memory (e.g., random access memory), cache, drives (e.g., hard drive), flash drives, database systems, or another type of component or device capable of storing data. The one ormore data stores 106 can include multiple storage components (e.g., multiple drives or multiple databases) that may also span multiple computing devices (e.g., multiple server computers). Thedata stores 106 can be persistent storage that are capable of storing data. A persistent storage can be a local storage unit or a remote storage unit. Persistent storage can be a magnetic storage unit, optical storage unit, solid state storage unit, electronic storage units (main memory), or similar storage unit. Persistent storage can be a monolithic device or a distributed set of devices. A ‘set’, as used herein, refers to any positive whole number of items. - Content items 121 (media content items) can be stored in one or
more data stores 106. Thedata stores 106 can be part of one or more platforms. Examples of acontent item 121 can include, and are not limited to, digital video, digital movies, animated images, digital photos, digital music, digital audio, website content, social media updates, electronic books (ebooks), electronic magazines, digital newspapers, digital audio books, electronic journals, web blogs, real simple syndication (RSS) feeds, electronic comic books, software applications, etc.Content item 121 is also referred to as a media item. Thecontent items 121 may be pre-recorded or live-streaming. For brevity and simplicity, an online video (also hereinafter referred to as a video) is used as an example of acontent item 121 throughout this document. - The
content items 121 can be provided by content providers. A content provider can be a user, a company, an organization, etc. A content provider can providecontent items 121 that are video advertisements. A content provider that provides video advertisements is hereinafter referred to as an advertiser. For example, acontent item 121 may be a video advertisement for a car provided by a car advertiser. A service provider can charge an advertiser a fee, for example, when the service provider provides the advertisements onclient devices 110A-110Z to be viewed by users. - The
client devices 110A-110Z can include devices, such as, televisions, smart phones, cellular telephones, personal digital assistants (PDAs), portable media players, netbooks, laptop computers, electronic book readers, tablet computers, desktop computers, set-top boxes, gaming consoles, and the like. - The
individual client devices 110A-110Z can include acommunication application 115. Acontent item 121 can be consumed via thecommunication application 115, the Internet, etc. As used herein, “media,” “media item,” “online media item,” “digital media,” “digital media item,” “content,” “media content item,” and “content item” can include an electronic file that can be executed or loaded using software, firmware or hardware configured to present a content item. In one implementation, thecommunication applications 115 may be applications that allow users to compose, send, and receive content items 121 (e.g., videos) over a platform (e.g., content sharing platform 120,recommendation platform 157,advertisement platform 165,mobile platform 150, social network platform 160,search platform 145,collaboration platform 155, and content provider platform 195) and/or a combination of platforms and/or networks. - For example, the
communication application 115 may be a social networking application, video sharing application, video streaming application, video on demand application, photo sharing application, chat application, mobile application of a content provider or any combination of such applications. Thecommunication application 115 in a client device can render, display, and/or present one or more content items 121 (e.g., videos) to one or more users. For example, thecommunication application 115 can provide one or more user interfaces (e.g., graphical user interfaces) to be rendered in a display of a client device for sending, receiving and/or playing videos. - In one implementation, the
communication application 115 may include asearch component 114 and acontent viewer 113 and may provide auser interface 116 that may be used to search for media content items via a virtual keyboard and that may playcontent items 121 in acontent viewer 113 portion of theuser interface 116. Thecontent viewer 113 may render, display, and/or present content items 121 (e.g., videos) to one or more users. In one implementation, thecontent viewer 113 is embedded in an application (e.g., communication application 115). In another implementation, thecontent viewer 113 may be a standalone application (e.g., mobile application, desktop application, gaming console application, television application, etc.), such ascommunication application 115, that allows users to consume (e.g., play, display)content items 121, such as videos, images, documents (e.g., web pages), etc. For example, thecontent viewer 113 may be a web browser that can access, retrieve, present, and/or navigate content (e.g., web pages such as Hyper Text Markup Language (HTML) pages, digital media items, etc.) served by a web server of a platform. In another example, thecontent viewer 113 may display an embedded media player (e.g., a Flash® player or an HTML5 player) that is embedded in a document (e.g., user interface 116 (a web page)). - The
content viewer 113 can be provided to theclient devices 110A-110Z by a server and/or a platform. For example, thecontent viewers 113 may be embedded media players that are embedded in user interfaces 116 (e.g., documents (web pages) or screens of a stand-alone application) provided by the content sharing platform 120 or thecontent provider platform 195. In another example, thecontent viewers 113 may be applications that are downloaded from a platform (e.g., content sharing platform 120,recommendation platform 157,advertisement platform 165,mobile platform 150, social network platform 160,search platform 145,collaboration platform 155, and content provider platform 195). In another example, thecontent viewers 113 may be standalone applications that are pre-installed on theclient devices 110A-110Z. - The
search component 114 may provide a revolving on-screen virtual keyboard to use for efficient searching of thecontent items 121. In some implementations, thesearch component 114 may provide the on-screen virtual keyboard for efficient character entry for any suitable purpose (e.g., entering an electronic message, a website URL, a review, user feedback, etc.). Thesearch component 114 may be implemented in computer instructions that are stored on one or more memory devices and that are executed by one or more processing devices. Thesearch component 114 may fix a focus of a character to a first row and/or a first column in a virtual keyboard displayed in theuser interface 116. Movement of the characters may be allowed to wrap around the first row and/or the first column in the virtual keyboard when the user requests movement of the cursor in one or more directions. The cursor may remain fixed at its current location as the characters wrap around the first row and/or the first column when the user requests movement of the cursor in the one or more directions. The movement of the characters within the virtual keyboard may be restrained to a direction opposing the one or more directions. When the user requests to move the cursor in one or more other directions, the cursor can jump to a list of word suggestions, auto-completions, and/or search results. Accordingly, the list of word suggestions is one-click away (e.g., less key presses) from the virtual keyboard regardless of which character is under the focus of the cursor in the virtual keyboard. Providing suggested words (e.g., titles of media content items) based on the characters entered may allow the user to select a media content item that materializes in the list without having to enter the full title (e.g., less key presses) of the media content item in a query builder. - The
electronic device 170 may be any suitable electronic device capable of communicating directional key inputs to theclient device 110A-110Z. For example, theelectronic device 170 may include a remote controller, a gaming controller, a smartphone, a tablet, or the like. Theelectronic device 170 may include a physical or virtual directional pad (“D-pad”) 175 that includes keys corresponding to up, down, left, right, and enter (select). Theelectronic device 170 may receive key input selections when the user presses one or more of the keys on thedirectional pad 175. Theelectronic device 170 may transmit the key inputs to theclient device 110A-110Z for processing by one or more processors running thesearch component 114. - As characters are selected from the virtual keyboard displayed in the
user interface 116, theclient device 110A-110Z may send the selected characters to the one or more platforms to search for suggested or auto-completedcontent items 121. The one or more platforms may query thedata store 106 for the list of word suggestions (e.g., media content item search suggestions and/or auto-completions) and send the list of word suggestions to the requestingclient device 110A-110Z. In one example, the list of word suggestions may include one or more entries having a respective title associated with amedia content item 121. In addition to words, the list of word suggestions may include emojis (e.g., if the user selects characters “ca”, the suggestions may be , which represent a cat, cake, cactus, and candy, respectively). An emoji may refer to a small digital image or icon used to express an idea, emotion, etc. The list of word suggestions may be sent in a data payload that includes a representation (e.g., link, thumbnail) of thecontent item 121, an executable file that plays thecontent item 121, metadata (e.g., title, file type, file size, content item length, etc.), and so forth. Theclient device 110A-110Z may receive the list of word suggestions and display the titles in a list adjacent to one side of the virtual keyboard and display the representation of thecontent items 121 adjacent to another side of the virtual keyboard. - In some embodiments, the
data store 106 may be local to and reside in memory of theclient device 110A-110Z. In this example, thedata store 106 may include a dictionary that is searched for the list of word suggestions (e.g., media content item search suggestions and/or auto-completions). Thus, when the user selects characters, requests may not be sent to the one or more platforms, and instead, uses thelocal data store 106 to search for the list of word suggestions. - The
content provider platform 195 can provide a service and the content provider can be the service provider. For example, a content provider may be a video streaming service provider that provides a media streaming service via acommunication application 115 for users to play videos, TV shows, video clips, audio, audio clips, and movies, onclient devices 110A-110Z via thecontent provider platform 195. - The social network platform 160 can provide an online social networking service. The social network platform 160 can provide a
communication application 115 for users to create profiles and perform activity with their profile. Activity can include updating a profiling, exchanging messages with other users, posting status updates, photos, videos, etc. to share with other users, evaluating (e.g., like, comment, share, recommend) status updates, photos, videos, etc., and receiving notifications of other users activity. - The
mobile platform 150 can be and/or include one or more computing devices (e.g., servers), data stores, networks (e.g., phone network, cellular network, local area network, the Internet, and/or a combination of networks), software components, and/or hardware components that can be used to allow users to connect to, share information, and/or interact with each other using one or more mobile devices (e.g., phones, tablet computers, laptop computers, wearable computing devices, etc.) and/or any other suitable device. For example, themobile platform 150 may enable telephony communication, Short Message Service (SMS) messaging, Multimedia Message Service (MMS) messaging, text chat, and/or any other communication between users. Themobile platform 150 can support user communications via video messaging, video chat, and/or videoconferences. - The
collaboration platform 155 can enable collaboration services, such as video chat, video messaging, and audio and/or videoconferences (e.g., among the users ofdevices 110A-110Z) using, for example, streaming video or voice over IP (VoIP) technologies, cellular technologies, LAN and/or WAN technologies, and may be used for personal, entertainment, business, educational or academically oriented interactions. - The
recommendation platform 157 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used to generate and provide content recommendations (e.g., articles, videos, posts, news, games, etc.). Therecommendation platform 157 can include one or more recommendation servers. - The
search platform 145 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used to allow users to query the one ormore data stores 106 and/or one or more platforms and receive query results. - The
advertisement platform 165 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used provide video advertisements. - The content sharing platform 120 can be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that can be used to provide one or more users with access to
content items 121 and/or provide thecontent items 121 to one or more users. For example, the content sharing platform 120 may allow users to consume, upload, download, and/or search forcontent items 121. In another example, the content sharing platform 120 may allow users to evaluatecontent items 121, such as, approve of (“like”), dislike, recommend, share, rate, and/or comment oncontent items 121. In another example, the content sharing platform 120 may allow users to editcontent items 121. The content sharing platform 120 can also include a web site (e.g., one or more webpages) and/or one or more applications (e.g., communication applications 115) that may be used to provide one or more users with access to thecontent items 121, for example, viaclient devices 110A-110Z. Content sharing platform 120 can include any type of content delivery network providing access tocontent items 121. - The content sharing platform 120 can include multiple channels (e.g.,
Channel A 125 through Channel Z 129). A channel can be data content available from a common source or data content having a common topic or theme. The data content can be digital content chosen by a user, digital content made available by a user, digital content uploaded by a user, digital content chosen by a content provider, digital content chosen by a broadcaster, etc. For example,Channel A 125 may include videos Y and Z. A channel can be associated with an owner, who is a user that can perform actions on the channel. The data content can be one ormore content items 121. The data content in the channels can be pre-recorded or live-streaming. Although channels are described as one implementation of a content sharing platform, implementations of the disclosure are not limited to content sharing platforms that providecontent items 121 via a channel model. -
FIG. 2 depicts a flow diagram of aspects of amethod 200 for efficiently searching for media content items, in accordance with one implementation of the present disclosure. Themethod 200 is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both. In one implementation, themethod 200 is performed by asearch component 114 in aclient device 110A ofFIG. 1 . In one implementation, a processing device of a client device performsmethod 200. - At
block 210, the processing device displays a user interface on a display of a client device. In some implementations, the client device may be a television or a computer display. In some implementations, the user interface includes a virtual keyboard including a set of characters or symbols arranged in one or more rows and one or more columns. The set of characters or symbols may be associated with any desired language and include every character (e.g., English letters in the alphabet) or symbol (e.g., Chinese, Japanese, Korean) for that particular language. In some implementations, the characters may include a subset of characters or symbols for the language. The virtual keyboard may also include an option to depict different characters or symbols of another language, an option to depict special characters associated with the depicted language, and/or an option to depict numbers in the virtual keyboard. If any of the options are selected, the virtual keyboard may switch the mapping of the elements of the virtual keyboard from the currently depicted character, symbol, number, or special character to the selected characters, symbols, numbers, or special characters. The virtual keyboard is depicted in more detail inFIGS. 3A-3L . - In some implementations, the processing device may display a list of word suggestions (e.g., search suggestions and/or auto-completions and/or transliterations) immediately adjacent to the first row or the first column where the cursor is fixed. For example, the list of word suggestions may be displayed adjacent to a left side of the virtual keyboard when the cursor is fixed to a first column, or the list of word suggestions may be displayed adjacent to a top side when the cursor is fixed to a first row. The list of words may include search suggestions including titles of media content items that include one or more different characters than the characters selected by the user in the virtual keyboard and that are automatically completed based on the one or more different characters. The list of words may include auto-completions that include titles of media content items that include at least each of the characters entered by the user in the virtual keyboard and that are automatically completed based on each of the characters entered by the user. The list of words may also include transliterations that serve to convert characters typed in one alphabet into corresponding letters of another alphabet. The cursor is one-click or key input away from accessing the list of word suggestions regardless of what character is displayed in the cursor in the virtual keyboard of the user interface.
- Such a technique may provide a benefit of reducing key inputs, thereby reducing computing resource usage of the electronic device (e.g., remote controller), the client device, the server of the platform providing the list of media content item suggestions and media content item selected, and/or the network over which the list of word suggestions is transmitted. Further, the enhanced virtual keyboard may increase the user experience of using the user interface, thereby potentially retaining the attention of the user and causing the user to reuse the user interface.
- In some implementations, a query builder and/or search results may also be located immediately adjacent to a side of the virtual keyboard to enable the user to easily access the query builder or the search results to select a media content item to consume (e.g., view/play). For example, the query builder may be located adjacent to a top side of the virtual keyboard and the search results may be located adjacent to a bottom side of the virtual keyboard. The query builder may display the characters as the characters are selected using the cursor in the virtual keyboard. It should be appreciated that the list of word suggestions and/or the search results may be dynamically updated for each character that is selected to be added to the query builder. For example, the processing device may receive a request to select one of characters that is in the focus of the cursor in the virtual keyboard and may add the letter to the query builder and send the updated query to the appropriate platform. The platform may search the data store using the updated query and return a list of word suggestions including titles to related media content items. The processing device may update the list of word suggestions to include one or more titles of the media content items including the selected character. Further, the search results may be updated based on the updated list of word suggestions. The search results may include representations (e.g., thumbnails, images, video clips, audio links, etc.) of the media content items related to titles presented in the list of word suggestions.
- In some implementations, the user may use a voice enabled remote controller and may speak the title of the media content item they desire to watch into the remote controller. The received audio may be transmitted to the client device, which populates the query builder with the title of the media content item deciphered from the audio. The title may be transmitted by the query builder to the platform (e.g., content provider platform, content sharing platform, etc.) to perform a search and obtain the list of word suggestions and/or search results. The user may use the virtual keyboard including the revolving characters and the fixed cursor to modify the title (e.g., correct any typos) in the query builder to find the desired media content item in the list of word suggestions and/or search results in fewer key inputs than using conventional virtual keyboards.
- At
block 220, the processing device fixes a focus of a cursor displayed in the user interface to a first row of the one or more rows or a first column of the one or more columns in the virtual keyboard. For example, in some implementations, where the virtual keyboard is configured in a cylindrical fashion, the cursor may be fixed to a first column to allow the characters to wrap or revolve around a vertical axis. In another implementation, where the virtual keyboard is configured in the cylindrical fashion, the cursor may be fixed to a first row to allow the characters to wrap or revolve around a horizontal axis. In yet another implementation, where the virtual keyboard is configured in a spherical fashion, the cursor may be fixed to a first row and a first column to allow the characters to wrap or revolve around both the vertical axis and the horizontal axis. - At
block 230, responsive to receiving a first request to move the cursor in a first direction in the virtual keyboard, the processing device wraps or revolves at least one of the set of characters around the row or the column to a last row or a last column of the virtual keyboard to present another character of the set of characters within the focus of the cursor. The first request may be received from an electronic device (e.g., remote controller) communicatively coupled to the client device (e.g., television) when the user selects (e.g., presses) a designated key on the electronic device such as a remote controller. Movement of the characters into the focus of the cursor may be allowed in the virtual keyboard based on the first direction, and the focus of the cursor may remain fixed at its current location as the another character of the set of characters is transitioned into the focus of the cursor. For example, if the user requests to move the cursor right, another character may be moved left to come into the focus of the cursor, since the cursor remains fixed. Thus, in some implementations, movement of the characters within the virtual keyboard may be restricted to a direction opposite the first direction. The last row may be located at an opposing side of the virtual keyboard from the first row and the last column may be located at an opposing side of the virtual keyboard from the first column. - In some embodiments, the first direction may be a horizontal direction (e.g., left or right), and responsive to receiving the first request to move the cursor in the horizontal direction in the virtual keyboard, the processing device may wrap or revolve the at least one of the set of characters around the first column to the last column in the virtual keyboard. In some implementations, the first direction may be a vertical direction (e.g., up or down), and responsive to receiving the first request to move the cursor in the vertical direction in the virtual keyboard, the processing device may wrap or revolve the at least one of the set of characters around the first row to the last row in the virtual keyboard.
- At
block 240, responsive to receiving a second request to move the cursor in the virtual keyboard in a second direction, the processing device may move the focus of the cursor to a list of word suggestions. The second request may be received from an electronic device (e.g., remote controller) communicatively coupled to the client device (e.g., television). As discussed above, the list of word suggestions may be displayed immediately adjacent to a side of the virtual keyboard such that it is one-click or key input away from the virtual keyboard and is also within the gaze or view of the eyes of the user. The processing device may restrict movement of the set of characters within the virtual keyboard based on the second direction. In some implementations, the second direction (e.g., left or up) is opposite the first direction (e.g., right or down). -
FIG. 3A illustrates an example of auser interface 116 including avirtual keyboard 300 where the user has selected to move the cursor in a first horizontal direction, in accordance with one implementation of the disclosure. Theuser interface 116 may be included in the communication application provided by one of the platforms inFIG. 1 . As depicted, theuser interface 116 includes thevirtual keyboard 300 including a set of characters. The set of characters in the depicted example includes every letter of the English alphabet. However, as may be appreciated, the characters and/or symbols of any suitable language may be displayed in thevirtual keyboard 300. Thevirtual keyboard 300 also includes an option 302 (e.g., a link) to cause thevirtual keyboard 300 to switch from displaying the characters to displaying special characters and numbers. Thevirtual keyboard 300 may also include an option (not depicted) to switch from displaying characters of the English language to displaying characters and/or symbols of any other suitable language. - Also, the
user interface 116 includes aquery builder 304 that displays characters as they are selected from thevirtual keyboard 300. Thequery builder 304 may be displayed immediately adjacent to a side (e.g., top) of thevirtual keyboard 300, as depicted. Thevirtual keyboard 300 may also display one or more buttons adjacent to a side of thevirtual keyboard 300. For example, a “Clear” button may delete any characters that are being displayed in thequery builder 304, a “Space” button may add a space to the query being built in thequery builder 304, and a “Search” button may cause the client device to transmit the query to the appropriate platform to search for the desired media content item. In some implementations, the query is transmitted to the appropriate platform each time a character is selected by the user and added to thequery builder 304, even when the “Search” button is not selected. - The
user interface 116 also presents a list ofword suggestions 306 immediately adjacent to a side (e.g., left) of thevirtual keyboard 300. The list of word suggestions may include titles of media content items from which the user can select to consume (e.g., play). As discussed above, the list ofword suggestions 306 may include search suggestions and/or auto-completions. In some implementations, when theuser interface 116 is initially presented to the user, the list ofword suggestions 306 may not be visible because the user has not selected any characters yet. When the user selects a first character to add to thequery builder 304, the list ofword suggestions 306 may be received from the appropriate platform based on the selected first character and displayed in theuser interface 116. - In the depicted implementation, when the user is initially presented the
user interface 116, the list ofword suggestions 306 may already be visible even when the user has not selected any characters. The titles included in the list ofword suggestions 306 may be based on the preferences (e.g., media content item genre, media content item type, media content item duration, media content items “liked” by the user or other users, etc.) of the user and/or other users, previous selections of media content items by the user and/or other users, previous searches for media content items made by the user and/or other users, and so forth. The user may select to play a media content item included in the list ofword suggestions 306 by selecting the title of the media content item. The title may be a link that causes the selected media content item to play in thecontent viewer 113, either full-screen or in a portion of theuser interface 116. - The
user interface 116 may alsopresent search results 308 that include a representation of the media content items included in the list ofword suggestions 306. That is, in some implementations, the representations of the media content items presented in the search results 308 correspond to the titles of media content items included in the list ofword suggestions 306. As depicted, the search results 308 include thecontent viewer 113 which may be displaying a thumbnail associated with the “Suggestion A”media content item 121. The user may select to play the media content item in thecontent viewer 113, either full-screen or in the portion of theuser interface 116 where thecontent viewer 113 is located. The media content items presented in the search results 308 may be dynamically updated as the list ofword suggestions 306 is updated. - As discussed above, a cursor 310 (e.g., represented by the circle) of the
virtual keyboard 300 may be fixed to a row and/or a column. When thevirtual keyboard 300 is configured in a cylindrical fashion, thecursor 310 may be fixed to a column or a row, and when the characters are moved in an allowed direction, the characters may wrap or revolve around the column or row to a respective column or row at an opposite side of thevirtual keyboard 300. When thevirtual keyboard 300 is configured in a spherical fashion, thecursor 310 may be fixed to a column and a row, and when the characters are moved in an allowed direction, the characters may wrap or revolve around the column and row to a respective column and row at an opposite side of thevirtual keyboard 300. - For purposes of explanation and clarity, the
virtual keyboard 300 inFIGS. 3A-3L is configured in a cylindrical fashion and thecursor 310 is fixed to afirst column 312. As depicted inFIG. 3A , the character “A” is within the focus of thecursor 310. The user has input a key on an electronic device (e.g., using a directional pad on a remote controller) to move the cursor in a first horizontal direction (e.g., right, as represented by arrow 314). Since thecursor 310 is fixed incolumn 312, requesting movement of the cursor in the first horizontal direction may cause the characters in the row with the letter “A” to move in a horizontal direction (e.g., left) opposite the first horizontal direction such that a character to the right of the character within the focus of thecursor 310 is moved left into the focus of thecursor 310. Movement of the characters within thevirtual keyboard 300 may be restricted to a horizontal direction opposite the first horizontal direction. - Accordingly, as depicted in
FIG. 3B , the character “A” has wrapped around a vertical axis (e.g., the first column 312) to alast column 316 in thevirtual keyboard 300 based on the user selection, and another character “B” is presented within the focus of thecursor 310. Thecursor 310 remains fixed at its current location, which is one-click or key input away from the list ofword suggestions 306. The rest of the characters in the row in which the characters “A” and “B” are located are also moved to different columns accordingly. The rows including other characters (e.g., “H I J K L M N”, “O P Q R S T U”, and “V W X Y Z”) may either wrap around the vertical axis as well or remain in place and not moved. Further, the user has selected, using the electronic device, to move the cursor in the first horizontal direction again (as represented by arrow 314). - Accordingly, as depicted in
FIG. 3C , the character “B” has wrapped around the vertical axis (e.g., the first column 312) to thelast column 316 in thevirtual keyboard 300 based on the user selection, and another character “C” is presented within the focus of thecursor 310. Thecursor 310 remains fixed at its current location, which is one-click or key input away from the list ofword suggestions 306. The rest of the characters in the row in which the characters “B” and “C” are located are also moved to different columns accordingly. - Further, the user has selected a character “C” under the focus of the
cursor 310 to add to thequery builder 304. The user made the selection by clicking or inputting the enter key on the electronic device (e.g., the remote controller communicatively coupled to the client device). The query in thequery builder 304 displays the character “C”, and the query is sent (e.g., with or without the user clicking the “Search” button) by the client device to the content sharing platform, for example, to search for media content items based on the character “C”. The client device receives the list ofword suggestions 306 from the content sharing platform and displays it in theuser interface 116 immediately adjacent to a left side of thevirtual keyboard 300. The list ofword suggestions 306 includes search suggestions and/or auto-completions of “Cartoon,” “Cats,” and “Coloring” based on the input “C” character in thequery builder 304. Further, the search results 308 may be updated based on the updated list ofword suggestions 306. For example,media content item 122 a is updated to present a representation of “Cartoon” based on the list of word suggestions. - In
FIG. 3D an example of theuser interface 116 including thevirtual keyboard 300 is depicted where the user has selected to move the cursor in a first vertical direction (e.g., down, as represented by arrow 320), in accordance with one implementation of the disclosure. If the user selected to move the cursor in a second vertical direction (e.g., up), thecursor 310 may move its focus to thequery builder 304, for example. Movement of the cursor in the first vertical direction may be allowed within thecolumn 312 in which thecursor 310 is fixed. - Accordingly, as depicted in
FIG. 3E , thecursor 310 is moved down a row to focus on the character “H”. The user has selected to move thecursor 310 in the first horizontal direction (e.g., right, as represented by arrow 314) again. As depicted inFIG. 3F , the character “H” has wrapped around the vertical axis (e.g., the first column 312) to thelast column 316 in thevirtual keyboard 300 based on the user selection, and another character “I” is presented within the focus of thecursor 310. Thecursor 310 remains fixed at its current location, which is one-click or key input away from the list ofword suggestions 306. The rest of the characters in the row in which the characters “H” and “I” are located are also moved to different columns accordingly. - Further, the user has selected a character “I” under the focus of the
cursor 310 to add to thequery builder 304. The user made the selection by clicking or inputting the enter key on the electronic device (e.g., the remote controller communicatively coupled to the client device). The query in thequery builder 304 displays the character “CI”, and the query is sent (e.g., with or without the user clicking the “Search” button) by the client device to the content sharing platform, for example, to search for media content items based on the character “CI”. The client device receives the list ofword suggestions 306 from the content sharing platform and updates the list ofword suggestions 306 in theuser interface 116 immediately adjacent to the left side of thevirtual keyboard 300. The updated list ofword suggestions 306 includes search suggestions and/or auto-completions of “Cinema,” “City,” “Citation,” and “Civilization” based on the input “CI” characters in thequery builder 304. Further, the search results 308 may be updated based on the updated list ofword suggestions 306. For example,media content item 122 a is updated to present a representation of “Cinema” in thecontent viewer 113 based on the list ofword suggestions 306. -
FIG. 3G illustrates an example of theuser interface 116 including thevirtual keyboard 300 where the user has selected to move the cursor in thevirtual keyboard 300 in a second horizontal direction (e.g., left, as represented by arrow 330), in accordance with one implementation of the disclosure. Requesting movement of thecursor 310 within thevirtual keyboard 300 in the second direction may be restricted and may cause thecursor 310 to move its focus to the list ofword suggestions 306. The content viewer 133 may still present a representation of “Cinema” for themedia content item 122 a. - Accordingly,
FIG. 3H illustrates an example of theuser interface 116 including thevirtual keyboard 300 where thecursor 310 has moved to a list ofword suggestions 306 based on the selection inFIG. 3G . InFIG. 3H , the focus of thecursor 310 is on the word “Citation” in the list ofword suggestions 306. The user has selected to move thecursor 310 in a first vertical direction (e.g., down) in the list of suggestions (as represented by arrow 320). The content viewer 133 may still present a representation of “Cinema” for themedia content item 122 a. -
FIG. 3I illustrates an example of theuser interface 116 including thevirtual keyboard 300 where the user has selected to move thecursor 310 in a first horizontal direction (e.g., right, as represented by arrow 314) to return to thevirtual keyboard 300, in accordance with one implementation of the disclosure. When thecursor 310 returns to thevirtual keyboard 300, the focus of thecursor 310 is fixed to thefirst column 312. As depicted inFIG. 3J , the focus of thecursor 310 moved to the character “O” in thevirtual keyboard 300. Further, the user has selected to move the cursor in the first horizontal direction three times (e.g., right, as represented by arrows 314). The content viewer 133 may still present a representation of “Cinema” for themedia content item 122 a. - Accordingly, as depicted in
FIG. 3K , the characters “O”, “P”, and “Q” have wrapped around the vertical axis (e.g., the first column 312) to thelast column 316 in thevirtual keyboard 300 based on the user selection to move the cursor three times inFIG. 3J . Further, another character “R” is presented within the focus of thecursor 310. Thecursor 310 remains fixed at its current location, which is one-click or key input away from the list ofword suggestions 306. The rest of the characters in the row in which the characters “O”, “P”, “Q”, and “R” are located are also moved to different columns accordingly. The other characters in other rows may be unaffected and remain in their current locations in thevirtual keyboard 300. - Further, in
FIG. 3K , the user has selected to add the character “R” within the focus of thecursor 310 to thequery builder 304. The user made the selection by clicking or inputting the enter key on the electronic device (e.g., the remote controller communicatively coupled to the client device). The query in thequery builder 304 displays the character “CIR”, and the query is sent (e.g., with or without the user clicking the “Search” button) by the client device to the content sharing platform, for example, to search for media content items based on the character “CIR”. The client device receives the list ofword suggestions 306 from the content sharing platform and updates the list ofword suggestions 306 in theuser interface 116 immediately adjacent to the left side of thevirtual keyboard 300. The updated list ofword suggestions 306 includes search suggestions and/or auto-completions of “Circuit,” “Circumstance,” and “Circus” based on the input “CIR” characters in thequery builder 304. Further, the search results 308 may be updated based on the updated list ofword suggestions 306. For example,media content item 122 a is updated to present a representation of “Circuit” in thecontent viewer 113 based on the list ofword suggestions 306. - The user then selected to move the cursor in the
virtual keyboard 300 in the second horizontal direction (e.g., left, as represented by arrow 330). The request may cause the focus of the cursor to move to the list ofword suggestions 306. For example, inFIG. 3L , an example of theuser interface 116 including thevirtual keyboard 300 where thecursor 310 has moved to the list ofword suggestions 306 based on the selection inFIG. 3K is depicted. Thecursor 310 is focused on the word “Circus” in the list ofword suggestions 306. The user has selected an auto-completed media content item for consumption, in accordance with one implementation of the disclosure. In response to the user selection of the title from the list ofword suggestions 306, themedia content item 122 a associated with the title may begin playback in thecontent viewer 113. As depicted, themedia content item 122 a title “Circus” is being played in thecontent viewer 113. -
FIG. 4 illustrates a diagram of a machine in an example form of acomputer system 400 within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, can be executed, in accordance with one implementation of the present disclosure. Thecomputer system 400 can beclient device 110A-110Z inFIG. 1 . The machine can operate in the capacity of a client machine in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine can be a television, a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. - The
example computer system 400 includes a processing device (processor) 402, a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR SDRAM), or DRAM (RDRAM), etc.), a static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and adata storage device 418, which communicate with each other via abus 440. - Processor (processing device) 402 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the
processor 402 can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. Theprocessor 402 can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Theprocessor 402 is configured to execute instructions 405 (e.g.,search component 114,user interface 116,content viewer 113, communication application 115) for performing the operations and steps discussed herein. - The
computer system 400 can further include anetwork interface device 408. Thecomputer system 400 also can include a video display unit 410 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an input device 412 (e.g., a keyboard, and alphanumeric keyboard, a motion sensing input device, touch screen), a cursor control device 414 (e.g., a mouse), and a signal generation device 420 (e.g., a speaker). - The
data storage device 418 can include a non-transitory machine-readable storage medium 424 (also computer-readable storage medium) on which is stored one or more sets of instructions 405 (e.g.,search component 114,user interface 116,content viewer 113,communication application 115, etc.) embodying any one or more of the methodologies or functions described herein. The instructions can also reside, completely or at least partially, within themain memory 404 and/or within theprocessor 402 during execution thereof by thecomputer system 400, themain memory 404 and theprocessor 402 also constituting machine-readable storage media. The instructions can further be transmitted or received over anetwork 430 via thenetwork interface device 408. - In one implementation, the
instructions 405 include instructions for search component 114 (e.g.,search component 114 inFIG. 1 ) and/or a software library containing methods that call thesearch component 114. In some implementations, theinstructions 405 include instructions for thesearch component 114, theuser interface 116, thecontent viewer 113, and/or thecommunication application 115. While the computer-readable storage medium 424 (machine-readable storage medium) is shown in an exemplary implementation to be a single medium, the terms “computer-readable storage medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The terms “computer-readable storage medium” and “machine-readable storage medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The terms “computer-readable storage medium” and “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media. - In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure can be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
- Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “receiving”, “displaying”, “moving”, “adjusting”, “replacing”, “determining”, “playing”, or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
- For simplicity of explanation, the methods of this disclosure are depicted and described as a series of acts. However, acts in accordance with this disclosure can occur in various orders and/or concurrently, and with other acts not presented and described herein. Furthermore, not all illustrated acts may be required to implement the methods in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that the methods could alternatively be represented as a series of interrelated states via a state diagram or events. Additionally, it should be appreciated that the methods disclosed in this specification are capable of being stored on an article of manufacture to facilitate transporting and transferring such methods to computing devices. The term “article of manufacture,” as used herein, is intended to encompass a computer program accessible from any computer-readable device or storage media.
- Certain implementations of the present disclosure also relate to an apparatus for performing the operations herein. This apparatus can be constructed for the intended purposes, or it can comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
- Reference throughout this specification to “one implementation” or “an implementation” means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. Thus, the appearances of the phrase “in one implementation” or “in an implementation” in various places throughout this specification are not necessarily all referring to the same implementation. In addition, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” Moreover, the words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion.
- It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other implementations will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
- In situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and used by a content server.
- Embodiments of the present disclosure also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the discussed purposes, or it may comprise a general purpose computer system selectively programmed by a computer program stored in the computer system. Such a computer program may be stored in a non-transitory computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic disk storage media, optical storage media, flash memory devices, or other type of machine-accessible storage media.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/091,324 US20230137957A1 (en) | 2018-12-04 | 2022-12-29 | Revolving on-screen virtual keyboard for efficient use during character input |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862775149P | 2018-12-04 | 2018-12-04 | |
PCT/US2019/013680 WO2020117293A1 (en) | 2018-12-04 | 2019-01-15 | Revolving on-screen virtual keyboard for efficient use during character input |
US202017043635A | 2020-09-29 | 2020-09-29 | |
US18/091,324 US20230137957A1 (en) | 2018-12-04 | 2022-12-29 | Revolving on-screen virtual keyboard for efficient use during character input |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2019/013680 Continuation WO2020117293A1 (en) | 2018-12-04 | 2019-01-15 | Revolving on-screen virtual keyboard for efficient use during character input |
US17/043,635 Continuation US11543960B2 (en) | 2018-12-04 | 2019-01-15 | Revolving on-screen virtual keyboard for efficient use during character input |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230137957A1 true US20230137957A1 (en) | 2023-05-04 |
Family
ID=65324589
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/043,635 Active US11543960B2 (en) | 2018-12-04 | 2019-01-15 | Revolving on-screen virtual keyboard for efficient use during character input |
US18/091,324 Pending US20230137957A1 (en) | 2018-12-04 | 2022-12-29 | Revolving on-screen virtual keyboard for efficient use during character input |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/043,635 Active US11543960B2 (en) | 2018-12-04 | 2019-01-15 | Revolving on-screen virtual keyboard for efficient use during character input |
Country Status (4)
Country | Link |
---|---|
US (2) | US11543960B2 (en) |
EP (1) | EP3891593A1 (en) |
CN (1) | CN111919196A (en) |
WO (1) | WO2020117293A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3150031C (en) | 2019-08-05 | 2024-04-23 | Ai21 Labs | Systems and methods of controllable natural language generation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080222106A1 (en) * | 2007-03-09 | 2008-09-11 | Microsoft Corporation | Media content search results ranked by popularity |
US20110179453A1 (en) * | 2008-12-31 | 2011-07-21 | Poniatowski Robert F | Methods and techniques for adaptive search |
US20140164975A1 (en) * | 2012-12-06 | 2014-06-12 | Dong Sung Kang | Terminal with moving keyboard and method for displaying moving keyboard thereof |
US20150066913A1 (en) * | 2012-03-27 | 2015-03-05 | Roku, Inc. | System and method for searching multimedia |
US9134881B2 (en) * | 2013-03-04 | 2015-09-15 | Google Inc. | Graphical input display having a carousel of characters to facilitate character input |
US20190121538A1 (en) * | 2017-10-24 | 2019-04-25 | BBPOS Limited | System and method for a keypad on a touch screen device |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144378A (en) | 1997-02-11 | 2000-11-07 | Microsoft Corporation | Symbol entry system and methods |
US6370282B1 (en) * | 1999-03-03 | 2002-04-09 | Flashpoint Technology, Inc. | Method and system for advanced text editing in a portable digital electronic device using a button interface |
JP4341627B2 (en) * | 2006-01-25 | 2009-10-07 | セイコーエプソン株式会社 | Character input on devices without a keyboard |
JP5296778B2 (en) * | 2007-05-15 | 2013-09-25 | ティヴォ インク | Multimedia content search and recording reservation system |
CN201060484Y (en) * | 2007-06-26 | 2008-05-14 | 深圳市杰特电信控股有限公司 | Character input apparatus |
KR20090005680A (en) | 2007-07-09 | 2009-01-14 | 삼성전자주식회사 | Method for providing gui to offer a cylinderical menu and multimedia apparatus thereof |
US8386958B1 (en) * | 2007-09-12 | 2013-02-26 | Oracle America, Inc. | Method and system for character input |
CA2716677C (en) * | 2010-10-07 | 2012-09-11 | Electronic Systems Software Solutions Inc. | Text entry device and method |
US9241101B2 (en) * | 2011-05-04 | 2016-01-19 | Intellectual Ventures Fund 83 Llc | Digital camera user interface for text entry |
US9292082B1 (en) * | 2011-11-08 | 2016-03-22 | Google Inc. | Text-entry for a computing device |
AU2012382068B2 (en) * | 2012-06-06 | 2018-04-26 | Thomson Licensing | Method and apparatus for entering symbols from a touch-sensitive screen |
DE102013004239A1 (en) * | 2013-03-12 | 2014-09-18 | Audi Ag | Device associated with a vehicle with speller completion proposal |
DE102013004245A1 (en) * | 2013-03-12 | 2014-09-18 | Audi Ag | A device associated with a vehicle with spelling means - selection mark |
CA2946907A1 (en) * | 2014-04-25 | 2015-10-29 | Espial Group Inc. | Text entry using rollover character row |
KR20160097867A (en) * | 2015-02-10 | 2016-08-18 | 삼성전자주식회사 | Image display apparatus and method for displaying image |
US20180267615A1 (en) * | 2017-03-20 | 2018-09-20 | Daqri, Llc | Gesture-based graphical keyboard for computing devices |
-
2019
- 2019-01-15 US US17/043,635 patent/US11543960B2/en active Active
- 2019-01-15 CN CN201980023422.1A patent/CN111919196A/en active Pending
- 2019-01-15 WO PCT/US2019/013680 patent/WO2020117293A1/en unknown
- 2019-01-15 EP EP19703842.5A patent/EP3891593A1/en active Pending
-
2022
- 2022-12-29 US US18/091,324 patent/US20230137957A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080222106A1 (en) * | 2007-03-09 | 2008-09-11 | Microsoft Corporation | Media content search results ranked by popularity |
US20110179453A1 (en) * | 2008-12-31 | 2011-07-21 | Poniatowski Robert F | Methods and techniques for adaptive search |
US20150066913A1 (en) * | 2012-03-27 | 2015-03-05 | Roku, Inc. | System and method for searching multimedia |
US20140164975A1 (en) * | 2012-12-06 | 2014-06-12 | Dong Sung Kang | Terminal with moving keyboard and method for displaying moving keyboard thereof |
US9134881B2 (en) * | 2013-03-04 | 2015-09-15 | Google Inc. | Graphical input display having a carousel of characters to facilitate character input |
US20190121538A1 (en) * | 2017-10-24 | 2019-04-25 | BBPOS Limited | System and method for a keypad on a touch screen device |
Also Published As
Publication number | Publication date |
---|---|
CN111919196A (en) | 2020-11-10 |
WO2020117293A1 (en) | 2020-06-11 |
US11543960B2 (en) | 2023-01-03 |
US20210365180A1 (en) | 2021-11-25 |
EP3891593A1 (en) | 2021-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947594B2 (en) | Personalized content sharing | |
US10645054B1 (en) | Promoting social network sharing of a content item on a content sharing platform | |
CN105659206B (en) | Generating playlists for a content sharing platform based on user actions | |
US11714529B2 (en) | Navigation of a list of content sharing platform media items on a client device via gesture controls and contextual synchronization | |
US20180232121A1 (en) | Perpendicular autoplay video feed related navigation | |
US9641574B1 (en) | Generating connection recommendations on a social network using social contacts | |
US8949874B1 (en) | Evaluating media channels | |
US20230137957A1 (en) | Revolving on-screen virtual keyboard for efficient use during character input | |
US20160371737A1 (en) | Personalized and contextual notifications of content releases | |
US10223060B2 (en) | Interactive video multi-screen experience on mobile phones | |
JP7179194B2 (en) | Variable endpoint user interface rendering | |
US20210337277A1 (en) | Dynamic integration of customized supplemental media content | |
US10127312B1 (en) | Mutable list resilient index for canonical addresses of variable playlists | |
US20220113935A1 (en) | Mobile-enabled voice search of media items for displaying on alternative playback devices | |
US20240248928A1 (en) | Personalized content sharing | |
US20230367538A1 (en) | Methods and systems for facilitating user participation in content engagement activities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KAEMMERER, DANIEL;REEL/FRAME:063020/0954 Effective date: 20181204 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |