IP Library Granted Patent US 10,846,378
Granted Patent B2
US 10,846,378 · App. 15/508,995 · Granted Nov 24, 2020

Monitoring user activity

Inventors: Sean Michael Quinlan (Duvall, WA); Haniff Somani (Mercer Island, WA); Sanjiv Maurya (Fremont, CA)
Assignee: BlackBerry Limited
G06F21/31H04L9/0819H04L9/0861H04L9/3247H04L9/3297H04L63/0815H04W12/0608G06F2221/2139G06F2221/2151
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 10,846,378
App. No.
15/508,995
Granted
Nov 24, 2020
Kind
B2
Abstract

A method for monitoring user activity in respect of a plurality of applications on a computing device. The method comprises storing, by a first application running on the computing device, a first timestamp indicating the time that user activity was last detected with respect to the first application. The first application receives a message from a second application running on the computing device. The message comprises a second timestamp indicating the time that user activity was last detected with respect to the second application. The first application updates the first timestamp based on the second timestamp when the time indicated by the second timestamp is later than the time indicated by the first timestamp. Thus, user activity across the plurality of application can be monitored, such that an inactivity timer running on a particular application in the group of applications can account for user activity with respect to the other application in the plurality.

Claims (39)

1. A method of monitoring user activity in respect of a plurality of applications on a computing device, the method comprising:

storing, by a first application running on the computing device, a first timestamp indicating a time that user activity was last detected in respect of the first application;

receiving, by the first application in a locked state, a message from a second application running on the computing device, the message comprising a second timestamp indicating a time that user activity was last detected in respect of the second application, wherein the second application is in an unlocked state when the message is received;

sending, by the first application, an unlock request to a third application when a difference between the time indicated by the second timestamp and a current time is less than a timeout period;

querying the message in memory associated with the first application;

processing of the message after receipt of an unlock response from the third application;

determining, by the first application, whether the time indicated by the second timestamp is later than the time indicated by the first timestamp; and

updating, by the first application, the first timestamp based on the second timestamp in response to determining that the time indicated by the second timestamp is later than the time indicated by the first timestamp.

2. The method of claim 1 , wherein the message comprises a digital signature associated with the second timestamp, and the method comprises verifying the digital signature to confirm an authenticity of the second timestamp.

3. The method of claim 2 , wherein the digital signature is generated by the second application using a key provided by the first application.

4. The method of claim 3 , wherein the first application is configured to generate the key in response to detecting a restart of the first application.

5. The method of claim 1 , wherein updating the first timestamp comprises storing the second timestamp in place of the first timestamp.

6. The method of claim 1 , comprising locking the first application when an difference between the time indicated by the first timestamp and a current time exceeds a timeout period.

7. The method of claim 1 , wherein the first timestamp is generated relative to the time that the computing device was last rebooted.

8. The method of claim 6 , wherein locking the first application comprises locking a user interface of the first application.

9. The method of claim 1 , wherein the message is one of a plurality of ping messages sent by the second application according to a predetermined time interval, wherein the predetermined time interval is less than a timeout period.

10. The method of claim 1 , wherein the second application has delegated authentication of a user of the second application to the first application, and the message is a request to authenticate the user of the second application.

11. The method of claim 1 , comprising: sending a lock message from the first application to the second application and locking the first application when an difference between the time indicated by the first timestamp and a current time exceeds a timeout period, wherein the lock message is configured to lock the second application.

12. The method of claim 11 , wherein the lock message is broadcast to the plurality of applications on the computing device, the plurality of applications including the second application.

13. A non-transitory computer-readable storage medium comprising computer-executable instructions which, when executed by a processor, cause a computing device to perform a method of monitoring user activity in respect of a plurality of applications on a computing device, the method comprising:

storing, by a first application running on the computing device, a first timestamp indicating a time that user activity was last detected in respect of the first application;

receiving, by the first application in a locked state, a message from a second application running on the computing device, the message comprising a second timestamp indicating a time that user activity was last detected in respect of the second application, wherein the second application is in an unlocked state when the message is received;

sending, by the first application, an unlock request to a third application when a difference between the time indicated by the second timestamp and a current time is less than a timeout period;

querying the message in memory associated with the first application;

processing of the message after receipt of an unlock response from the third application;

determining, by the first application, whether the time indicated by the second timestamp is later than the time indicated by the first timestamp; and

updating, by the first application, the first timestamp based on the second timestamp in response to determining that the time indicated by the second timestamp is later than the time indicated by the first timestamp.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the message comprises a digital signature associated with the second timestamp, and the method comprises verifying the digital signature to confirm an authenticity of the second timestamp.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the digital signature is generated by the second application using a key provided by the first application.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the first application is configured to generate the key in response to detecting a restart of the first application.

17. The non-transitory computer-readable storage medium of claim 13 , wherein updating the first timestamp comprises storing the second timestamp in place of the first timestamp.

18. A computing device for monitoring user activity in respect of a plurality of applications running on the computing device, the computing device comprising at least one memory including computer program code associated with a first application and a second application in the plurality of applications; and at least one processor in data communication with the at least one memory, wherein the at least one processor is configured to:

store, at the first application running on the computing device, a first timestamp indicating the time that user activity was last detected in respect of the first application;

receive, at the first application in a locked state, a message from the second application running on the computing device, the message comprising a second timestamp indicating the time that user activity was last detected in respect of the second application, wherein the second application is in an unlocked state when the message is received;

send, by the first application, an unlock request to a third application when a difference between the time indicated by the second timestamp and a current time is less than a timeout period;

querying the message in memory associated with the first application;

processing of the message after receipt of an unlock response from the third application;

determine, at the first application, whether the time indicated by the second timestamp is later than the time indicated by the first timestamp; and

update, at the first application, the first timestamp based on the second timestamp in response to determining that the time indicated by the second timestamp is later than the time indicated by the first timestamp.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: GOOD TECHNOLOGY HOLDINGS LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 045196/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2017
From: QUINLAN, SEAN MICHAEL; SOMANI, HANIFF; MAURYA, SANJIV
To: GOOD TECHNOLOGY CORPORATION
Reel/Frame 042880/0827 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2017
From: GOOD TECHNOLOGY CORPORATION
To: GOOD TECHNOLOGY HOLDINGS LIMITED
Reel/Frame 043072/0533 →