A computing device, such as a tablet computer may run one or more applications that generate notifications in response to the occurrence of events. These notifications are typically displayed on screen and “pop” into view in a system tray or the like. For example, a notification for an email may be displayed in a system tray in response to receipt of the email. These notifications may cover a part of the screen when they are displayed and may arrive when the user is not interested in shifting his or her attention from a current task. In a computing environment where the user has ample screen real estate, e.g., when the user has a monitor with 1920×1200 pixels and/or when the user has multiple monitors, these notifications may not interrupt the user and the user may simply wait for the notifications to be dismissed automatically, e.g., after 7 seconds, etc. On the other hand, when the computing environment is a tablet computer, e.g., a small computing device with a display resolution of, for example, 768×1024 pixels, the notification may cover real estate that is needed by the user. In the latter example, the user may want to dismiss the notification without having to interrupting his or her focus.
When the user is using an input device such as a mouse to interact with the computing device, the user may click on a small box with an “x” in the corner or the like to dismiss the notification. This technique works well for mice and styluses because the input is received at specific coordinates; however, when touch input, e.g., input from a capacitive element such as a finger, is the input mechanism the input pattern is typically spread across multiple pixels instead of concentrated on a single point. This makes it difficult for the computing device to determine whether or not the box was selected and may cause the user to shift his or her attention to the notification in order to dismiss it. This problem is only exacerbated when multiple notifications simultaneously arrive and cover a significant portion of the screen. Accordingly, techniques for easily dismissing a group of notifications with touch gestures are desirable.
An exemplary embodiment includes a computing device. In this example, the computing device includes, but is not limited to a processor, a touch-screen, and a memory in communication with the processor when the computing device is operational. In this example, the memory can include computer readable instructions that upon execution cause the processor to display a first notification at a first position on the touch-screen and a second notification at a second position on the touch-screen; select the first notification and the second notification based on a sensed position of the first touch input; and dismiss both the first notification and the second notification in response to detecting a dismissal gesture. In addition to the foregoing, other techniques are described in the claims, the detailed description, and the figures.
Another exemplary embodiment includes a method executed by a computing device. In an example, the method can include, but is not limited to displaying a first notification and a second notification on a touch-screen, wherein the first notification and the second notification are both limited to horizontal movement on the touch screen; selecting a first notification in response to sensing first touch input at a first position associated with the first notification; selecting the second notification in response to sensing that the first touch input moved from the first position to a second position indicative of a second notification; and dismissing both the first notification and the second notification in response to detecting a dismissal gesture. In addition to the foregoing, other techniques are described in the claims, the detailed description, and the figures.
Another exemplary embodiment includes a computer-readable storage medium. In this example, the computer-readable storage medium includes, but is not limited to, instructions that upon execution by a processor of a computing device causes the computing device to display a first notification and a second notification on the touch-screen; change a position of the first notification to overlap at least a portion of the second notification based on touch input sensed by the touch-screen; group the first notification and the second notification in response to determining that the overlapping portion is greater than a threshold; dismiss both the first notification and the second notification in response to detecting a dismissal gesture. In addition to the foregoing, other techniques are described in the claims, the detailed description, and the figures.
It can be appreciated by one of skill in the art that one or more various aspects of the disclosure may include but are not limited to circuitry and/or programming for effecting the herein-referenced aspects; the circuitry and/or programming can be virtually any combination of hardware, software, and/or firmware configured to effect the herein-referenced aspects depending upon the design choices of the system designer.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail. Those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting.
The disclosed subject matter may use a computing device such as a tablet computer.
The term circuitry used throughout can include hardware components such as hardware interrupt controllers, hard drives, network adaptors, graphics processors, hardware based video/audio codecs, and the firmware used to operate such hardware. The term circuitry can also include microprocessors, application specific integrated circuits, and processors, e.g., cores of a multi-core general processing unit that perform the operations of reading and executing instructions, configured by firmware and/or software. Processor(s) can be configured by instructions loaded from memory, e.g., RAM, ROM, firmware, and/or mass storage, embodying logic operable to configure the processor to perform a function(s). In an example embodiment, where circuitry includes a combination of hardware and software, an implementer may write source code embodying logic that is subsequently compiled into machine readable code that can be executed by hardware such as an application specific integrated circuit, processor, etc. Since one skilled in the art can appreciate that the state of the art has evolved to a point where there is little difference between hardware implemented functions and software implemented functions, the selection of hardware versus software to effectuate herein described functions is merely a design choice. Put another way, since one of skill in the art can appreciate that a software process can be transformed into an equivalent hardware structure, and a hardware structure can itself be transformed into an equivalent software process, the selection of a hardware implementation versus a software implementation is left to an implementer.
Referring now to
The computer-readable storage media 110 can provide non volatile and volatile storage of executable instructions, data structures, program modules and other data for the computer 100 such as executable instructions. A basic input/output system (BIOS) 120, containing the basic routines that help to transfer information between elements within the computing device 100, such as during start up, can be stored in firmware 108. A number of programs may be stored on firmware 108, storage device 106, RAM 104, and/or removable storage devices 118, and executed by processor 102 including an operating system and/or application programs.
Commands and information may be received by computing device 100 through input devices 116 which can include, but are not limited to, a keyboard and pointing device. Other input devices may include a microphone, joystick, game pad, scanner or the like. These and other input devices are often connected to processor 102 through a serial port interface that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB). A touch-screen or display device can also be connected to the system bus which can be controlled by a graphics processor unit 112 and/or processor 102.
Computing device 100 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer. The remote computer may be another computer, a server, a router, a network PC, a peer device or other common network node, and typically can include many or all of the elements described above relative to computing device 100.
When used in a LAN or WAN networking environment, computing device 100 can be connected to the LAN or WAN through network interface card 114. The NIC 114, which may be internal or external, can be connected to the system bus. In a networked environment, program modules depicted relative to the computing device 100, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections described here are exemplary and other means of establishing a communications link between the computers may be used. Moreover, while it is envisioned that numerous embodiments of the present disclosure are particularly well-suited for computerized systems, nothing in this document is intended to limit the disclosure to such embodiments.
Referring now to
In an exemplary embodiment, capacitive layer 212 can be formed by a mutual capacitance system. In this example, the mutual capacitance system can comprise a grid formed from two layers of material: columns of sensing lines, which can detect current at nodes (the intersection between a row and a column) and rows of driving lines, which carry current (one skilled in the art can appreciate that the driving lines could be implemented as columns and vertical the sensing lines could be implemented as rows in alternative embodiments). In this example, capacitors can be positioned at the intersection of each node and voltage can be applied to the columns. When a finger or other capacitive element touches touch-screen 200, the line carrying the voltage comes into contact with the row, a current will flow; and a signal can be sent to touch manager 208.
In another embodiment, the capacitive layer 212 can be formed from a self capacitance system. In this example, transparent electrodes may be positioned in rows and columns so as to form a grid. When a finger of other capacitive element touches touch-screen 200 the touched electrodes measure the capacitance and generate a signal that is sent to touch manager 208.
When touch input, such as input from a finger, is sensed by touch-screen 200 a signal can be sent touch manager 208, which can determine the position of the touch input. For example, touch manager 208, which can be a module of executable instructions, can execute and analyze the signals to determine the size, shape, and location of the of the touch input. This information could be stored in touch input table 210 and associated with an identifier, e.g., touch input 202. As the user moves his or her finger across touch-screen 200, touch manager 208 receives data from the capacitive layer 212; determines which touch input the data is associated with, e.g., touch input 202, and stores coordinates associated with touch input 202 in touch input table 210. In the instance that the user removes his or her finger from touch screen 200, touch manager 208 can determine that a gesture, e.g., touch input 202 has ended.
As shown by the figure, in an exemplary embodiment touch input from multiple sources can be simultaneously tracked. For example, a user may touch touch-screen 200 with three fingers and touch manager 208 can receive at least three signals from capacitive layer 212. In this example, touch manage 208 can detect three distinct locations and determine that three touch inputs 202, 204, and 206 have been received. Touch manager 208 can be configured to store identifiers for each touch input in touch input table 210 and track how touch inputs 202, 204, and 206 change.
As a user makes a gesture with his or her fingers by moving them up and to the right touch manager 208 can track the coordinates of touch input 202, and 206 and use the data to generate one or more touch-messages, which can be sent to processes such as notification manager 302. Touch-messages can include information such as an identification of the type of event, e.g., touch-received or touch-removed, a timestamp for the event, the difference between the current location of the event and a previous location of the event, the coordinates for the event, an identifier for the touch input, etc.
Turning now to
The arrows flowing from applications 306-310 to event manager 304 signify that one or more applications can register with event manager 304 to have event manager 304 display notifications on touch-screen 200. After the applications register with event manager 304, event manager 304 can wait until it receives a signal indicative of an event from an application. In an exemplary embodiment, the notifications can be toast notifications. Briefly, a toast notification is a small notification that can slide into view from the bottom, top, or side of touch-screen 200. In response to the signal, event manager 304 can generate a notification, e.g., a window including text associated with the notification, and send a request to display the notification to notification manager 302.
Notification manager 302, which can be one or more modules of executable instructions, can be configured to receive requests from event manager 304; cause notifications to be rendered by touch-screen; change the position of rendered notifications; and dismiss notifications. In the following paragraphs, notification manager 302 is described as using touch input to manipulate messages; however, the disclosure is not limited to using touch and notification manager 302 can use input messages from any type input device, e.g., touch, mouse, keyboard, joystick, etc. In these alternative embodiments, notification manager 302 can be configured to process messages from these other input devices and the information contained therein, e.g., coordinates, timestamps, etc., in the same way that touch-messages are used.
Continuing with the description of
Notification manager 302 can be configured to select coordinates for the notifications that cause notifications to slide in from the right-side of touch-screen 200 into the lower right-hand corner of touch-screen 200 and subsequent notifications to slide in above prior notifications (one of skill in the art can appreciate that notifications can be displayed at any location by notification manager 302 and the disclosure is not limited to displaying notifications in the lower-right hand corner of touch screen 200 or having them slide in from the right). In a specific example, the notifications can be rendered so they look as if they slid into view from off-screen over the window that currently has the focus. In this specific example, the notification are visually decoupled other graphical user interface element currently displayed such that they appear to be discrete elements unassociated with other rendered images. Or put another way, the notification can be separate from any other element, e.g., task bar, application, notification folder, etc., displayed on touch-screen 200, thus appearing as if they are not attached to any other image being rendered by touch-screen 200. For example, if a desktop was being displayed the notification could slid in from the top, bottom, or side and be overlaid on top of the desktop. Similarly, if an Internet browser was open and had the current focus, the notification could slide from the top, bottom, or side and be overlaid on top of the Internet browser.
At this point, a user has a choice: the user can select the notification, wait for the notification to be automatically dismissed, or dismiss the notification him or herself. In the instance that the user wishes to dismiss the notification, the user can dismiss the notification by performing a dismissal gesture. In an exemplary embodiment, information for one or more dismissal gestures can be stored in gesture store 314 and used to determine if the user is trying to dismiss a notification.
Referring to
Turning back to the description of notification manager 302, in an exemplary embodiment a dismissal gesture can be based on the location of the notification when it is released by the user. Or put another way, notification manager 302 can determine that a dismissal gesture has been performed based on the position of the notification when a touch-message is received that indicates that the associated touch-input was removed from touch-screen 200. In this example, gesture store 314 could include a threshold such as a percentage, e.g., 25%, and a boundary. In this example, notification manager 302 can use the threshold to dismiss notifications by dismissing notifications that are 25% passed a boundary such as boundary 408, which can be used to determine whether or not to dismiss notification. In this example, notification manager 302 can be configured to dismiss notifications when a threshold amount of the notification is passed boundary 408 when touch input is removed.
Boundary 408 can be a coordinate such as an x-coordinate set by an implementer. For example, boundary 408 can be the last pixel value for touch-screen 200, e.g., pixel value 768 in an embodiment where computing device has a resolution of 768×1024 and is being held so the smaller dimension is the lengthwise dimension, e.g., the orientation illustrated by
In this exemplary embodiment, suppose notification 402 has been moved from its initial position (the position indicated in solid lines) to the release position (the position indicated in dashed lines). In this example, notification manager 302 can calculate the amount of notification 402 that passed boundary 408 and compare the calculated value to the threshold stored in gesture store 314. In one instance, the threshold can be area based, e.g., the area of threshold that has passed boundary 408 can be calculated and compared to a threshold. In another embodiment, the threshold can be one dimensional, e.g., an x or y component can be used to calculate the amount of notification 402 that passed a boundary. For example, in the instance that boundary 408 is a horizontal boundary (such as is shown by the figure) notification manager 302 can calculate the x-component portion of notification 402 that passed boundary 408 from the x-coordinate that represents the position of the upper-left corner of notification 402, the x-coordinate that represents the position of the lower-right corner of notification 402, and boundary x-coordinate from gesture store 314. This value can then be compared to a threshold.
In the instance that the calculated amount is larger than the threshold, notification manager 302 can determine that notification 402 passed the threshold and dismiss notification 402. As shown by the dashed arrow pointing back to the initial position of notification 402, in the instance that the value is less than the threshold, notification manager 302 can cause touch-screen 200 to move notification 402 back to its initial position.
In another example embodiment, other dismissal gestures can be used to dismiss notifications. For example, a dismissal gesture can be based on the position of the touch input when the user releases his or her finger. In this example, gesture store 314 can store boundary 408 and notification manager 302 can be configured to dismiss selected gestures in the instance that touch input reached and/or passed boundary 408. In this example, suppose touch-screen 200 is rendering a series of images that show notification 406 moving along with the user's finger as he or she moves it from its initial position to the position illustrated in dashed lines in
In the same or another exemplary embodiment, a dismissal gesture can use the velocity of a notification and/or or the velocity of the touch input to dismiss notifications. For example, notification manager 302 can be configured to dismiss notifications when velocity of a notification and/or the touch input is greater than a threshold velocity at the moment that touch input is removed from touch-screen 200. In this example, gesture store 314 can be configured to include a velocity threshold, e.g., a value, and a directional component that can be compared to the current velocity and direction of a notification, e.g., 402 when touch input is removed from touch-screen 200. In the instance that the current velocity of the notification is less than the threshold velocity or the velocity in the wrong direction, notification manager 302 can cause an animation to be rendered on touch-screen 200 that shows the notification returning to its initial position. In the instance that the current velocity of the notification is greater than the threshold and the velocity is in the correct direction, notification manager 302 can use the current coordinates of the notification and the vector of the notification to cause touch-screen 200 render a series of images showing the notification moving off-screen in the direction of the vector.
In exemplary embodiments, notifications can be grouped and dismissed by a user without having to individually select each notification and dismiss it. In these exemplary embodiments, touch input from a single source can be used to dismiss multiple notifications.
For example, and referring to
Put another way, notification manager 302 can receive a touch-message that indicates that touch input 206 has been received within coordinates that notification 606 occupies. Notification manager 302 can store an indication in notification table 312 that notification 606 has been selected and cause touch-screen 200 to visually indicate that notification 606 has been selected by modifying the notification's visual appearance.
Notification manager 302 can receive touch-messages that indicate that coordinates associated with touch input 206 are changing, for example, up and to the left as in the illustrated example and then receive a touch-message that indicates that touch input 206 has changed to coordinates associated with notification 602. In this example, notification manager 302 can store an indication in notification table 312 that notification 602 has also been selected by touch input 206 and cause touch-screen 200 to visually indicate that notification 602 has been selected.
After notifications 606 and 602 have been selected by the user, e.g., notification manager 302 has stored information indicating that touch input 206 has continuously moved though both notifications, the user may dismiss both notifications by performing a dismissal gesture, e.g., by moving his or her finger passed boundary 408.
In an embodiment, notification manager 302 may restrict the movement of notifications to horizontal movement. In this exemplary embodiment, when the coordinates of a touch input change vertically, notification manager 302 can keep selected notifications in place until the user performs a dismissing gesture, e.g., swipes his or her finger passed boundary 408, or until the user completes the touch-input, e.g., by removing his or her finger from touch-screen 200. Thus, in this example embodiment, when the user moves his or her finger across touch-screen 200 to select multiple notifications for dismissal, the notification manager 302 can be configured to freeze the notifications in their initial positions and visually indicate the they are selected. In this example, the positions of the notifications change when notification manager 302 dismisses them.
In an alternative embodiment, and referring to
In an exemplary embodiment, notification manager 302 can use various techniques for determining that the user intends to select both notification 706 and 704. For example, notification manager 302 can use the coordinates of touch input 206 to determine whether a selection has been made. For example, when the user moves his or her finger to notification 704 to select both notifications, notification manager 302 can receive a touch-message that includes information that identifies touch input 206, indicates the number of pixels touch input 206 moved, a timestamp, and the coordinates of touch input 206. Notification manager 302 can use information that identifies the position of notification 704 and the coordinates of touch input 206 to determine that the user has selected notification 704. Notification 302 can set a bit in notification table 312 that indicates that both notification 704 and 706 have been selected by touch input 206.
In another exemplary embodiment, notification manager 302 can determine the area that notification 706 and notification 704 overlap and compare the calculated value to a threshold. In this example, if the overlapping area is greater than the threshold, notification manager 302 can group the notifications, e.g., notification 302 can set a bit in notification table 312 that indicates that both notification 704 and 706 have been selected by touch input 206. For example, notification manager 302 can receive touch-messages that identify the coordinates of touch input 206 and change the position of notification 706 by changing the position of the upper-left corner of notification 706 based on the coordinates of touch input 206. Notification manager 302 can use the coordinates for the upper-left corners of both notifications 706 and 704 and the coordinates for the lower-right corners of both notifications 706 and 704 to calculate the overlapping area; and compare the overlapping area to a threshold.
In another example embodiment, notification manager 302 can use the vertical overlap (or if the notifications were laid out differently, the horizontal overlap) to determine if notification 704 should also be selected. The vertical overlap can then be compared to a threshold and notification manager 302 can select notification 704 in the event that the vertical overlap is greater than the threshold.
As shown by
Referring now to
Turning briefly to
The following are a series of flowcharts depicting operational procedures. For ease of understanding, the flowcharts are organized such that the initial flowcharts present implementations via an overall “big picture” viewpoint and subsequent flowcharts provide further additions and/or details that are illustrated in dashed lines.
Turning now to
In a specific example, and referring to
Turning now to operation 1104, it shows selecting the first notification and the second notification based on a sensed position of the first touch input. Continuing with a description of the operational procedure, in an exemplary embodiment notification manager 302 can store information in notification table 312 indicating that both the first notification and the second notification have been selected by the same touch input. For example, touch input from a first source, e.g., touch input 206, can select a first notification, e.g., notification 406, and then select a second notification, e.g., notification 404, in a continuous motion.
In a specific example, first touch input can be sensed at a position on touch-screen 200 within the first notification and touch-screen 200 can send a signal to touch manager 208. Touch manager 208 can determine that this touch input is from a new source (based on a lack of prior touch input being senesced) and determine the coordinates for the touch input are within the coordinates of notification 406, e.g., x, y coordinates that are within the x, y coordinates that define the location of the first notification. Touch manager 208 can generate a touch-message including an identifier for touch input 206, a timestamp, and the coordinates for touch input 206 and send the message to notification manage 302. Notification manager 302 can receive the message and compare the coordinates for touch input 206 to coordinates of the first notification and determine that touch input 206 is within the first notification. Notification manager 302 can store information identifying that the first notification has been selected by touch input 206 in notification table 312.
The user can then drag his or her finger from a first position associated with the first notification to a second position associated with the second notification. In response to sensing touch input 206 associated with the first notification change to coordinates associated with the second notification, touch manager 208 can generate a touch-message including the identifier for touch input 206 (touch manager 208 can determine that the touch input is the first touch input from information that indicates that the user did not remove his or her finger as he or she moved it to the second position), the coordinates for the second position, a timestamp, and coordinates indicating the change between the first position and the second position. Notification manager 302 can receive the message and compare the coordinates for touch input 206 to coordinates of the second notification and determine that the second position for touch input 206 is within the second notification. Notification manager 302 can store information identifying that the second notification has been selected by touch input 206 in notification table 312.
Referring briefly to
Referring now to
Continuing with the description of
Continuing with the description of
In an exemplary embodiment, the overlap can be calculated by determining the percentage of the second notification that is covered by the first notification. For example, when notification manager 302 receives a touch-message including information describing that the user moved his or her finger, notification manager 302 can use the coordinates that identify the difference between the current position of touch input 206 and a prior to position to change the upper-left corner of notification 706 (for example, if the delta coordinates are (+10, −30) notification manager 302 can be configured to change the position of the upper-left corner of notification 706 by (+10, −30)). The new position of notification 706 can be stored in notification table 312 and notification manager 302 can use the updated coordinates of notification 706 and the coordinates for notification 704 to determine the overlap between the two notifications. The percentage can be calculated from the area and compared to a threshold in gesture store 314. In the instance that the percentage of overlap is greater than the threshold, notification manager 302 can select notification 704.
In another exemplary embodiment, the percentage of vertical overlap can be compared to a threshold to determine whether to select notifications 704. In this exemplary embodiment, when notification manager 302 receives a touch-message including information describing that the user moved his or her finger, notification manager 302 can use the coordinates that identify the difference between the current position of touch input 206 and a prior to position to change the upper-left corner of notification 706 (for example, if the delta coordinates are (+10, −30) notification manager 302 can be configured to change the position of the upper-left corner of notification 706 by (+10, −30)). The new position of notification 706 can be stored in notification table 302 and notification manager 302 can use the updated coordinates of notification 706 and the coordinates for notification 704 to determine the vertical overlap between the two notifications. For example, suppose the coordinates of the upper-left corner of notification 704 are (600, 950) and the coordinates of the lower-right corner are (700, 1000). Also suppose that the updated coordinates for notification 706 for the upper-left corner are (610, 938) and the lower-right corner are (710, 988). In this example, notification manager 302 can calculate the amount of vertical overlap (38 pixels); calculate the percentage of vertical overlap (76%); and compare the percentage to a threshold. In the instance that the percentage of overlap is greater than the threshold, notification manager 302 can group the second notification with the first notification.
Returning to
In a specific example, and referring to
Notification manager 302 can receive the touch-message and determine that notification 606 has been selected by comparing the coordinates of touch input 206 to coordinates of notification 606. Notification manager 302 can store a bit in notification table 312 indicating that notification 606 has been selected and store information that indicates that the notification is associated with touch input 206.
The user may move his or her finger around touch-screen 200 and eventually move the finger into coordinates that notification 602 occupies. Notification manager 302 can receive a touch-message that indicates that touch input 206 has changed to a position notification 602 occupies. In response to the message, notification manager 302 can determine that notification 602 has been selected by comparing the current coordinates of touch input 206 to coordinates of notification 602. Notification manager 302 can store a bit in notification table 312 indicating that notification 602 has been selected and store information that indicates that the notification is associated with touch input 206.
Turning now to operation 1218, it shows aligning the second notification with the first notification based on the sensed position of the first touch input. For example, notification manager 302 can be configured to visually group selected notifications in a way that indicates that the notifications have been stacked.
Notification manager 302 can store a slope of a line and an offset that can be used to orientate stacked messages. In response to determining that message have been selected, notification manager 302 can use the slope and coordinates that identify the upper-left corner of the last notification that was made part of the group to determine coordinates for the upper-left corner of the notification being grouped. Notification manager 302 can change the position of the notification being grouped to the determined coordinates and cause touch-screen 200 to render one or more images of the notification sliding into the stack.
In a specific example, and turning to
In an alternative embodiment, notification manager 302 can replace the images of notifications in the group with a graphic that indicates that multiple notifications have been stacked. In this example, when notification manager 302 determines that message have been selected, notification manager 302 can cause a new graphic showing grouped notifications to be loaded from memory and rendered by touch-screen 200.
Continuing with the description of
In a specific example, and referring to
Continuing with the description of
In a specific example, and referring to
Referring back to
In a specific example, and referring to
In an exemplary embodiment, the threshold can be based on the area of the notification, the horizontal off-screen component, or the vertical off-screen component. For example, in an embodiment where area is used, notification manager 302 can be configured to determine the area of the first notification that is off-screen using information that describes the amount of pixels in the touch-screen 200, the coordinates of the upper-left corner of the first notification and the lower-right corner when touch input 206 was removed.
In another embodiment, the horizontal off-screen portion can be used. For example, the horizontal component of the coordinates that identify the position of the first notification, e.g., the coordinates associated with the upper-left corner and the lower-right corner, and the x-coordinate identifying the last pixel for touch-screen 200, e.g., boundary 408 could be the last pixel value 768 (in an embodiment where touch-screen has 768×1024 pixels) in this exemplary embodiment.
Turning now to
Continuing with the description of
In a specific example, first touch input can be sensed at a position on touch-screen 200 within the first notification and touch-screen 200 can send a signal to touch manager 208. Touch manager 208 can determine that this touch input is from a new source (based on a lack of prior touch input being senesced) and determine the coordinates for the touch input, e.g., x, y coordinates that are within the x, y coordinates that define the initial location of the first notification. Touch manager 208 can generate a touch-message including an identifier for touch input 206, a timestamp, and the coordinates for touch input 206 and send the message to notification manage 302. Notification manager 302 can receive the message and compare the coordinates for touch input 206 to coordinates of the first notification and determine that touch input 206 is within the first notification. Notification manager 302 can store information identifying that the first notification has been selected and information that identifies the touch input 206 in notification table 312.
Continuing with the description of
In a specific example, a user can have previously selected the first notification and then dragged his or her finger from a first position associated with the first notification to a second position associated with the second notification. In response to sensing touch input associated with the first notification changing to coordinates associated with the second notification, touch manager 208 can generate a touch-message including the identifier for touch input 206 (touch manager 208 can determine that the touch input is the touch input 206 from information that indicates that the user did not remove his or her finger as he or she moved it to the second position), the coordinates for the second position, a timestamp, and coordinates indicating the change between the first position and the second position. Notification manager 302 can receive the message and compare the coordinates for touch input 206 to coordinates of the second notification and determine that the second position for touch input 206 is within the second notification. Notification manager 302 can store information identifying that the second notification has been selected and information that identifies touch input 206 in notification table 312.
Operation 1308 shows dismissing both the first notification and the second notification in response to detecting a dismissal gesture. For example, notification manager 302 can dismiss both the first and second notifications in response to comparing touch input to information that defines a dismissal gesture. For example, the user can move his or her finger in a pattern similar to those described above with respect to
Turning now to
Continuing with the description of
Touch input 206 can then be detected within coordinates that are associated with notification 604. In this example, notification manager 302 can store a bit in notification table 312 indicating that the notification has been selected and change the size of notification 604 by four percent. Notification manager 302 can then send a signal to operation system 300 instructing it to change the size of notification 604. Operating system 300 can then cause touch-screen 200 to render an enlarged image indicative of notification 604 on touch-screen 200.
Referring back to
For example, and referring to
Referring now to operation 1416, it shows dismissing both the first notification and the second notification in response to determining that the velocity of the first touch input when the first touch input removed from the touch-screen is greater than a velocity threshold. In an exemplary embodiment, the release velocity of the first notification can be used to determine if a dismissal gesture was performed. For example, gesture store 314 can include a release velocity threshold. In this example, when touch input is removed from touch-screen 200, notification manager 302 can determine the velocity of touch input 206 and compare the velocity of touch input 206 to a threshold. In the instance that the velocity is greater than the velocity threshold, notification manager 302 can be configured to dismiss the selected notifications associated with touch input 206. For example, notification manager 302 can determine a path for the notifications that would move the notifications off-screen, e.g., off the right side of touch-screen 200, and cause touch-screen 200 to render one or more images showing notifications in the group moving off-screen according to the path.
In a specific example, and referring to
Turning now to
Continuing with the description of
Turning to operation 1506, it shows select the first notification and the second notification in response to determining that the overlapping portion is greater than a threshold. For example, and referring to
Continuing with the description of
Turning now to
Continuing with the description of
For example, notification manager 302 can store a slope of a line and an offset that can be used to orientate stacked messages. In response to determining that multiple message have been selected, notification manager 302 can use the slope and coordinates that identify the upper-left corner of the last notification that was made part of the group to determine coordinates for the upper-left corner of the notification being grouped. Notification manager 302 can change the position of the notification being selected to the determined coordinates and cause touch-screen 200 to render one or more images of the notification sliding into the stack.
Turning to operation 1614, it shows dismissing both the first notification and the second notification in response to determining that a threshold amount of the first notification passed a boundary on the touch-screen and that the first touch input was removed from the touch-screen. In an exemplary embodiment, the amount of the first notification that has been moved off-screen can be used to determine if a dismissal gesture was performed. For example, gesture store 314 can include a value indicative of the amount of a notification as a dismissal threshold. In this example, when touch input is removed from touch-screen 200, notification manager 302 can determine how much of the first notification has been moved off-screen and compare the amount to the threshold. In the instance that the amount of the first notification that is off-screen is greater than the threshold, then notification manager 302 can be configured to dismiss the selected notifications associated with the touch input. For example, notification manager 302 can determine a path for the notifications that would move the notifications off-screen, e.g., off the right side of touch-screen 200, and cause touch-screen 200 to render one or more images showing notifications in the group moving off-screen according to the path.
In a specific example, and referring to
The foregoing detailed description has set forth various embodiments of the systems and/or processes via examples and/or operational diagrams. Insofar as such block diagrams, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof.
While particular aspects of the present subject matter described herein have been shown and described, it will be apparent to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from the subject matter described herein and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of the subject matter described herein.
This application is subject matter related to U.S. patent application Ser. No. ______ (Attorney Docket No. MVIR-0692/330616.01) entitled “Touch Gesture Notification Dismissal Techniques,” the contents of which is herein incorporated by reference in its entirety.