Abstract:
Methods and apparatus, including computer program products, are provided for finger gestures. In one aspect there is provided a method, which may include detecting a first finger gesture proximate to or making contact with a slider element presented on a user interface; detecting a second finger gesture proximate to or making contact with the user interface, the second finger gesture detected during a time period comprising a time when the first finger is proximate to or making contact with the slider; and changing a resolution of the slider from a first resolution value to a second resolution value, when the second finger gesture is detected. Related systems, methods, and articles of manufacture are also described.

Description:
FIELD 
     The present disclosure generally relates to finger gestures. 
     BACKGROUND 
     Touch-based devices have become increasingly important for computer-based devices. For example, smart phones, tablets, and other devices include touch sensitive user interfaces to allow a user to make selections. Although touch-based devices may allow a user to touch a user interface to interact with the device, gestures used to interact with the device may not be intuitive or may be difficult for some users to gesture, making it difficult for the users to interact with the device via touch. 
     SUMMARY 
     Methods and apparatus, including computer program products, are provided for finger gestures. 
     In one aspect there is provided a method, which may include detecting a first finger gesture proximate to or making contact with a slider element presented on a user interface; detecting a second finger gesture proximate to or making contact with the user interface, the second finger gesture detected during a time period comprising a time when the first finger is proximate to or making contact with the slider; and changing a resolution of the slider from a first resolution value to a second resolution value, when the second finger gesture is detected. 
     In some implementations, the above-noted aspects may further include additional features described herein including one or more of the following. The time period may further include a predetermined timeout period. The detecting the second finger gesture may further include detecting the second finger gesture proximate to or making contact with the user interface, when the second finger gesture is proximate to or making contact with a predetermined region of a touch-sensitive display. The predetermined region may be a region associated with a presentation of a video on the user interface. The second resolution value may be sent to the user interface including a video player to enable a resolution change at the video player. Another second finger gesture proximate to or making contact with the user interface may be detected, wherein the other second finger gesture is detected during the time period comprising the time when the first finger is proximate to or making contact with the slider. The resolution of the slider may be changed to a third resolution value, when the other second finger gesture is detected. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive. Further features and/or variations may be provided in addition to those set forth herein. For example, the implementations described herein may be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed below in the detailed description. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       In the drawings, 
         FIGS. 1A and 1B  depict an example of a user interface including a slider and the two-finger gesture; 
         FIG. 2  depicts an example of a system for detecting the two-finger gesture; and 
         FIG. 3  depicts an example of a processor for detecting a two-finger gesture. 
     
    
    
     Like labels are used to refer to same or similar items in the drawings. 
     DETAILED DESCRIPTION 
       FIG. 1A  depicts an example of a user interface  100  including a slider  150 . A slider refers to a user interface element that is configured to vary a value via a sliding touch action. In the example of  FIG. 1A , slider  150  may vary a value, such as a time or a frame number, for the video being presented within video (or video player)  160  at user interface  100 . 
     To illustrate further, a finger gesture  190  may make contact with slider  150 . The current position  172  of the slider may be moved (via finger gesture  190 ) to vary what portion of the video is being presented. In the example, finger gesture  190  moves the video being presented at  160  to position  172 , which corresponds to a value within the video clip being presented. However, using a first finger gesture  190  alone to move slider  150  to a specific time in the video clip can be very difficult, if not impossible. If the first finger gesture  190  alone is used to move to a very specific time, such as 17:02, within video  160 , the resolution of slider  150  movement using the first finger gesture  190  alone can make it difficult, if not impossible, to precisely select the desired time of 17:02. In this example, the resolution of the slider  150  may get the video to time 17:30 but not exactly 17:02. 
     In some example implementations, a second finger gesture  195  may be used to adjust the resolution of slider  150 . For example, while first finger gesture  190  is moving slider  150 , a second finger gesture  195  may select (for example, tap, touch, and the like) a portion of the user interface  100  to vary the resolution of the slider  150  action. To illustrate further, a first touch of the second finger gesture  195  may reduce the resolution of slider  150  action from 30 seconds to 1 seconds, so the rate of change of the movement caused by the first finger gesture  190  moving along slider  150  may slow to enable a precise selection of a given time, such as the 17:02 as shown in  FIG. 1B . 
     In some implementations, the second finger gesture  195  may be used to vary the resolution among a plurality of resolutions. For example, the second finger gesture may tap a first time on user interface  100  to select a 1 second resolution, a second tap may select another resolution (for example, 15 second); and so forth. 
     By way of an example, a podcast being presented at  160  may have a one-hour run time. The target time within the podcast is 12 minutes 45 seconds. The first finger gesture  190  may be used to select for presentation at  160  that portion of the video that corresponds to a rough value between 12 and 14 minutes as the resolution of the slider  150  for the video (or video player presenting the video)  160  enables a coarse selection of for example 12 minutes and 55 seconds. The second finger gesture  195  may change the slider resolution to seconds, so moving slider  150  changes, with a resolution of seconds, the portion of the video in second increments allowing a more precise selection of for example 12 minutes and 45 seconds. 
     Although the previous example refers to specific values for the resolutions, other resolution values may be selected by the second finger gesture as well. Moreover, although the previous example described slider  150  and first and second finger gestures  190  and  195  being used in conjunction with video  160 , slider  150  and first and second finger gestures  190  and  195  may be used with other types of data as well including for example audio, music, and the like. 
       FIG. 2  depicts a system  299  for gesturing, in accordance with some example implementations. The description of  FIG. 2  also refers to  FIGS. 1A-1B . 
     System  299  may include user interface  100 , a processor  297 , and a gesture detector  292 . 
     The user interface  100  may include a slider  150  and a video player  160 . The user interface may be implemented via a display including one or more touch sensitive regions where finger gestures  190  and  195  can be detected. For example, an application, such as a browser and the like, may include slider  150  and video player  160 , so that a video may be presented via a touch sensitive display. 
     The processor  297  may include at least one processor circuitry and at least one memory including computer code, which when executed may provide one or more of the functions disclosed herein. For example, gesture detector  292  may be implemented using processor  297 , although gesture detector  292  may be implemented using a dedicated processor and/or portions of gesture detector  292  may be incorporated into user interface  100  and/or a touch sensitive display (as well as corresponding display circuitry). 
       FIG. 3  depicts a process  300  for two-finger gesturing, in accordance with some example implementations. The description of  FIG. 3  also refers to  FIGS. 1 and 2 . 
     At  310 , a first finger gesture may be detected. For example, when finger gesture  190  touches (or is proximate to) a touch sensitive display presenting slider  150 , gesture detector  292  may detect this touch event with respect to slider  150 . As the first finger gesture  190  moves along slider  150 , gesture detector  292  may track, at  315 , one or more events associated with the sliding touch action in order to determine a time value for the first finger gesture  190 . For example, first finger gesture  190  may move along slider  150  to one or more positions, such as position  172 , which may correspond to a value or a time within video  160 . In the example of  FIG. 1B , the current position  172  of slider  150  corresponds to a time “17:02” ( 176 B), and this time represents a certain instant of time or frame of a video at video player  160 . 
     Unless otherwise indicated, a touch may make actual contact with a display and/or be proximate to the display (not making actual contact) as some displays do not require actual contact. 
     At  320 , user interface  100  and/or other components of system  299  may be updated with the value, such as time, selected via slider  150  and finger gesture  190 . For example, when first finger gesture  190  moves along slider  150  to position  172  (which represent the current position of finger gesture  190  as well as a time within the video at  160 ), gesture detector  292  may track the movement and provide to user interface updated information, such as the current time 17:02 ( 176 B). The tracked movement may also be provided to video player  160  to update the presentation of the video as well. 
     At  330 , a second finger gesture may be detected. For example, gesture detector  292  may detect second finger gesture  195 , when second finger gesture  195  touches (or is proximate to) the touch sensitive display presenting user interface  100 . In some implementations, the touch of the second finger gesture  195  may be detected when the second finger gesture  195  touches a predetermined portion of user interface  100 . For example, the second finger gesture  195  may be required to touch the video player  160  display region  180  (for example, a touch sensitive display region associated with the display of the video) in order to be detected as a second finger gesture. 
     At  330 , gesture detector  292  may only recognize the second finger gesture  195  when the first finger gesture  190  is actually moving the slider  150  (or within a predetermined time out period after moving the slider  150 ). For example, while the first finger gesture is moving the slider  150  (or within a predetermined time period, such as 0.5 seconds, 1 second, 2 seconds, 3 seconds, 4 seconds, 5 seconds, and/or other times, since a slider movement), gesture detector  292  may detect the second finger gesture. But if the first finger gesture is not moving the slider (or the timeout period has elapsed), gesture detector  292  may not detect the second finger gesture. Although the previous example described the second finger gesture  195  as a touch or tap of the user interface, other gestures may be used as well. For example, other gestures, such as a pinch as well as any other gesture may be used as well. Moreover, the touches may be proximate, as noted, to the user interface (so actual contact may not occur). 
     At  335 , the resolution of the slider  150  may be changed based on the detected second finger gesture  195 . For example, when gesture detector  292  detects the second finger gesture, gesture detector (or processor  292 ) may change the resolution of the slider  150 . Referring to the example of  FIG. 1 , the detected second finger gesture may change the resolution to a slower time, such as 1 second and the like, although other resolution times or values may be used as well including increases in time/value. Additionally, the resolution may revert back to a prior or a default resolution. The updated resolution may also be provided to a video player  160  as well. 
     At  340 , another second finger gesture may be detected. For example, the second finger gesture  195  may make contact with the user interface a second time, and this second contact may change the resolution of slider  150  yet again (yes at  340 ). For example, the second contact by second finger gesture  195  may change toggle the resolution from 1 second to a larger resolution, such as 2 seconds, 5 seconds, 10 seconds, 15 seconds, 20 seconds, 30 seconds, 1 minute, 5 minutes, 15 minutes, and/or any other resolution time or value. In some implementations, the second finger gesture may return the resolution to the resolution used prior to the update at  335 . For example, slider  150  may be configured with a first resolution (for example, 30 second increments) which changes to 1 second with the update at  335  caused by the second finger gesture  330 , but if a second finger tap is detected at  340 , the resolution of the slider  150  may toggle back to 30 second increments. 
     Moreover, multiple touches of the second finger gesture may be used to select among a plurality of resolutions. For example, a first contact of the second finger gesture may result in a 1 second resolution, a second contact of the second finger gesture may result in a 2 second resolution, a third contact of the second finger gesture may result in a 5 second resolution, a fourth contact of the second finger gesture may result in a 10 second resolution, a fifth contact of the second finger gesture may result in 10 minute resolution, and so forth, although other time values may be used as well. Additionally, the resolution may revert back to a prior or a default resolution. 
     Although the previous example describes a specific use case, other uses cases may be implemented as well. 
     Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is enhanced control of media presentation on device, such as handheld devices including cell phones, tablets, smart phones, and/or laptops/computers having touch sensitive displays. 
     Various implementations of the subject matter described herein may be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. 
     These computer programs (also known as programs, software, software applications, or code) include machine instructions for a programmable processor, and may be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any non-transitory computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions. 
     To provide for interaction with a user, the subject matter described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user may provide input to the computer. Other kinds of devices may be used to provide for interaction with a user as well; for example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input. 
     Although a few variations have been described in detail above, other modifications are possible. For example, while the descriptions of specific implementations of the current subject matter discuss analytic applications, the current subject matter is applicable to other types of software and data services access as well. Moreover, although the above description refers to specific products, other products may be used as well. In addition, the logic flows depicted in the accompanying figures and described herein do not require the particular order shown, or sequential order, to achieve desirable results. Other embodiments may be within the scope of the following claims.