SYSTEMS AND METHODS OF PERFORMING SEARCHES WITHIN A TEXT INPUT APPLICATION
The present disclosure relates to systems, apparatuses, and methods for performing searches and displaying results within a messaging application. A computing apparatus, which may include a touch-sensitive display, displays a user interface which includes a messaging application interface and a compact search applet interface encompassing a portion of a messaging application interface. A search applet is executed within the memory allocated to the messaging application or parent application. The search applet accepts user input and displays a set of media elements based on a search query run on the user input. The search results are then displayed by the search applet interface, allowing the user to quickly review the search results and, if desired, integrate media content into a message of the messaging application.
The present disclosure relates to performing searches within a text input application; more particularly, the present disclosure relates to systems and methods by which computing apparatuses accept, execute, and display search queries and results from within computing environments associated with a virtualized keyboard of a messaging application.
BACKGROUNDMessaging applications have been developed to meet consumer demand for expedited communication. For example, individuals use messaging applications to arrange to meet at particular locations, to confirm that certain deadlines are being met, or to verify information, which ordinarily require in-person communication. Also, different methods of searching and aggregating relevant data have also been developed to address the need for more vast and comprehensive information. Such methods include the development of mobile internet browsers capable of returning results in compact form as well as stand-alone applications which perform searches and configure the response to optimize receipt and analysis by the querying user.
SUMMARYIn addition to loading and executing multiple applications to obtain relevant or necessary information relating to messaging correspondence, users may also wish to perform comprehensive searches within messaging applications. The systems, apparatuses, and methods of the present disclosure allow users to perform comprehensive content searches such as searches of Internet content within messaging applications. In at least some embodiments, messaging applications are prompted to run compact applications otherwise referred to as applets. These applets are executed by a messaging application. The applets are designed to display a compact search interface within the keyboard region of a messaging application. The compact search interface may take advantage of existing systems such as keyboard input functionality employed by the communication apparatus or messaging application, as well as audio or visual input accepted by the communication apparatus.
In one aspect, the present disclosure features a method of displaying data within a keyboard region of a display of a communication apparatus. The method includes displaying, on the display, a messaging screen of a messaging application, detecting a request to execute a keyboard applet within the messaging application, and, in response to detecting the request to execute the keyboard applet, displaying a keyboard screen on the display of the communication apparatus. The method further includes displaying a search applet button, detecting selection of the search applet button, and, in response to detecting selection of the search applet button, executing a search applet, which displays a search input field configured to receive search input data. The method further includes receiving search input data entered into the search input field, performing a search of a server based on the search input data, receiving media content based on the results of the search of the server, and displaying, on the display of the communication apparatus, the media content within at least a portion of the keyboard region of the display.
In another aspect, the present disclosure features a communication apparatus. The communication apparatus includes a display; a processor coupled to the display; and a memory coupled to the processor. The memory stores instructions, which, when executed by the processor, cause the processor to: display, on the display, a messaging screen of a messaging application, the messaging application configured to transmit and receive messages; detect a request to execute a keyboard applet within the messaging application, the keyboard applet configured to receive keyboard input from the display; display the keyboard applet on the display in response to detecting the request to execute the keyboard applet, the keyboard applet including a search applet button; detect selection of the search applet button; receive search input data; perform a search of a server based on the search input data; generate media content based on the search input data; and display, on the display, the media content within the keyboard applet.
While the invention is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention is not to limit the scope of the subject matter covered in the drawings, rather, it is to facilitate understanding of the embodiments described. The invention is intended to cover all modifications, equivalents, and alternatives failing within the scope of the invention as defined by the appended claims.
DETAILED DESCRIPTIONAn example of person-to-person communication is a messaging communication between two separate personal computing communication apparatuses. Personal communication by text message typically requires execution of multiple communication apparatus applications should one user find it necessary to perform a search to identify or verify information relating to the message to be transferred. Execution of these applications generally requires that a user open a second application on a communication apparatus and perform a search, then return to the messaging application to integrate the search content into the message. These applications often require that the messaging application be placed into the background on the communication apparatus while the search application, often a web browser or stand-alone search application, performs a search on the user's search query.
The present disclosure features technology for integrating search functionality into person-to-person communication via a messaging application. In embodiments, the technology of the present disclosure performs an inline search, or compact search, within a messaging application. The inline search allows a user to remain within the messaging application, reducing both the demand on communication apparatus resources to perform the search as well as the time added to the overall performance of a search by the user. The inline search can be performed within a keyboard region of a display. The keyboard region is used both for inputting a query and displaying search results. The inline search can be performed either on a generic search platform, or can be performed on a specific search platform such as Google®, Bing®, The Weather Channel®, Yelp®, and so on.
Further, the inline search may be configured to display search results based on predetermined search queries. For example, when a user selects a search database such as The Weather Channel®, the inline search applet may automatically retrieve communication apparatus location information from hardware components of the communication apparatus, and transmit that communication apparatus location information to a private search server, or to The Weather Channel® search server directly. Upon receipt of the communication apparatus location data, the search server can send information which has been predetermined to be responsive to the user's inquiry. Where local weather information is not desired by the user, the search applet may accept text-based search input and execute a second search, returning relevant results.
In some instances, selection and transmission of specific search queries may result in compact search applications being returned to the communication apparatus (referred to herein as “search result applets”). In response to receiving search query information from a communication apparatus, a private search server or third-party search server may return a search result applet, which contains applet information to be executed, or may return search result information to be displayed within a search result applet running on the communication apparatus.
Consider the following example of a query in which a search applet's display is described for illustrative purposes. In accordance with various embodiments, in response to a user's query, a computing apparatus executes a messaging application, which in turn executes a keyboard applet that accepts input on the communication apparatus's touch-sensitive display.
Once the user begins to compose the message by inputting text into the messaging input field of the messaging application, the user may then determine that more information is needed to complete the message and that a search must be performed to complete the message. Upon determining that more information is needed, the user then selects a search applet button, which causes an inline search applet to be executed on the communication apparatus.
In response to execution of the inline search applet, a user interface is displayed within a subset or region of the communication apparatus's display, in which the applet displays an input field for inputting a query to the applet. Upon receipt of a query, the applet transmits the query to a private search server or public search server such as the Google® search engine or Bing® search engine.
The search applet receives query results from the search servers and organizes the query result data as a set of media elements to be displayed. The media elements are ordered in a predetermined order and displayed within the search applet region of the communication apparatus's display screen.
Upon review of the results displayed in the search applet, the user then selects the message input field, and the search applet display is replaced with the original keyboard applet. The user then integrates the information from the displayed search media elements into the message and transmits the message. During this process, the messaging applet remains on the display, the user does not have to switch to another application, and the communication apparatus does not have to load an entire application into memory for execution of the search query.
In other embodiments, the search applet of the present disclosure transmits a location query for a category of businesses to Google Maps® or Bing Maps®. The location query can include text input data related to the business being searched for, location data, time data, system data retrieved from the communication device, or any combination thereof. Upon receipt of the query, Google Maps® or Bing Maps®, for example, searches servers and identifies the location data associated with the query. Such location data may include a list of businesses related to the location query that are determined to be within a certain range of the communication apparatus. After identifying the location data, Google Maps® then returns a search result applet, which includes an executable application configured to display an interactive map and locations marked on the map associated with the query. Upon selection of the marked locations, the search result applet displays relevant location data, including, for example, business hours and contact information.
In other embodiments, when the user initially selects the search applet button, a list of search databases which may be queried is displayed. Once the search applet determines a target database based on user input, the search applet executes a default query. Upon receipt of the default query results, the search applet displays the results prior to user input of a specific query.
The technology of the present disclosure can be used for performing inline searches within applications that require user input via a keyboard applet. The technology can be embodied as circuitry, programmable circuitry configured to execute applications such as software, communication apparatus applications, or as a combined system of both circuitry and software configured to be executed on programmable circuitry. Embodiments may include a machine-readable medium storing a set of instructions which cause at least one processor to perform the described methods. Machine readable medium is generally defined as any storage medium which can be accessed by a machine to retrieve content or data. Examples of machine readable media include but are not limited to magneto-optical discs, read only memory (ROM), random access memory (RAM), erasable programmable read only memories (EPROMs), electronically erasable programmable read only memories (EEPROMs), solid state communication apparatuses (SSDs) or any other machine-readable device which is suitable for storing instructions to be executed by a machine such as a computer.
The terms “connected” or “in communication with” and related terms are used in an operational sense and are not to be limited to a direct physical connection. For example, two communication apparatuses may be coupled together via a wireless network or via a physical connection. Based on the disclosure provided herein, a person of ordinary skill in the art will appreciate a variety of ways in which communication apparatuses can be connected or in communication with one another.
The phrase “in embodiments” and variations on this phrase generally is understood to mean that the particular feature, structure, system, or method being described includes at least one iteration of the disclosed technology. Such phrase should not be read or interpreted to mean that the particular feature, structure, system, or method described is either the best or the only way in which the embodiment can be implemented. Rather, such a phrase should be read to mean an exemplary way in which the described technology could be implemented, but need not be the only way to do so.
Where the terms “may,” “could,” or other similar permissive terms are used, the elements or features following or preceding the permissive term are optional components, features, or steps which need not be included in the overall system or method being described.
The term “component” refers broadly to general or specific purpose hardware or combinations of specific purpose hardware which, when combined, achieve a desired functional result.
The term “server” is meant to refer to a computing communication apparatus which is configured to translate and store large quantities of data from multiple communication apparatuses. A server can also be configured to perform certain computing functions which may be described as explicitly occurring on a computing apparatus or a personal computing communication apparatus. Generally, the term “server” is used to describe a computing apparatus or device which provides a variety of computing services, and the term “database” is used to describe a computing apparatus or device which stores and recalls information. In embodiments, the server may include a database.
Network 100 may be capable of communicating using a variety of data formats for increased interoperability between communication apparatuses across a variety of data connections 102. The communication technologies used to facilitate communications between communication apparatuses of the present disclosure may include Ethernet, 802.11 (a/b/g/n/ac), 3G, 4G, CDMA, digital subscriber line (DSL), and the like, and permit the communication between a variety of communication apparatuses, which may be configured to transmit and receive data using a variety of protocols. Further, the communication technologies may implement certain protocols to facilitate the transfer of data across network 100 such as transmission control protocol/internet protocol (TCP/IP) or hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), and file transfer protocol (FTP), which allow for more uniform and efficient transfer of data between various communication apparatuses in the network 100.
Connections facilitated by the network 100 between Device A 110 and private search server 120, or between public search servers 130a-130n and private search server 120 may be referred to as functional connections 104a-104n. These functional connections 104a-104n describe data transmission pathways. As an example, data transmitted between communication apparatuses or between device A 110 and private search server 120 is, according to embodiments, routed through a network 100, which may include a series of intermediate communication apparatuses which translate the data. The transmission of this data is simplified and described as a functional connection 104a.
Private search server 120 may be any computing apparatus configured to receive, transmit, store, and analyze data. For example, private search server 120 may be configured to receive and analyze search queries and transmit query responses. In some embodiments, the private search server 120 is configured to accept text input from a querying communication apparatus 110 and transmit the query to a variety of public search servers 130a-130n for analysis. The query 112 is received via functional connection 104a and is transmitted through multiple functional connections 104b-104n. The private search server 120 may be calibrated to optimize data transfer through functional connections 104a-104n. Also, the private search server 120 may be configured to execute queries on the public search servers 130a-130n as well as store query results from prior queries.
In another embodiment, a private search server 120 may be configured to obtain multiple search or query results from multiple public search servers 130a-130n. The private search server 120 may be configured to organize the query results in a predetermined order and, if needed, truncate the query results prior to transmitting them to the querying communication apparatus 110.
The public search servers 130a-130n may be any type of computing apparatuses configured to receive queries, analyze the queries, and return query results. In some embodiments, one or more of the public search servers 130a-130n are connected via functional connections 104b-104n to a private search server and return query results based on the initial input received from communication apparatus or device A 110. Examples of private parties who host public search servers 130a-130n include the Google® Search Engine, Bing®, Yahoo®, as well as search servers which aggregate query data from among a plurality of search servers such as Dogpile®.
Communication apparatus A 110 may be an electronic communication apparatus which is capable of executing computing functions. Examples of these electronic communication apparatuses including mobile phones, desktop computers, thin client computing communication devices, laptop computers, virtualized computers, cluster or cloud computing environments, apparatuses incorporating application specific integrated circuits, or apparatuses incorporating field programmable gate arrays.
The data connections 102 may include a variety of connection techniques such as interconnection of digital communication apparatuses via wireless communication on the 802.11 standard (a/b/g/n/ac) (WiFi), Ethernet, 3G, 4G, CDMA, digital subscriber line (DSL), and the like. Further, data transmission over the data connections 102 may be implemented with TCIP/IP, HTTP, secure hypertext transfer protocol (HTTPS), SMTP, or FTP.
Other embodiments of the disclosed technology may include all or a portion of the components and features illustrated in
Alternatively, some embodiments may implement the functionality of the disclosed embodiments in different manners, such as by combining, reorganizing, or substituting components or modules. For example, in one embodiment, communication apparatus A 110, which initiates a query 112, includes at least the components of communication apparatus 200, as illustrated in
In some embodiments, a portion of the components and features of the communication apparatus 200 may be configured in such a way that they are simulated in virtualized environments, such as Microsoft®'s Azure® environment, Amazon®'s Web Services® (AWS®) or Google®'s Cloud Platform Service™.
Memory 202 may be any device, physical structure, and/or populated data structure which functions as a media storage device. In some embodiments, memory 202 may be computer memory which is volatile or non-volatile, e.g., computer memory which does not maintain its state when an electric current is no longer supplied to the computer memory. Memory 202 may be replaced with non-volatile memory, dynamic memory, or redundant memory. Memory 202 may include, for example, random access memory (RAM), memory storage devices, optical memory devices, medial magnetic media, floppy disks, magnetic tapes, disc hard drives, solid state hard drives, SDRAM, DDR RAM, erasable programmable read-only memories (EEPROMs), compact discs, DVDs, or any combination thereof. In accordance with some embodiments, memory 202 may be contained within one contiguous region of a physical device, may span across multiple regions on a physical device, or may span multiple memory devices such as virtual memory allocated within non-volatile memory 206.
Operating system 202a may provide a device environment which permits the initialization, execution, storage, and termination of one or more applications 202f-202n. Operating system 202a may be generally stored in non-volatile memory 206 and is initialized when power 214 is applied to the communication apparatus 200 via a regulator 212. The operating system 202a, once initialized, controls the initialization and execution of applications 202f-202n, and allocation of resources to applications such as an initial address space within memory 202, cycles to execute functions on the processor 210, and access pages 206a-206n stored in non-volatile memory 206.
Page tables 208 may accurately map the data locations stored within regions of the memory 202, sometimes referred to as pages, to the page location when stored in non-volatile memory 206a-206n. In some embodiments, page tables 208 are implemented to accurately store and retrieve data, swapping information between volatile memory and non-volatile memory regions within communication apparatus 200. Page tables 208 facilitate the transfer of pages 206a-206n from volatile memory, which, in turn, allow for the storage of application-specific data for use after the application has terminated or has been forced to stop.
Non-volatile memory may be any type of memory device which permits the extended storage of media. In some embodiments, non-volatile memory can be a solid state hard drive (SSD), disk drive, tape drive, compact disc, or virtual memory which is stored remotely. One skilled in the art will appreciate additional memory devices, storage techniques, and device configurations which can simulate or act as functional equivalents to the memory devices.
Communication apparatus applications, and in particular public and private messaging applications, are stored in memory 202 and retrieved for later execution on communication apparatus 200. In embodiments, processor 210 executes various applications and sub-applications or “applets” which include instruction sets stored in memory 202. In some embodiments, processors similar to processor 210 may be included in certain communication apparatus components such as I/O components. For example, one skilled in the art will appreciate that a communication apparatus display 220a may include a graphic processor (not shown) for executing certain graphical functions separate from the application's execution on the processor 210 of the communication apparatus 200.
Component controller 220 handles the I/O data collected from device components 222a-222e, such as cameras 222b, device displays 222a, device buttons 222c, microphones 222d, and speakers 222e. Device displays 222a can be either traditional displays or touch-sensitive displays. In some embodiments, where a touch-sensitive display 222a is implemented, the device controller 220 controls both the output of display information to either a display processor (not shown) or directly to the display 222a, as well as the input from the touch sensitive display 222a simultaneously, and transmits the input data in relation to the output data to a display module 202e for use by applications executed by the processor 210.
Component interface 250 may be any processor which implements a routing system between a variety of sub-components and controllers. In some embodiments, component interface 250 routes signals accepted from both an I/O controller 220 and a transceiver 216, which handles the transmission and reception of wireless signals.
Each applet is then given address space within the application's address space 302a-302n once the applet is executed within the application. The applet address space is structured similar to that of the application address space, reserving a region of memory for applet views 320a-320b, and applet event handlers 322a-322c.
In the current embodiment, the region 302 allocated by the operating system 202a to applications upon startup can be expanded as is necessary by requesting the operating system 202a allocate additional address space global memory 304. Likewise, application regions 302a-302n can be expanded as is necessary by sending a request to the operating system 202a. Applets can request additional applet memory 324 from their parent applications 302a-302n, which either deny the applet the additional memory, allocate additional memory from the applet's global memory 316, or request additional memory from the operating system 202a.
As a result of the preliminary search, the search input field displays within the search applet region 426 a series of media elements related to a search on the selected search database. As depicted, two media elements 708a, 708b are both displayed on the initial display. The display of the media elements 708a, 708b may be modifiable upon receipt of user input to the communication apparatus 200. As depicted in the embodiment of
At block 1205, user input data detected by a device display is recorded by the communication apparatus 110. Detection of communication apparatus display input may include detecting display 400 input within a predetermined region on a display. Each predetermined region corresponds to one or more keyboard buttons. Upon detection of the input, the communication apparatus determines if the input corresponds to a relevant input button, and, if so, records the data associated with the input button and checks for another input.
At block 1210, user selection of a search applet button is detected. This may include continuously detecting user input on a display 400 of a communication apparatus 110, and determining whether the detected input is located within a predetermined region of the display 400.
At block 1220, the communication apparatus executes a search applet, which may include, after detecting user selection of a search applet button 408, loading search applet instructions into the messaging application's predefined memory region designated for applets and executing the instructions on a processor of the communication apparatus 110.
At block 1230, the communication apparatus retrieves search input data. Retrieval of search input data may include retrieving user input from a search input field 420. The input retrieval process is a process 1210 which may include detecting communication apparatus input within a predetermined region on a communication apparatus 110. Each predetermined region may correspond to one or more keyboard buttons. Upon detection of the input, the communication apparatus determines if the input corresponds to a relevant input button, and, if so, records the data associated with the input button and checks for another input.
At block 1240, the communication apparatus executes a search on the retrieved search input data recorded as a result of executing process 1230. The search may include transmitting the stored search input data to a private search server, or, alternatively, to a designated search server, awaiting receipt of search results from the query executed on the search data, and, once the query search results are received, storing the results in communication apparatus memory for display by the search applet.
At block 1250, the communication apparatus displays the received search results. Displaying the received results may include displaying, on the display 400 within the search applet region 426 of the display 400, the results either in a predetermined manner or in a manner defined by the queried server.
At block 1302, the communication apparatus loads and executes a keyboard applet in the communication apparatus memory. Execution of the keyboard applet may include loading search applet instructions into the messaging application's predefined memory region designated for applets and executing the instructions on the processor of a communication apparatus 110.
At block 1304, the communication apparatus accepts input via the display 400. Accepting input via a display may include detecting input within a predetermined region on a display 400. The predetermined region may include sub-regions corresponding to one or more keyboard buttons. Upon detection of the input, the communication apparatus determines if the input corresponds to a relevant input button, and, if so, records the data associated with the input button and checks the communication apparatus display 400 for another input.
At block 1306, communication apparatus determines whether the user has selected the search applet button 408, which is displayed within a keyboard screen 412 of a messaging application on a display 400. The determination of whether the user has selected the search applet button 408 may include detecting user input within a predetermined region of the display 400. If user input is detected within a predetermined region of the display 400, process 1308 may be executed. Otherwise, if user input is not detected, process 1304 is executed.
At block 1308, the communication apparatus executes a search applet. The execution of the search applet may include, after detecting user selection of a search applet button 408, loading search applet instructions into the messaging application's predefined memory region designated for applets and executing the instructions on a processor of the communication apparatus 110. Execution of a search applet may also include initializing a search packet, which may include search input text, search database information, and communication apparatus 110 state information.
At block 1310, the search applet sets a default search database. The process by which the search applet sets a default search database may include, upon execution, setting search database information in a search packet to default database information.
At block 1312, the search applet determines whether a different database has been selected. Determination as to whether the user selected a different search database may include detecting user input within a predetermined region of the display 400. If user input is detected within a predetermined region of the display 400, the operation of block 1314 may be executed so that the default search database information set during process 1310 is replaced with information corresponding to the database associated with the currently detected user input. If no user input for selecting a different search database is detected, process 1316 is executed.
At block 1314, the search applet sets a selected search database as the target database. Selection of a search database may include detecting user input within a region on the display 400 of the communication apparatus 110. Upon detection of the user input, it is determined whether the input location is within a predetermined region on the display. If the input location is within a predetermined region on the display 400, the database information stored in the search data packet is set as the information corresponding with the location of the detected input.
At block 1316, the search applet accepts input from the device display 400. Acceptance of display input may include detecting communication apparatus input within an array of predetermined regions on a display 400. Each predetermined region corresponds to one or more keyboard buttons. Upon detection of the input, the communication apparatus determines if the input corresponds to a relevant input button, and, if so, records the data associated with the input button and checks the communication apparatus display 400 for another input.
At block 1318, the search applet executes a search upon receiving input from process 1316. Execution of a search may include transmitting a search packet to a search database or databases. The search packet may contain a search query, search database information, and communication apparatus 110 state information, if available. Upon transmission, communication apparatus 110 receives search result media, which is stored in memory 202 associated with the search applet for display on the display 400 of the communication apparatus 110 within the search applet region 426.
At block 1320, communication apparatus displays the results upon receiving the results from process 1318. Displaying results within the keyboard region of a communication apparatus may include displaying within the search applet region 426 of the display 400 the search result media either in a predetermined manner or in a manner defined by the queried server or servers.
At block 1410, the communication apparatus receives input via the device display. Reception of input may include detecting input within an array of predetermined regions on a display 400. Each predetermined region may correspond to one or more keyboard buttons. Upon detection of the input, the communication apparatus determines if the input corresponds to a relevant input button, and, if so, records the data associated with the input button and checks the communication apparatus display 400 for another input.
At block 1420, the communication apparatus transmits a query to at least one search database. Querying at least one search database may include transmitting a search packet to a search database via a functional connection 104a. The search packet may contain a search query, search database information, and communication apparatus 110 state information, if available.
At block 1430, the search database transfers the relevant query information received from process 1420 to one or more public search databases. Transferring the query to a public search database may include transferring the search query to one or more public search servers 130a-130n to execute a search in relation to the query via functional connections 104b-104n. Process 1430 may further include transferring additional information to one or more public search databases. The additional information may include communication apparatus 110 state information, which may further include communication apparatus location information or user data.
At block 1440, the search server receives results relating to the search query. Receiving search results may include receiving results from one or more queried public search servers 130a-130n via functional connections 104b-104n, and storing the search results within memory 202 or non-volatile memory 206 on a private search server 120.
At block 1450, the private search server determines whether enough results have been received to transmit a successful search query result. The determination as to whether enough search results have been received, for example, to satisfy a minimum search result condition may include executing an instruction on the private search server 120 to compare the total amount of results received with a predetermined minimum amount of results necessary for a search result. In determining whether the result condition is met, the determination may further include determining the difference between the time the query is transmitted and the time the determination of process 1450 is made. A private search server may reduce the amount of results or return to the communication apparatus an indication that results could not be obtained if the difference exceeds a predetermined threshold.
At block 1455, private search server transfers the search results to the querying communication apparatus. Transfer of a search result set to a communication apparatus 110 may include aggregating the search results stored on a private search server 120, identifying the most relevant search results based on predefined result quality criteria, truncating the results where the results exceed a predetermined result limit, and transmitting the results to the initial querying communication apparatus 110 via a functional connection 104a. The process of transferring a search result set to a communication apparatus 1455 may further include converting the search result elements of the search results into a format optimized for display within the search applet region 426 of a display 400 of a communication apparatus 110.
At block 1460, communication apparatus displays the results of the search query within the search applet keyboard region 426 of the display 400. The search result media elements may be displayed in a predetermined manner or in a manner defined by the queried servers within the search applet keyboard region 426. Where the search result media elements are search result applets, upon detection of user input located within a region of the display corresponding to the search result applet, the search result applet is executed and the response is displayed in the search applet keyboard region 426 of the display 400.
At block 1470, the communication apparatus determines whether the user has selected the message input field 406 after displaying the results from process 1460. Determining whether the user has selected the message input field 406 associated with the messaging application may include detecting user input on the display 400, and continuously determining whether the input location corresponds to the location of the message input field 406 is displayed on the display 400. If user input is detected, but the user input is not determined to be in a location corresponding to the location of the message input field 406, then process 1480 is executed; otherwise, process 1400 terminates.
At block 1480, the communication apparatus determines whether user input for the search applet has been detected. This may include executing process 1460 of displaying search results on the display if no input is detected; otherwise, process 1410 of retrieving input data is executed.
At block 1510, the communication apparatus receives search results. Reception of search results may include receiving a packet of search results from a private search server 120 or receiving a plurality of search results from one or more public search servers 130a-130n.
At block 1520, the communication apparatus determines whether the search results are part of a predefined search query. This may include identifying whether the transmitted search query is a predefined search query. One example of a predefined search query is the transmission of location data and a weather search tag to a private search server 120 or public search servers 130a-130n. Upon receipt of the weather search tag, private search server 120 or public search servers 130a-130n identify the relevant search response data and returns the data.
At block 1530, the communication apparatus displays the results in a predefined manner. This may be performed by parsing the retrieved search response data received from process 1520, and generating a media element to be displayed. The media element may correspond to the search response data and be represented in a format consistent with a predefined format.
At block 1540, the communication apparatus displays results within the keyboard region of the display 400. The results may be displayed within the search applet region 426 of the display 400 in a predetermined manner or in a manner defined by the queried server or servers. Where the search result media elements are search result applets, upon detection of user input located within a region of the display corresponding to the search result applet, the search result applet is executed and the response is displayed in the search applet region 426 of the display 400.
At block 1550, the process of determining an appropriate predetermined order for displaying the search result data may include defining a predetermined order as an order defined by a private search server 120, public search server 130a-130n, or by defining a set of conditions which, when applied to the search result data, orders the search result data in a predetermined order.
At block 1560, the communication apparatus sorts the received results. Sorting of the results based on the predetermined order may include comparing the search result media elements to the predetermined order defined by process 1550 and reorganizing the results in an order consistent with the predetermined order.
At block 1570, the communication apparatus determines whether the results from process 1560 are too large, e.g., there are more results than can be displayed on the display 400, and need to be truncated. This determination may include determining a total quantity of search result media elements within the search result data and comparing the quantity of search result media elements to a predefined threshold of search result media elements which can be displayed on the display 400.
At block 1580, the communication apparatus truncates the search results, if necessary. Truncating the search results may include, after ordering the search result media elements, discarding the search result media elements which are in excess of a predefined limit of media elements which can be displayed on the display 400.
At block 1610, the communication apparatus displays results on the display 400 within the keyboard region. Displaying results within the keyboard region of a communication apparatus display 400 may include displaying within the search applet region 426 of the display 400 the search result media elements in a predetermined manner or in a manner defined by the queried server or servers. Where the search result media elements are search result applets, upon detection of user input within the search result applet, the communication apparatus executes the search result applet and displays the response in the search applet region 426 of the display 400.
At block 1620, the communication apparatus determines whether input has been detected. This determination may include continuously detecting a display 400 for user input, and, if input is detected, executing determination 1630; otherwise, process 1610 is executed.
At block 1630, the communication apparatus determines whether a result element has been selected. The determination of whether a result element is selected can include determining whether input is detected on the screen in a location corresponding with the location of a displayed search result media element. Where the location of the user input corresponds with the location of the search result media element, the communication apparatus executes determination 1640; otherwise, the communication apparatus executes process 1610.
At block 1640, the communication apparatus determines whether a share function has been selected on the display. Determining whether a user has selected a share function may include determining whether a second input has been detected on the display 400, and, if so, determining whether the second input location corresponds with a share button displayed on the display 400 within the search applet region 426.
At block 1650, communication apparatus determines whether a copy function has been selected. Determining whether a copy function has been selected may include determining whether a second input has been detected on the display 400, and, if a second input has been detected, determining whether the second input location corresponds with a copy button displayed on the display 400.
It will become apparent to one skilled in the art that the process of determining whether a copy request or share request has been detected can be achieved by equivalent processes, and that process 1640 and process 1650 should not be seen as limiting.
At block 1660, the communication apparatus executes a share function. Execution of a share function based upon user input may include requesting an application to receive the search result media element, and transmitting the search result media element to the application for subsequent transmission from the communication apparatus to at least a second communication apparatus based on received destination information including a second communication apparatus address.
At block 1670, communication apparatus executes a copy function and transfers the copied data to a clipboard. The process of block 1670 may include identifying a search result media element to be transferred to a region in memory 202 which can be shared with multiple applications, and transferring the search result media element. The process of executing a copy function 1670 may further include overwriting the data stored in the region in memory shared with multiple applications or deleting the data stored in the region in memory prior to transmission of the search result media element.
The technology of the present disclosure provides novel systems, methods, and arrangements for the transmission and delivery of search queries from within a messaging application. Though detailed descriptions of one or more embodiments of the disclosed technology have been detailed above, various alternatives, modifications, and equivalents will be apparent to those of ordinary skill in the art without varying or departing from the spirit of the invention. For example, while the embodiments described above refer to particular features, components, or combinations thereof, such features components, and combinations may be substituted with functionally equivalent substitutes which may or may not contain the elements as originally described or arranged.
Claims
1. A method of displaying data within a keyboard region of a display of a communication apparatus, the method comprising:
- displaying, on the display, a messaging screen of a messaging application;
- detecting a request to execute a keyboard applet within the messaging application;
- in response to detecting the request to execute the keyboard applet, displaying a keyboard screen on the display of the communication apparatus;
- displaying a search applet button;
- detecting selection of the search applet button;
- in response to detecting selection of the search applet button, executing a search applet, which displays a search input field configured to receive search input data;
- receiving search input data entered into the search input field;
- performing a search of a server based on the search input data;
- receiving media content based on the results of the search of the server; and
- displaying, on the display, the media content within at least a portion of the keyboard region of the display.
2. The method of claim 1, wherein the search input field is displayed adjacent to a message input field of the messaging application.
3. The method of claim 2, wherein the search input field is displayed between the message input field and the keyboard region.
4. The method of claim 1, wherein detecting the request to execute the keyboard applet includes detecting contact at a predetermined region of the messaging screen.
5. The method of claim 4, wherein the predetermined region of the messaging screen is a message input field of the messaging application.
6. The method of claim 1, wherein the search input data is a series of characters, an image, or an audio file.
7. The method of claim 1, wherein the media content is displayed in a predetermined order based on the search input data.
8. The method of claim 7, wherein a subset of the media content is output to the keyboard applet to be displayed on the display.
9. The method of claim 8, further comprising:
- transferring the media content to a search result applet, the search result applet including an executable application configured to display the media content in a predetermined manner.
10. The method of claim 1, further comprising detecting selection of a search database from a plurality of search databases prior to receiving a series of characters, an image, or an audio file.
11. The method of claim 1, further comprising:
- detecting contact on the display in the keyboard region as a selection of at least a portion of the displayed media content;
- detecting a request to forward the at least the portion of the displayed media content to another communication apparatus; and
- transmitting the at least the portion of the media content to the another communication apparatus via the messaging application.
12. The method of claim 1, further comprising:
- displaying, in the keyboard region on the display, a share button;
- detecting a request to share media content, the request including identifying the media content to be shared;
- receiving destination information; and
- transferring the media content to a destination address corresponding to the destination information.
13. The method of claim 1, wherein performing a search of a server based on the input data includes:
- detecting a first non-input data set, the first non-input data set including any combination of a communication apparatus location data, a communication apparatus state data, and a second search input data; and
- identifying media content based on the first input data and the first non-input data.
14. A non-transitory computer-readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a processor of an electronic communication apparatus having a display, cause the electronic communication apparatus to:
- display, on the display, a messaging screen of a messaging application;
- detect a request to execute a keyboard applet within the messaging application;
- in response to detecting the request to execute the keyboard applet, display a keyboard screen on the display of a communication apparatus;
- display a search applet button;
- detect selection of the search applet button;
- in response to detecting selection of the search applet button, execute a search applet, which displays a search input field configured to receive search input data;
- receive search input data entered into the search input field;
- perform a search of a server based on the input data;
- receive media content based on the results of the search of the server; and
- display, on the display, the media content within at least a portion of a keyboard region of the display.
15. The non-transitory computer-readable storage medium of claim 14, wherein the search input data includes text data from keyboard input, secondary search data, or the text data from the keyboard input and the secondary search data.
16. The non-transitory computer-readable storage medium of claim 15, wherein the secondary search data includes communication apparatus state data, location data, time data, system data, or any combination thereof.
17. The non-transitory computer-readable storage medium of claim 14, wherein the search input field is displayed adjacent to a message input field of the messaging application.
18. An electronic communication apparatus, comprising:
- a display;
- a processor coupled to the display; and
- a memory coupled to the processor, the memory having stored thereon instructions which, when executed by the processor, cause the processor to: display, on the display, a messaging screen of a messaging application, the messaging application configured to transmit and receive messages; detect a request to execute a keyboard applet within the messaging application, the keyboard applet configured to receive keyboard input from the display; display the keyboard applet on the display in response to detecting the request to execute the keyboard applet, the keyboard applet including a search applet button; detect selection of the search applet button; receive search input data; perform a search of a server based on the search input data; generate media content based on the search input data; and display, on the display, the media content within the keyboard applet.
19. The electronic communication apparatus of claim 18, wherein the search input data includes text data from the keyboard input, secondary search data, or the text data from the keyboard input and the secondary search data.
20. The electronic communication apparatus of claim 19, wherein the secondary search data includes communication apparatus state data, location data, time data, system data, or any combination thereof.
Type: Application
Filed: Jan 5, 2017
Publication Date: Aug 3, 2017
Inventor: William McMichael (New York, NY)
Application Number: 15/399,386