IP Library Granted Patent US 11,303,719
Granted Patent B2
US 11,303,719 · App. 17/206,503 · Granted Apr 12, 2022

System, method and computer program product for capturing touch events for a virtual mobile device platform

Inventors: Brian J. Vetter (Austin, TX); Rajesh P. Gopi (West Lake Hills, TX); Galib Arrieta (Austin, TX)
Assignee: HYPORI LLC
H04L67/2861G06F3/0416G06F3/04883G06F9/52G06F21/83H04L67/10H04L69/321H04L43/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,303,719
App. No.
17/206,503
Granted
Apr 12, 2022
Kind
B2
Abstract

Embodiments disclosed herein can allow a user of mobile device in a network environment to switch between using public network services and using private network services. To access private network services, a virtualization cloud client application running on mobile device connects to a virtualized device hosted in virtualization cloud and brokers access to private network services as well as local device functions. Embodiments disclosed herein provide a system, method, and computer program product for capturing touch events for a virtual mobile device platform and relaying the captured touch events to the virtual mobile device platform while ensuring that movements and speed of touch events are accurately represented at the virtual mobile device platform.

Claims (71)

1. A method for capturing touch events, the method comprising:

capturing touch event data from a touch event at a client device, the touch event data comprising a type of touch event associated with the touch event;

in response to capturing the touch event data, acquiring a lock that prevents the touch event data from being sent to a server;

determining, based on a requirement associated with the touch event being satisfied, to send the touch event data to the server without waiting for another touch event at the client device; and

based on the determining, releasing the lock and sending the touch event data to the server.

2. The method according to claim 1 , wherein the touch event data comprises timing information for the touch event, and wherein the touch event is reconstructed at the server based on the timing information.

3. The method according to claim 1 , wherein the requirement comprises requiring that a speed of the touch event satisfies a threshold, and

wherein the determining to send the touch event data comprises:

determining that the speed of the touch event satisfies the threshold; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the speed of the touch event satisfies the threshold.

4. The method according to claim 1 , wherein the requirement comprises requiring that the touch event is a first type of touch event of a plurality of touch event types, and

wherein the determining to send the touch event data comprises:

determining that the touch event corresponds to the first type of touch event; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the touch event is the first type of touch event.

5. The method according to claim 1 , wherein the requirement comprises requiring a maximum hold time associated with the touch event data to have transpired, and

wherein the determining to send the touch event data comprises:

determining that the maximum hold time associated with the touch event has transpired; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the maximum hold time has transpired.

6. The method according to claim 1 , wherein the requirement comprises requiring that the touch event is a touch up event, and

wherein the determining to send the touch event data comprises:

determining that the touch event is a touch up event; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the touch event is a touch up event.

7. The method according to claim 1 , wherein the requirement comprises requiring that a queue associated with the touch events stores no more than one touch event after a predetermined quantity of time has transpired, and wherein the determining to send the touch event data comprises:

determining that the queue associated with the touch events stores no more than one touch event after the predetermined quantity of time has transpired; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the queue associated with the touch events stores no more than one touch event after the predetermined quantity of time has transpired.

8. The method according to claim 1 , wherein the releasing the lock occurs after the sending the touch event data to the server.

9. One or more non-transitory, computer-readable media storing instructions that, when executed by one or more processors, effectuate operations comprising:

capturing touch event data from a touch event at a client device, the touch event data comprising a type of touch event associated with the touch event;

in response to capturing the touch event data, acquiring a lock that prevents the touch event data from being sent to a server;

determining, based on a requirement associated with the touch event being satisfied, to send the touch event data to the server without waiting for another touch event at the client device; and

based on the determining, releasing the lock and sending the touch event data to the server.

10. The non-transitory, computer-readable media according to claim 9 , wherein the requirement comprises requiring that a queue associated with the touch events stores no more than one touch event after a predetermined quantity of time has transpired, and

wherein the determining to send the touch event data comprises:

