Title of Invention | AN APPARATUS FOR HANDLING USER INPUT |
---|---|
Abstract | An apparatus for handling user input comprising an input window configured to receive the user input, the user input comprising text or drawing, the input window providing feedback for data being entered by the user, an input window monitor coupled to the input window and configured to monitor input received in the input window, a secondary application executor coupled to the input window monitor and configured to run a set of one or more secondary applications using the input, a secondary application priority rating calculator coupled to the secondary application executor and configured to calculate a priority rating for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to a corresponding application and an output displayer coupled to the secondary application priority rating calculator and configured to facilitate displaying a plurality of secondary applications ordered in a list by the priority rating. |
Full Text | The present invention relates to an apparatus for handling user input. FIELD OF THE INVENTION [0001] The present invention relates to the field of software used on mobile devices. More particularly, the present invention relates to the handling of inputs to the mobile devices. BACKGROUND OF THE INVENTION [0002] Mobile devices, such as cellular phones and personal digital assistants (PDAs) have been growing in popularity for many years, As they have grown in complexity, the number of functions they are capable of running has also increased. Cellular phones are no longer limited to merely dialing and receiving phone numbers. Address books, calculators, memo pads, and email capabilities are only a few of the functions being implemented on mobile devices. A problem, however, occurs when attempting to input information to these various functions.. [0003] People tend to think of information in terms of words, ideas, and pictures, but current operating systems work in terms of programs. A user must first select an authoring program (Word, Excel, address book, calculator, etc.) before entering the data. This is inconvenience because it implies that the user has decided how to use the information being recorded before it is actually recorded. If, the information is later repurposed, it must be cut-and-pasted into a different program or function, [0004] In the casual, mobile environment, cutting-and-pasting is very inconvenient. As a result, people continue to use old fashioned mechanisms to quickly scribble down ideas, such as Post It notes and scrap paper. Even on personal digital assistants, the memo pad requires that the user open a new memo, enter the data, and then cut-and-paste the data to where it should go. This is a slow, awkward, and unintuitive process, and therefore it is seldom used. [0005] What is needed is a solution which allows an individual to enter a thought and then choose what he wants to do with it with a minimum of interaction. BRIEF DESCRIPTION OF THE INVENTION [0006] The present invention utilizes input handling to provide enter-then-act capability for user inputs. User inputs are received, and a set of one or more secondary applications are executed using the input. A priority rating may then be calculated for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to a corresponding application. BRIEF DESCRIPTION OF THE DRAWINGS [0007] The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more embodiments of the present invention and, together with the detailed description, serve to explain the principles and implementations of the invention. [0008] In the drawings: FIG. 1 is a diagram illustrating an example table of user inputs and accompanying responses by secondary applications in accordance with a specific embodiment of the present invention. FIG. 2 is a diagram illustrating a typical smart phone. FIG. 3 is a diagram illustrating a screen shot showing an example of a smart phone display in accordance with a specific embodiment of the present invention. FIG. 4 is a diagram illustrating a screen shot showing another example of a smart phone display in accordance with a specific embodiment of the present invention. FIG. 5 is a flow diagram illustrating a method for handling user input in accordance with a specific embodiment of the present invention. FIG. 6 is a flow diagram illustrating a method for handling user input to a limited display device in accordance with a specific embodiment of the present invention. FIG. 7 is a block diagram illustrating an apparatus for handling user input in accordance with a specific embodiment of the present invention. FIG. 8 is a block diagram illustrating an apparatus for handling user input to a limited display device in accordance with a specific embodiment of the present invention. [0009] Embodiments of the present invention are described herein in the context of a system of computers, servers, and software. Those of ordinary skill in the art will realize that the following detailed description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of this disclosure. Reference will now be made in detail to implementations of the present invention as illustrated in the accompanying drawings. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts. [0010] In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will, of course, be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made in order to achieve the developer's specific goals, such as compliance with application- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the ait having the benefit of this disclosure. [0011] In accordance with the present invention, the components, process steps, and/or data structures may be implemented using various types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein. [0012] The present invention utilizes input handling to provide enter-then-act capability for user inputs. A input portion, called an Input Window, may be used to allow a user to directly input text or draw, in the same way a person would print text or draw on a piece of paper. The input window may provide feedback that data is being entered, such as displaying characters on the display. This allows the user to have the same ease of data entry as in a word processor. .* [0013] A set of secondary applications may monitor this data entry process. These targeted applications "listen" to the events generated by the end user (character input and text editing events, for example) and optionally retrieve the data modeled by the input window. Each secondary application may compute an output as if the user were entering data directly into it. Each secondary application may then produce a quantitative priority rating that may be used to determine how pertinent the input was to the application. The secondary application with the highest priority may be displayed automatically, in a second output window, or the user may select one or more secondary applications (perhaps ordered in a list by priority rating). Alternatively, the user may be provided with information as to the secondary application with the highest priority rating and asked to confirm that it should be selected. [0014] For example, the user may start with an empty input window, and secondary applications such as a contact manager, calculator, and stock quotes. One of ordinary skill in the art will recognize that a large number of possible secondary applications can be utilized that sort or filter database based on the input window, or form a computation based on data in the input window. FIG. 1 is a diagram illustrating an example table of user inputs .and accompanying responses by secondary applications in accordance with a specific embodiment of the present invention. The input window 100 is provided to allow a user to enter input information. A contact manager 102 may be an address book or similar personal data compilation program. A calculator 104 may be used to perform mathematical calculations. A stock quote program 106 may indicate stock price information upon receiving a stock symbol. Finally, a secondary output window 108 may provide the output of whatever secondary application the user elects to run (or the one with the highest priority rating, if the user chooses to have no intervention in that decision). [0015] First a user types an "S" 110 into the input window 100. The contact manager 102 executes using the input S, and returns a location in the contact list. Namely, the list of names that begin with S along with surrounding names if space permits 112. Since the address book was successful in utilizing the input without requiring additional user input, it assigns a priority rating of 100 in location 114 (which, in this example, is the highest rating). The calculator 104, on the other hand, attempts to run using trie input "S" but cannot produce any result since it is not numerical data. Thus, it returns a priority rating of 0 in location 116. The stock quote program 106 executes using the input S, but cannot determine what stock is being identified. There are many choices of stock symbols beginning with the letter S and none that is precisely the letter S. Thus, for example, there may be three possible choices 118. This requires additional user intervention, although the program was able to execute using the symbol and at least narrow the choices. Therefore, it assigns a priority rating of 50 in location 120. [0016] Now, it can be determined that the address book has the highest priority rating at this point, and therefore a prompt may be provided to the user which indicates such and asks whether he agrees that the address book is the program to use. Alternatively, however, the software can simply assume he wants the secondary application with the highest priority rating and use that to produce the output. For simplicity, for the rest of this example, it will be assumed that the user desires no intervention and allows the software to determine the most appropriate program on its own. Therefore, in the secondary output window 120, the choice of application 122 is the contact manager, and the output is the output of the contact manager 124. [0017] Next a user may type "W"126 into the input window 100. This results in a combined input of "SW" 128. The address book 102 may attempt to execute using this input, but it finds no contact beginning with "SW". Therefore, it returns a priority rating of 0. The calculator, once again, cannot perform any computations because there is no numerical input. Thus, it also returns a priority rating of 0. The stock quote program 106, on the other hand, is able to locate a single stock ("Sierra Wireless") that has a stock symbol beginning with SW. Thus, it returns a priority rating of 100. The secondary output window 120 then displays the output of the choice of application 130 as stock quote program, displaying the accompanying stock price information. [0018] Next a user may type the [0019] With an empty input window, the user may now choose to enter numerical data. A "1" 132 may be typed into the input window 100. The contact manager 102, requiring alphabetical symbols only, is not able to execute using this input, and thus returns a priority rating of 0. The calculator 104, on the other hand, is able to execute using this input. The calculator indicates that 1=1 and assigns a priority rating of 100. The stock quote program 106, like the contact manager 102, is unable to execute using numerical inputs, thus returning a priority rating of 0. Since the calculator has the highest priority rating, its results are displayed in the secondary output window. This continues as a "V, another "1", a [0020] Functionally, therefore, its as if the user were simultaneously typing into the input window and each secondary application simultaneously. Each secondary application may further provide its own menu of options that defines how the computed output may be used. For each displayed output, the corresponding menu of operations is displayed. As an example, the menu shown for the input window may contain the following items, which are appropriate optinos for a simple line of text input: Send as: email message instant message text message (SMS) Save as: calender item contact info task note Add to: Gift Ideas (or other memo) Shopping List (or other itemized list) Expense Account (or other database) [0021] The contact manager menu may contain the following items: Phone: Work Home Mobile Contact Via: Instant Message Text Message Schedule: Calender Item Tasks [0022] The Stock quote application may provide options such as: Lookup: Stock Price Stock Graph Recent News Financial Reports Add to: Personal Portfolio Club Portfolio Tech Portfolio Alert List Cancel Alerts Remove from portfolios [0023] Furthermore, a smart phone, for example, may provide two menu selections under its screen for use with Wireless Application Protocol (WAP) applications. FIG. 2 is a diagram illustrating a typical smart phone. A button labeled "Programs" 200 and a button labeled "Contacts" 202 may be provided. These buttons labels, however, can be modified by the software to display any labels, thus mapping the corresponding buttons 204,206 to the new labels. In a specific embodiment of the present invention, the system may display the input window on part of a smart phone screen, and map its menu to one of the menu buttons under the phone. It may then map the menu of the currently selected secondary application to the other menu button under the screen. FIG. 3 is a diagram illustrating a screen shot showing an example of a smart phone display in accordance with a specific embodiment of the present invention. If the letter "A" 300 is typed into a notepad, it may be determined that the contact manager has the highest priority rating. Thus, the contacts window may be displayed in the secondary output window 302, and the button label 304 may be changed to "Contacts". Selecting the button corresponding to "Notepad" results in menu options for the notepad appearing on the screen, whereas selecting the button corresponding to "contacts" results in the menu options for the contact manager appearing on the screen. [0024] FIG. 4 is a diagram illustrating a screen shot showing another example of a smart phone display in accordance with a specific embodiment of the present invention. If the characters "1+1 [0025] Referring back to FIG. 3, in accordance with a specific embodiment of the present invention, a contact's current time reference 306 may be displayed. This is accomplished for the contacts that have dialing codes that are limited to a single time zone. For instance, if the contact's service area is "604", the smart phone may display the current time in the 604 area code in the contact's display. If the contact has a non-North American country code (such as UK +44), the time could be adjusted accordingly. Either the day of the week or date could be used to show dateline crossings. [0026] FIG. 5 is a flow diagram illustrating a method for handling user input in accordance with a specific embodiment of the present invention. At 500, input is received in an input window. This may be, for example, a notepad application. At 502, a set of one or more secondary applications is run using the input. At 504, a priority rating is calculated for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to the corresponding application. The priority rating may be set at a high rating if the corresponding secondary application ran successfully with the input and does not require additional user intervention. The priority rating may be set to a medium rating if the corresponding secondary application ran successfully with the input but requires additional user intervention. The priority rating may be set to a low rating if the corresponding secondary application did not run successfully with the input At 506, output from the secondary application having the highest priority rating may be displayed in a secondary output window. Alternatively, at 508 the user may be provided with information as to the application with the highest priority rating and at 510, the output from the secondary application having the highest priority rating may be displayed in a secondary output window if the user agrees. [0027] FIG. 6 is a flow diagram illustrating a method for handling user input to a limited display device in accordance with a specific embodiment of the present invention. At 600, input is received in an input window through controls on the limited display device. The input window may be, for example, a notepad application, and the controls may be, for example, a stylus, a scroll wheel, a navigation bar, or a navigation pad. At 602, a set of one or more secondary applications is run using the input. At 604, a priority rating is calculated for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to the corresponding application. The priority rating may be set at a high rating if the corresponding secondary application ran successfully with the input and does not require additional user intervention. The priority rating may be set to a medium rating if the corresponding secondary application ran successfully with the input but requires additional user intervention. The priority rating may be set to a low rating if the corresponding secondary application did not run successfully with the input. At 606, output from the secondary application having the highest priority rating may be displayed in a secondary output window. Alternatively, at 608 the user may be provided with information as to the application with the highest priority rating and at 610, the output from the secondary application having the highest priority rating may be displayed in a secondary output window if the user agrees. [0028] At 612, a button on the limited display device may be mapped to menu options of the secondary application having the highest priority rating. At 614, a label for the button may be modified to match a name of the secondary application. At 616, if the secondary application is a contact manager, the current time and date in a geographic location indicated by information in a record of a selected contact may be displayed. This may be determined by utilizing the current time in the user's location and modifying the time ahead or behind according to a mapping of area code information to time zone. [0029] FIG. 7 is a block diagram illustrating an apparatus for handling user input in accordance with a specific embodiment of the present invention. An input window monitor 700 may monitor input received in an input window. The input window may be, for example, a notepad application. A secondary application executor 702 coupled to the input window monitor 700 may run a set of one or more secondary applications using the input. A secondary application priority rating calculator 704 coupled to the secondary application executor 702 may calculate priority rating for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to the corresponding application. The priority rating may be set at a high rating if the corresponding secondary application ran successfully with the input and does not require additional user intervention. The priority rating may be set to a medium rating if the corresponding secondary application ran successfully with the input but requires additional user intervention. The priority rating may be set to a low rating if the corresponding secondary application did not run successfully with the input. A highest priority secondary application output displayer 706 coupled to the secondary application priority rating calculator 704 may display output from the secondary application having the highest priority rating in a secondary output window. Alternatively, a user information secondary application priority rating provider 708 coupled to the secondary application priority rating calculator 704 may provide the user with information as to the application with the highest priority rating. Then a user selected secondary application output displayer 710 coupled to the user information secondary application priority rating provider 708 may display the output from the secondary application having the highest priority rating in a secondary output window if the user agrees. [0030] FIG. 8 is a block diagram illustrating an apparatus for handling user input to a limited display device in accordance with a specific embodiment of the present invention. A limited display device input window monitor 800 may monitor input received in an input window through controls on the limited display device. The input window may be, for example, a notepad application, and the controls may be, for example, a stylus, a scroll wheel, a navigation bar, or a navigation pad. A secondary application executor 802 coupled to the limited display device input window monitor 800 may run a set of one or more secondary applications using the input. A secondary application priority rating calculator 804 coupled to the secondary application executor 802 may calculate a priority rating for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to the corresponding application. The priority rating may be set at a high rating if the corresponding secondary application ran successfully with the input and does not require additional user intervention. The priority rating may be set to a medium rating if the corresponding secondary application ran successfully with the input but requires additional user intervention. The priority rating may be set to a low rating if the corresponding secondary application did not run successfully with the input. A highest priority secondary application output displayer 806 coupled to the secondary application priority rating calculator 804 may display output from the secondary application having the highest priority rating in a secondary output window. Alternatively, a user information secondary application priority rating provider 808 coupled to the secondary application priority rating calculator 804 may provide the user with information as to the application with the highest priority rating. A user selected secondary application output displayer 810 coupled to the user information secondary application priority rating provider 808 may then display the output from the secondary application having the highest priority rating in a secondary output window if the user agrees. [0031] A secondary application menu option button mapper 812 coupled to the secondary application priority rating calculator 804 may map a button on the limited display device to menu options of the secondary application having the highest priority rating. A button label modifier 814 coupled to said secondary application menu option button mapper 812 may modify a label for the button to match a name of the secondary application. If the secondary application is a.contact manager, a contact current time and date displayer 816 coupled to the secondary application priority rating calculator 804 may display the current time and date in a geographic locations indicated by information in a record of a selected contact. This may be determined by utilizing the current time in the user's location and modifying the time ahead or behind according to a mapping of area code information to time zone. [0032] One of ordinary skill in the art would recognize that many different secondary applications could be defined, including but not limited to matches for news, weather, sporting scores, customer relationship manager (CRM) or enterprise resource planning (ERP) data views, white pages, yellow pages, and many other mobile application ideas. One of ordinary skill in the art would also recognize that both the input window and secondary applications could display data in any representation suitable for the media on which they operate, including but not limited to prose, mathematical formulations, lists, images, maps, charts, sound, video, or some combination of the above. [0033] While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art having the benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims. We Claim: 1. An apparatus for handling user input comprising: an input window configured to receive the user input, the user input comprising text or drawing, the input window providing feedback for data being entered by the user; an input window monitor coupled to the input window and configured to monitor input received in the input window; a secondary application executor coupled to the input window monitor and configured to run a set of one or more secondary applications using the input; a secondary application priority rating calculator coupled to the secondary application executor and configured to calculate a priority rating for each of the one or more secondary applications in the set, the priority rating indicating how pertinent the input was to a corresponding application; and an output displayer coupled to the secondary application priority rating calculator and configured to facilitate displaying a plurality of secondary applications ordered in a list by the priority rating. 2. The apparatus as claimed in claim 1, wherein it comprises: a secondary output window; and a highest priority secondary application output displayer coupled to the secondary application priority rating calculator and configured to display in the secondary output window, output from the secondary application having the highest priority rating. 3. The apparatus as claimed in claim 1, wherein it comprises a user information secondary application priority rating provider fcoupled to the secondary application priority rating calculator and configured to provide the user with information as to the application with the highest priority rating. 4. The apparatus as claimed in claim 3, wherein it comprises: a secondary output window; and a user selected secondary application output displayer coupled to the user information secondary application priority rating provider and configured to, if the user agrees,, display in the secondary output window, the output from the secondary application having the highest priority rating. 5. The apparatus as claimed in claim 1, wherein it comprises: a display; and a secondary application menu option button mapper coupled to the a secondary application priority rating calculator and configured to map a button on the display to menu options of the secondary application having the highest priority rating. 6. The apparatus as claimed in claim 5, wherein it comprises a button label modifier coupled to the secondary application menu option button mapper and configured to modify a label for the button to match a name of the secondary application. 7. The apparatus as claimed in claim 1, wherein it comprises a contact current time and date displayer coupled to the secondary application priority rating calculator and configured to display the current date and time in geographic locations indicated by information in a record of a selected contact. 8. The apparatus as claimed in claim 7, wherein the apparatus is configured to determine the current time and date by utilizing the current time in the user's location and modifying the time ahead or behind according to a mapping of area code information to time zone. 9. The apparatus of claim 1, wherein the apparatus comprises a smart phone. |
---|
4042-DELNP-2004-Abstract (21-01-2009).pdf
4042-DELNP-2004-Abstract-(22-08-2008).pdf
4042-DELNP-2004-Claims (21-01-2009).pdf
4042-DELNP-2004-Claims-(22-08-2008).pdf
4042-delnp-2004-complete specification (granted).pdf
4042-DELNP-2004-Correspondence-Others-(22-08-2008).pdf
4042-DELNP-2004-Correspondence-Others-(29-08-2008).pdf
4042-delnp-2004-correspondence-others.pdf
4042-delnp-2004-description (complete)-21-01-2009.pdf
4042-delnp-2004-description (complete)-22-08-2008.pdf
4042-delnp-2004-description (complete).pdf
4042-DELNP-2004-Drawings-(22-08-2008).pdf
4042-DELNP-2004-Form-1-(21-01-2009).pdf
4042-DELNP-2004-Form-1-(22-08-2008).pdf
4042-DELNP-2004-Form-2-(21-01-2009).pdf
4042-DELNP-2004-Form-2-(22-08-2008).pdf
4042-DELNP-2004-Form-3-(22-08-2008).pdf
4042-DELNP-2004-GPA-(22-08-2008).pdf
4042-DELNP-2004-Others-Document-(29-08-2008).pdf
4042-DELNP-2004-Petition-137-(22-08-2008).pdf
4042-DELNP-2004-Petition-138-(22-08-2008).pdf
4042-delnp-2004-petition-138.pdf
Patent Number | 231708 | ||||||||
---|---|---|---|---|---|---|---|---|---|
Indian Patent Application Number | 4042/DELNP/2004 | ||||||||
PG Journal Number | 13/2009 | ||||||||
Publication Date | 27-Mar-2009 | ||||||||
Grant Date | 09-Mar-2009 | ||||||||
Date of Filing | 17-Dec-2004 | ||||||||
Name of Patentee | SIERRA WIRELESS,INC | ||||||||
Applicant Address | 13811 WIRELESS WAY, RICHMOND, BRITISH COLUMBIA V6V 3A4 CANADA | ||||||||
Inventors:
|
|||||||||
PCT International Classification Number | G06F 9/44 | ||||||||
PCT International Application Number | PCT/CA03/00825 | ||||||||
PCT International Filing date | 2003-06-09 | ||||||||
PCT Conventions:
|