An electronic device detects an input via an input device. In response to detecting the input, the device monitors the input using a gesture recognizer. The gesture recognizer includes a plurality of component gesture recognizers that define requirements for recognition of a gesture. A first component gesture recognizer from the plurality of component gesture recognizers defines a first requirement for recognition of the gesture, and a second component gesture recognizer from the plurality of component gesture recognizers defines a second requirement for recognition of the gesture. In accordance with a determination that the input satisfies first gesture recognition criteria that include the first requirement of the first component gesture recognizer and the second requirement of the second component gesture recognizer, the device recognizes a first gesture using the gesture recognizer.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, comprising: at an electronic device with an input device: detecting an input via the input device; in response to detecting the input, monitoring the input using a gesture recognizer, wherein the gesture recognizer includes a plurality of component gesture recognizers that define requirements for recognition of a gesture, wherein a first component gesture recognizer from the plurality of component gesture recognizers defines a first requirement for recognition of the gesture, and a second component gesture recognizer from the plurality of component gesture recognizers defines a second requirement for recognition of the gesture; and in accordance with a determination that the input satisfies first gesture recognition criteria that include the first requirement of the first component gesture recognizer and the second requirement of the second component gesture recognizer, recognizing a first gesture using the gesture recognizer.
2. The method of claim 1 , wherein: the first component gesture recognizer has a current state of a plurality of available states; and the second component gesture recognizer has a current state of the plurality of available states.
3. The method of claim 2 , including determining a current state of the gesture recognizer based on the current state of the first component gesture recognizer and the current state of the second component gesture recognizer.
4. The method of claim 2 , wherein monitoring the input using the gesture recognizer includes: receiving, at the gesture recognizer, first information that describes the input at a first point in time; processing the first information using the first component gesture recognizer to determine a current state of the first component gesture recognizer, of the plurality of available states, for the first point in time; processing the first information using the second component gesture recognizer to determine a current state of the second component gesture recognizer, of the plurality of available states, for the first point in time; receiving, at the gesture recognizer, second information that describes a change in the input at a second point in time later than the first point in time; processing the second information using the first component gesture recognizer to determine a current state of the first component gesture recognizer, of the plurality of available states, for the second point in time; and processing the second information using the second component gesture recognizer to determine a current state of the second component gesture recognizer, of the plurality of available states, for the second point in time.
5. The method of claim 1 , wherein one or more component gesture recognizers in the gesture recognizer include one or more parameters that describe the input; and monitoring the input using the gesture recognizer includes determining values of the one or more parameters using the one or more component gesture recognizers in the gesture recognizer.
6. The method of claim 1 , wherein the gesture recognizer is a gesture recognition tree having a plurality of nodes, wherein each node of the gesture recognition tree includes a respective component gesture recognizer, and wherein monitoring the input using the gesture recognizer includes: conveying information that describes the input at a respective point in time from component gesture recognizers at respective nodes having child nodes in the gesture recognition tree to component gesture recognizers at the child nodes in the gesture recognition tree; and determining states of component gesture recognizers at respective nodes in the gesture recognition tree based on the information that describes the input at the respective point in time and, in accordance with a determination that a respective node has one or more child nodes, based on respective states of respective component gesture recognizers at the one or more child nodes determined based on the information that describes the input at the respective point in time.
7. The method of claim 6 , wherein monitoring the input using the gesture recognizer further includes: conveying the determined states of the component gesture recognizers at child nodes in the gesture recognition tree to component gesture recognizers at parent nodes of the child nodes in the gesture recognition tree; wherein determining whether the input satisfies the first gesture recognition criteria for recognizing the first gesture includes determining a state of the gesture recognition tree based on the determined states of the component gesture recognizers in the gesture recognition tree.
8. The method of claim 6 , wherein monitoring the input using the gesture recognizer includes: determining values of one or more component gesture recognizers at respective nodes in the gesture recognition tree based on the information that describes the input at the respective point in time wherein determining a state of a respective component gesture recognizer at a respective node is further based on a determined value of a component gesture recognizer at a child node of the respective node, in accordance with a determination that the component gesture recognizer at the child node has a determined value.
9. The method of claim 1 , wherein the plurality of component gesture recognizers in the gesture recognizer are selected from a plurality of available component gesture recognizers that include: combiners that combine information from two or more component gesture recognizers and define requirements for recognition of a gesture based on relationships between the component gesture recognizers combined using the combiners; and input parameter recognizers that determine values of parameters that describe the input and/or define threshold requirements for parameters that describe the input.
10. The method of claim 1 , wherein the gesture recognizer is associated with an application, and the plurality of component gesture recognizers in the gesture recognizer are instances of respective component gesture recognizers in a plurality of available component gesture recognizers provided by an application-independent module.
11. The method of claim 1 , wherein: the gesture recognizer includes a third component gesture recognizer that defines a third requirement for recognition of a gesture based on a relationship between the first component gesture recognizer and the second component gesture recognizer; monitoring the input using the gesture recognizer includes monitoring a state of the first component gesture recognizer and a state of the second component gesture recognizer using the third component gesture recognizer to determine whether the first component gesture recognizer and the second component gesture recognizer satisfy the third requirement; and the first gesture recognition criteria include the third requirement that is based on the relationship between the first component gesture recognizer and the second component gesture recognizer.
12. The method of claim 11 , wherein the third component gesture recognizer is an exclusive combiner, and the third requirement specifies that the first component gesture recognizer must fail in order for the second component gesture recognizer to succeed.
13. The method of claim 11 , wherein the third component gesture recognizer is a simultaneous combiner, and the third requirement requires, at a respective point in time, success of at least one of the first component gesture recognizer and the second component gesture recognizer in order for the third component gesture recognizer to succeed.
14. The method of claim 11 , wherein the third component gesture recognizer is a sequential combiner, and the third requirement requires, in order for the third component gesture recognizer to succeed, success of the first component gesture recognizer and, after the first component gesture recognizer succeeds, success of the second component gesture recognizer.
15. The method of claim 1 , wherein the first requirement of the first component gesture recognizer requires that values of a parameter that describes the input satisfy a specified threshold.
16. The method of claim 1 , wherein the gesture recognizer is a tap gesture recognizer, wherein: the first component gesture recognizer is a distance component gesture recognizer that stores an initial location of the input corresponding to a point in time when the input was first detected and receives a current location of the input at a respective point in time, wherein the first requirement defined by the first component gesture recognizer requires that a distance between the initial location of the input and the current location of the input be within a threshold distance; and the second component gesture recognizer is a duration component gesture recognizer that stores an initial timestamp corresponding to the point in time when the input was first detected and receives a current timestamp corresponding to the respective point in time, wherein the second requirement defined by the second component gesture recognizer requires that an amount of time between the initial timestamp and the current timestamp be within a threshold amount of time; wherein the tap gesture recognizer further includes: a location component gesture recognizer that determines that the input has a current location at the respective point in time; a first gating combiner that requires success of the second component gesture recognizer and success of the location component gesture recognizer in order to succeed; and a second gating combiner that requires success of the first gating combiner and success of the first component gesture recognizer in order to succeed.
17. An electronic device, comprising: an input device; one or more processors; and memory storing one or more programs, wherein the one or more programs are configured to be executed by the one or more processors, the one or more programs including instructions for: detecting an input via the input device; in response to detecting the input, monitoring the input using a gesture recognizer, wherein the gesture recognizer includes a plurality of component gesture recognizers that define requirements for recognition of a gesture, wherein a first component gesture recognizer from the plurality of component gesture recognizers defines a first requirement for recognition of the gesture, and a second component gesture recognizer from the plurality of component gesture recognizers defines a second requirement for recognition of the gesture; and in accordance with a determination that the input satisfies first gesture recognition criteria that include the first requirement of the first component gesture recognizer and the second requirement of the second component gesture recognizer, recognizing a first gesture using the gesture recognizer.
18. The electronic device of claim 17 , wherein: the first component gesture recognizer has a current state of a plurality of available states; and the second component gesture recognizer has a current state of the plurality of available states.
19. The electronic device of claim 18 , wherein the one or more programs include instructions for determining a current state of the gesture recognizer based on the current state of the first component gesture recognizer and the current state of the second component gesture recognizer.
20. The electronic device of claim 18 , wherein monitoring the input using the gesture recognizer includes: receiving, at the gesture recognizer, first information that describes the input at a first point in time; processing the first information using the first component gesture recognizer to determine a current state of the first component gesture recognizer, of the plurality of available states, for the first point in time; processing the first information using the second component gesture recognizer to determine a current state of the second component gesture recognizer, of the plurality of available states, for the first point in time; receiving, at the gesture recognizer, second information that describes a change in the input at a second point in time later than the first point in time; processing the second information using the first component gesture recognizer to determine a current state of the first component gesture recognizer, of the plurality of available states, for the second point in time; and processing the second information using the second component gesture recognizer to determine a current state of the second component gesture recognizer, of the plurality of available states, for the second point in time.
21. The electronic device of claim 17 , wherein one or more component gesture recognizers in the gesture recognizer include one or more parameters that describe the input; and monitoring the input using the gesture recognizer includes determining values of the one or more parameters using the one or more component gesture recognizers in the gesture recognizer.
22. The electronic device of claim 17 , wherein the gesture recognizer is a gesture recognition tree having a plurality of nodes, wherein each node of the gesture recognition tree includes a respective component gesture recognizer, and wherein monitoring the input using the gesture recognizer includes: conveying information that describes the input at a respective point in time from component gesture recognizers at respective nodes having child nodes in the gesture recognition tree to component gesture recognizers at the child nodes in the gesture recognition tree; and determining states of component gesture recognizers at respective nodes in the gesture recognition tree based on the information that describes the input at the respective point in time and, in accordance with a determination that a respective node has one or more child nodes, based on respective states of respective component gesture recognizers at the one or more child nodes determined based on the information that describes the input at the respective point in time.
23. The electronic device of claim 22 , wherein monitoring the input using the gesture recognizer further includes: conveying the determined states of the component gesture recognizers at child nodes in the gesture recognition tree to component gesture recognizers at parent nodes of the child nodes in the gesture recognition tree; wherein determining whether the input satisfies the first gesture recognition criteria for recognizing the first gesture includes determining a state of the gesture recognition tree based on the determined states of the component gesture recognizers in the gesture recognition tree.
24. The electronic device of claim 22 , wherein monitoring the input using the gesture recognizer includes: determining values of one or more component gesture recognizers at respective nodes in the gesture recognition tree based on the information that describes the input at the respective point in time wherein determining a state of a respective component gesture recognizer at a respective node is further based on a determined value of a component gesture recognizer at a child node of the respective node, in accordance with a determination that the component gesture recognizer at the child node has a determined value.
25. The electronic device of claim 17 , wherein the plurality of component gesture recognizers in the gesture recognizer are selected from a plurality of available component gesture recognizers that include: combiners that combine information from two or more component gesture recognizers and define requirements for recognition of a gesture based on relationships between the component gesture recognizers combined using the combiners; and input parameter recognizers that determine values of parameters that describe the input and/or define threshold requirements for parameters that describe the input.
26. The electronic device of claim 17 , wherein the gesture recognizer is associated with an application, and the plurality of component gesture recognizers in the gesture recognizer are instances of respective component gesture recognizers in a plurality of available component gesture recognizers provided by an application-independent module.
27. The electronic device of claim 17 , wherein: the gesture recognizer includes a third component gesture recognizer that defines a third requirement for recognition of a gesture based on a relationship between the first component gesture recognizer and the second component gesture recognizer; monitoring the input using the gesture recognizer includes monitoring a state of the first component gesture recognizer and a state of the second component gesture recognizer using the third component gesture recognizer to determine whether the first component gesture recognizer and the second component gesture recognizer satisfy the third requirement; and the first gesture recognition criteria include the third requirement that is based on the relationship between the first component gesture recognizer and the second component gesture recognizer.
28. The electronic device of claim 27 , wherein the third component gesture recognizer is an exclusive combiner, and the third requirement specifies that the first component gesture recognizer must fail in order for the second component gesture recognizer to succeed.
29. The electronic device of claim 27 , wherein the third component gesture recognizer is a simultaneous combiner, and the third requirement requires, at a respective point in time, success of at least one of the first component gesture recognizer and the second component gesture recognizer in order for the third component gesture recognizer to succeed.
30. The electronic device of claim 27 , wherein the third component gesture recognizer is a sequential combiner, and the third requirement requires, in order for the third component gesture recognizer to succeed, success of the first component gesture recognizer and, after the first component gesture recognizer succeeds, success of the second component gesture recognizer.
31. The electronic device of claim 17 , wherein the first requirement of the first component gesture recognizer requires that values of a parameter that describes the input satisfy a specified threshold.
32. The electronic device of claim 17 , wherein the gesture recognizer is a tap gesture recognizer, wherein: the first component gesture recognizer is a distance component gesture recognizer that stores an initial location of the input corresponding to a point in time when the input was first detected and receives a current location of the input at a respective point in time, wherein the first requirement defined by the first component gesture recognizer requires that a distance between the initial location of the input and the current location of the input be within a threshold distance; and the second component gesture recognizer is a duration component gesture recognizer that stores an initial timestamp corresponding to the point in time when the input was first detected and receives a current timestamp corresponding to the respective point in time, wherein the second requirement defined by the second component gesture recognizer requires that an amount of time between the initial timestamp and the current timestamp be within a threshold amount of time; wherein the tap gesture recognizer further includes: a location component gesture recognizer that determines that the input has a current location at the respective point in time; a first gating combiner that requires success of the second component gesture recognizer and success of the location component gesture recognizer in order to succeed; and a second gating combiner that requires success of the first gating combiner and success of the first component gesture recognizer in order to succeed.
33. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions that, when executed by an electronic device with an input device, cause the electronic device to: detect an input via the input device; in response to detecting the input, monitor the input using a gesture recognizer, wherein the gesture recognizer includes a plurality of component gesture recognizers that define requirements for recognition of a gesture, wherein a first component gesture recognizer from the plurality of component gesture recognizers defines a first requirement for recognition of the gesture, and a second component gesture recognizer from the plurality of component gesture recognizers defines a second requirement for recognition of the gesture; and in accordance with a determination that the input satisfies first gesture recognition criteria that include the first requirement of the first component gesture recognizer and the second requirement of the second component gesture recognizer, recognize a first gesture using the gesture recognizer.
34. The non-transitory computer readable storage medium of claim 33 , wherein: the first component gesture recognizer has a current state of a plurality of available states; and the second component gesture recognizer has a current state of the plurality of available states.
35. The non-transitory computer readable storage medium of claim 34 , wherein the one or more programs include instructions that, when executed by the electronic device, cause the electronic device to determine a current state of the gesture recognizer based on the current state of the first component gesture recognizer and the current state of the second component gesture recognizer.
36. The non-transitory computer readable storage medium of claim 34 , wherein monitoring the input using the gesture recognizer includes: receiving, at the gesture recognizer, first information that describes the input at a first point in time; processing the first information using the first component gesture recognizer to determine a current state of the first component gesture recognizer, of the plurality of available states, for the first point in time; processing the first information using the second component gesture recognizer to determine a current state of the second component gesture recognizer, of the plurality of available states, for the first point in time; receiving, at the gesture recognizer, second information that describes a change in the input at a second point in time later than the first point in time; processing the second information using the first component gesture recognizer to determine a current state of the first component gesture recognizer, of the plurality of available states, for the second point in time; and processing the second information using the second component gesture recognizer to determine a current state of the second component gesture recognizer, of the plurality of available states, for the second point in time.
37. The non-transitory computer readable storage medium of claim 33 , wherein one or more component gesture recognizers in the gesture recognizer include one or more parameters that describe the input; and monitoring the input using the gesture recognizer includes determining values of the one or more parameters using the one or more component gesture recognizers in the gesture recognizer.
38. The non-transitory computer readable storage medium of claim 33 , wherein the gesture recognizer is a gesture recognition tree having a plurality of nodes, wherein each node of the gesture recognition tree includes a respective component gesture recognizer, and wherein monitoring the input using the gesture recognizer includes: conveying information that describes the input at a respective point in time from component gesture recognizers at respective nodes having child nodes in the gesture recognition tree to component gesture recognizers at the child nodes in the gesture recognition tree; and determining states of component gesture recognizers at respective nodes in the gesture recognition tree based on the information that describes the input at the respective point in time and, in accordance with a determination that a respective node has one or more child nodes, based on respective states of respective component gesture recognizers at the one or more child nodes determined based on the information that describes the input at the respective point in time.
39. The non-transitory computer readable storage medium of claim 38 , wherein monitoring the input using the gesture recognizer further includes: conveying the determined states of the component gesture recognizers at child nodes in the gesture recognition tree to component gesture recognizers at parent nodes of the child nodes in the gesture recognition tree; wherein determining whether the input satisfies the first gesture recognition criteria for recognizing the first gesture includes determining a state of the gesture recognition tree based on the determined states of the component gesture recognizers in the gesture recognition tree.
40. The non-transitory computer readable storage medium of claim 38 , wherein monitoring the input using the gesture recognizer includes: determining values of one or more component gesture recognizers at respective nodes in the gesture recognition tree based on the information that describes the input at the respective point in time wherein determining a state of a respective component gesture recognizer at a respective node is further based on a determined value of a component gesture recognizer at a child node of the respective node, in accordance with a determination that the component gesture recognizer at the child node has a determined value.
41. The non-transitory computer readable storage medium of claim 33 , wherein the plurality of component gesture recognizers in the gesture recognizer are selected from a plurality of available component gesture recognizers that include: combiners that combine information from two or more component gesture recognizers and define requirements for recognition of a gesture based on relationships between the component gesture recognizers combined using the combiners; and input parameter recognizers that determine values of parameters that describe the input and/or define threshold requirements for parameters that describe the input.
42. The non-transitory computer readable storage medium of claim 33 , wherein the gesture recognizer is associated with an application, and the plurality of component gesture recognizers in the gesture recognizer are instances of respective component gesture recognizers in a plurality of available component gesture recognizers provided by an application-independent module.
43. The non-transitory computer readable storage medium of claim 33 , wherein: the gesture recognizer includes a third component gesture recognizer that defines a third requirement for recognition of a gesture based on a relationship between the first component gesture recognizer and the second component gesture recognizer; monitoring the input using the gesture recognizer includes monitoring a state of the first component gesture recognizer and a state of the second component gesture recognizer using the third component gesture recognizer to determine whether the first component gesture recognizer and the second component gesture recognizer satisfy the third requirement; and the first gesture recognition criteria include the third requirement that is based on the relationship between the first component gesture recognizer and the second component gesture recognizer.
44. The non-transitory computer readable storage medium of claim 43 , wherein the third component gesture recognizer is an exclusive combiner, and the third requirement specifies that the first component gesture recognizer must fail in order for the second component gesture recognizer to succeed.
45. The non-transitory computer readable storage medium of claim 43 , wherein the third component gesture recognizer is a simultaneous combiner, and the third requirement requires, at a respective point in time, success of at least one of the first component gesture recognizer and the second component gesture recognizer in order for the third component gesture recognizer to succeed.
46. The non-transitory computer readable storage medium of claim 43 , wherein the third component gesture recognizer is a sequential combiner, and the third requirement requires, in order for the third component gesture recognizer to succeed, success of the first component gesture recognizer and, after the first component gesture recognizer succeeds, success of the second component gesture recognizer.
47. The non-transitory computer readable storage medium of claim 33 , wherein the first requirement of the first component gesture recognizer requires that values of a parameter that describes the input satisfy a specified threshold.
48. The non-transitory computer readable storage medium of claim 33 , wherein the gesture recognizer is a tap gesture recognizer, wherein: the first component gesture recognizer is a distance component gesture recognizer that stores an initial location of the input corresponding to a point in time when the input was first detected and receives a current location of the input at a respective point in time, wherein the first requirement defined by the first component gesture recognizer requires that a distance between the initial location of the input and the current location of the input be within a threshold distance; and the second component gesture recognizer is a duration component gesture recognizer that stores an initial timestamp corresponding to the point in time when the input was first detected and receives a current timestamp corresponding to the respective point in time, wherein the second requirement defined by the second component gesture recognizer requires that an amount of time between the initial timestamp and the current timestamp be within a threshold amount of time; wherein the tap gesture recognizer further includes: a location component gesture recognizer that determines that the input has a current location at the respective point in time; a first gating combiner that requires success of the second component gesture recognizer and success of the location component gesture recognizer in order to succeed; and a second gating combiner that requires success of the first gating combiner and success of the first component gesture recognizer in order to succeed.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
May 30, 2019
December 29, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.