determining that the queue associated with the touch events stores no more than one touch event after the predetermined quantity of time has transpired; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the queue associated with the touch events stores no more than one touch event after the predetermined quantity of time has transpired.

11. The non-transitory, computer-readable media according to claim 9 , wherein the requirement comprises requiring that a speed of the touch event satisfies a threshold, and

wherein the determining to send the touch event data comprises:

determining that the speed of the touch event satisfies the threshold; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the speed of the touch event satisfies the threshold.

12. The non-transitory, computer-readable media according to claim 9 , wherein the requirement comprises requiring that the touch event is a first type of touch event of a plurality of touch event types, and

wherein the determining to send the touch event data comprises:

determining that the touch event corresponds to the first type of touch event; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the touch event is the first type of touch event.

13. The non-transitory, computer-readable media according to claim 9 , wherein the requirement comprises requiring a maximum hold time associated with the touch event data to have transpired, and

wherein the determining to send the touch event data comprises:

determining that the maximum hold time associated with the touch event has transpired; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the maximum hold time has transpired.

14. The non-transitory, computer-readable media according to claim 9 , wherein the releasing the lock occurs after the sending the touch event data to the server.

15. A system for capturing touch events, the system comprising:

one or more processors programed with computer program instructions that, when executed, cause the system to:

capture touch event data from a touch event at a client device, the touch event data comprising a type of touch event associated with the touch event;

in response to capturing the touch event data, acquire a lock that prevents the touch event data from being sent to a server;

determine, based on a requirement associated with the touch event being satisfied, to send the touch event data to the server without waiting for another touch event at the client device; and

based on the determining, release the lock and send the touch event data to the server.

16. The system according to claim 15 , wherein the requirement comprises requiring that a queue associated with the touch events stores no more than one touch event after a predetermined quantity of time has transpired, and

wherein the determining to send the touch event data comprises:

determining that the queue associated with the touch events stores no more than one touch event after the predetermined quantity of time has transpired; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the queue associated with the touch events stores no more than one touch event after the predetermined quantity of time has transpired.

17. The system according to claim 15 , wherein the requirement comprises requiring that a speed of the touch event satisfies a threshold, and

wherein the determining to send the touch event data comprises:

determining that the speed of the touch event satisfies the threshold; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the speed of the touch event satisfies the threshold.

18. The system according to claim 15 , wherein the requirement comprises requiring that the touch event is a first type of touch event of a plurality of touch event types, and

wherein the determining to send the touch event data comprises:

determining that the touch event corresponds to the first type of touch event; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the touch event is the first type of touch event.

19. The system according to claim 15 , wherein the requirement comprises requiring a maximum hold time associated with the touch event data to have transpired, and

wherein the determining to send the touch event data comprises:

determining that the maximum hold time associated with the touch event has transpired; and

determining to send the touch event data to the server without waiting for another touch event at the client device based on the determination that the maximum hold time has transpired.

20. The system according to claim 15 , wherein the releasing the lock occurs after the sending the touch event data to the server.

Assignments (5)
CHANGE OF NAME Recorded Aug 12, 2023
From: HYPORI LLC
To: HYPORI, INC.
Reel/Frame 064573/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2021
From: VETTER, BRIAN J.; GOPI, RAJESH P.; ARRIETA, GALIB
To: DROIDCLOUD, INC.
Reel/Frame 055649/0263 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2021
From: HYPORI, INC.
To: INTELLIGENT WAVES LLC
Reel/Frame 055649/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2021
From: INTELLIGENT WAVES LLC
To: HYPORI LLC
Reel/Frame 055649/0520 →
CHANGE OF NAME Recorded Mar 19, 2021
From: DROIDCLOUD, INC.
To: HYPORI, INC.
Reel/Frame 055665/0762 →
Continuity (5)
Continuation 16577547 · Sep 20, 2019
Continuation 15449708 · Mar 3, 2017
Continuation 14160794 · Jan 22, 2014
Provisional Application 61755205 · Jan 22, 2013
Related Publication 20210227043A1 · Jul 22, 2021