Abstract: Systems and methods for providing a safe confluence modality in a mobile computing device are described herein. According to the present subject matter, the system(s) implement the described method(s) for this purpose, where the method(s) include, determining an application switch between a primary application and a secondary application. Further, the method includes identifying the application switch to be a non-user triggered application (NUTA) switch based on the primary application and the secondary application, wherein the NUTA switch corresponds to the application switch initiated by a non-user of the mobile computing device. The method also includes capturing a user interaction after the application switch, wherein the user interaction is provided for the primary application running as one of background applications, and wherein functionalities of peripheral hardware components of the mobile computing device are mapped to the secondary application running as a foreground application.
FIELD OF INVENTION
[0001] The present subject matter relates to computing devices and, particularly, but not
exclusively, to mobile computing devices.
BACKGROUND
[0002] Mobile computing devices, such as laptops, computers, tablets, and mobile
phones, have seemingly become a ubiquitous part of today’s lifestyle. With increasing demands
from users for better processing capabilities and additional functionalities, the mobile computing
devices are now being configured with state of the art technologies, such as dual and multiple
processors, to meet the demands and provide a remarkable user experience.
[0003] Along with the support provided by more efficient and improved hardware to the
mobile computing devices, the remarkable user experience is also made possible by the use of
sophisticated and complex applications. Many of such applications are provided by the
manufacturer of the mobile communicating device, while many others are later installed by the
users to customize their mobile computing devices.
[0004] Installation and execution of applications on the mobile computing device is often
supported by an operating system, which abstracts the hardware, by providing an interface to the
capabilities of the computing device. Present day operating systems provide an environment
where several applications can run concurrently, with minimal interference between them, but
with support for safe data sharing.
SUMMARY
[0005] This summary is provided to introduce concepts related to systems and methods
for providing safe confluence modality. This summary is not intended to identify essential
features of the claimed subject matter nor is it intended for use in determining or limiting the
scope of the claimed subject matter.
[0006] In one implementation, system(s) and method(s) for providing a safe confluence
modality in a mobile computing device are described herein. According to the present subject
matter, the system(s) implement the described method(s) for this purpose, where the method(s)
include, determining an application switch between a primary application and a secondary
application. Further, the method includes identifying the application switch to be a non-user
3
triggered application (NUTA) switch based on the primary application and the secondary
application, wherein the NUTA switch corresponds to the application switch initiated by a nonuser
of the mobile computing device. The method also includes capturing a user interaction after
the application switch, wherein the user interaction is provided for the primary application
running as one of background applications, and wherein functionalities of peripheral hardware
components of the mobile computing device are mapped to the secondary application running as
a foreground application.
BRIEF DESCRIPTION OF THE FIGURES
[0007] The detailed description is described with reference to the accompanying figures.
In the figures, the left-most digit(s) of a reference number identifies the figure in which the
reference number first appears. The same numbers are used throughout the figures to reference
like features and components. Some embodiments of system and/or methods in accordance with
embodiments of the present subject matter are now described, by way of example only, and with
reference to the accompanying figures, in which:
[0008] Fig. 1 schematically illustrates a system for a mobile computing device to provide
a safe confluence modality, in accordance with an embodiment of the present subject matter;
[0009] Fig. 2(a) illustrates a user triggered application switch, in accordance with an
embodiment of the present subject matter;
[0010] Fig. 2(b) illustrates a non-user triggered application (NUTA) switch, in
accordance with an embodiment of the present subject matter; and
[0011] Fig. 3 illustrates a method for providing a safe confluence modality to users of a
mobile computing device, in accordance with an embodiment of the present subject matter.
[0012] It should be appreciated by those skilled in the art that any block diagrams herein
represent conceptual views of illustrative systems embodying the principles of the present
subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state
transition diagrams, pseudo code, and the like represent various processes which may be
substantially represented in computer readable medium and so executed by a computer or
processor, whether or not such computer or processor is explicitly shown.
4
DESCRIPTION OF EMBODIMENTS
[0013] Systems and methods for providing safe confluence modality in a mobile
computing device are described herein. The methods can be implemented in various mobile
computing devices capable of providing multi-tasking functionalities. Although the description
herein is with reference to smart-phones, the methods and systems may be implemented in other
mobile computing devices, albeit with a few variations, as will be understood by a person skilled
in the art.
[0014] Mobile computing devices, such as smart-phones, tablet PCs, and other handheld
devices have become popular and important to the daily activities of many users. Nowadays,
users are increasingly relying upon these mobile computing devices as an integral tool for the
performance of a wide-range of personal and work-related tasks. In response, mobile computing
devices like smart-phones have evolved into complex computing devices with equally complex
computer hardware and software.
[0015] Mobile computing devices provide various functionalities, including accessing
and displaying websites, sending and receiving e-mails, taking and displaying photographs and
videos, playing music and other forms of audio, etc. These, and numerous other functionalities,
are generally performed by applications that run on top of the mobile computing device’s
operating system.
[0016] Typically, while the operating system of the mobile computing device runs
multiple applications, at any given instance there is essentially one selected application which
has control over peripheral hardware components, like the display and keys, of the mobile
computing device. Such applications are generally referred to as foreground applications while
the other applications, running simultaneously on the operating system of the mobile computing
device without the control over peripheral hardware components, are referred to as background
applications. Generally, the background applications are associated with a lower priority of
execution and are operated when they are invoked either by the user or by the operating system.
[0017] While there are multiple background applications running on an operating system
of the mobile computing device, either the user, the operating system, or one of the background
applications may initiate a switch between one of the background application and the foreground
5
application. In certain situations, the operating system may suo motu invoke one of the
background applications to become the foreground application, thereby forcing the previous
foreground application to become one of the background applications. Further, in some
situations, the operating system may initiate an application and provide the application with
foreground status while forcing the previous foreground application to become one of the
background applications. For example, in smart-phones, while the user is browsing the Internet
through a web browsing application, the operating system may invoke a caller application to
intimate the user of an incoming call and force the web browsing application to become a
background application.
[0018] In some other situations, one of the background applications may invoke another
application as the foreground application while forcing the previous foreground application to
become one of the background applications. Furthermore, in certain scenarios, the foreground
application may either crash or exit due to an unexpected failure causing one of the background
applications to become the foreground application, thereby causing a switch among the
applications.
[0019] Generally, the switch between applications from one of the background
applications to the foreground application and vice versa occurs swiftly within a fraction of a
second. Also, along with the switching of the application, the switching between the control over
the peripheral devices occurs swiftly. While the switch between applications occurs, the time
taken to switch between applications is far less than reaction time of users. Also, with increasing
processing capability of the hardware components in the mobile communication device, the
difference between the switching time of applications and reaction time of users has been
increasing.
[0020] While there is a difference between the switching time of applications and the
reaction time of users, more often than not, there is a jitter or latency in user response leading to
out-of-sync interaction (OOSI). In other words, the users may provide a response for a primary
application which may be running as the foreground application. However, due to the delayed
response time of users, by the time the response may actually be received by the mobile
communication device, the operating system may have forced some other secondary application
to become the foreground application. Therefore, the response may be executed on to the
6
secondary application rather that being executed on the primary application for which it was
actually intended. Hence, such OOSI by the user may lead to unintended operations and
accidental execution of involuntary functionalities.
[0021] According to an implementation of the present subject matter, systems and
methods for providing safe confluence modality in a mobile computing device during switching
of application are described herein. On one hand, the described methods provide safe confluence
modality to avoid OOSI and unintended operations and, on the other hand, provide seamless
experience to users during unintentional switching between applications which are running on
the mobile communication device. According to the described implementation of the present
subject matter, the switching between applications may be monitored for the communication
device to determine an unintended or system invoked switch to provide the safe confluence
modality. It would be understood that the applications may include, and are not limited to, native
applications installed by the manufacturer of the mobile communication device and non-native
applications installed by the user on the mobile communication device.
[0022] In operation, switching between applications is monitored to identify a switch
between the foreground application and one of the background applications to determine whether
the switch is based on a non-user triggered application (NUTA) switch. The NUTA switch may
be understood as a switch between applications that has not been initiated by the user of the
mobile communication device. It would be understood that the NUTA switch may either be
initiated by the operating system of the mobile computing device, by another background
application with application switching rights or, by forced closure of the foreground application
due to a crash or unexpected failure.
[0023] Upon determining an occurrence of the NUTA switch, a safe confluence modality
may be provided to the users by capturing any interaction of the user, such as the OOSI
occurring during the NUTA switch. The captured interactions of the user may then be directed to
the application that has been forced to become one of the background applications. In another
implementation, if the NUTA switch is determined to have occurred due to forced closure of the
foreground application, the captured OOSI may be discarded and not provided to any application
at all. Based on the identification of the NUTA switch and capturing of the OOSI, an unintended
operation may be avoided and the users may be provided with a seamless experience.
7
[0024] Therefore, the above described methods allow switching of the applications of a
mobile computing device while preserving user interactions during the switch of application.
Further, the implementations of the described methods ensure that there is no loss of data or in
appropriate execution of an interaction onto an unintended application.
[0025] It should be noted that the description merely illustrates the principles of the
present subject matter. It will thus be appreciated that various arrangements may also be
employed that, although not explicitly described herein, embody the principles of the present
subject matter and are included within its spirit and scope. Furthermore, all examples recited
herein are principally intended expressly to be only for explanation purposes to aid the reader in
understanding the principles of the present subject matter, and are to be construed as being
without limitation to such specifically recited examples and conditions. Moreover, all statements
herein reciting principles, aspects, and embodiments of the invention, as well as specific
examples thereof, are intended to encompass equivalents thereof. The manner in which the
methods shall be implemented onto various systems has been explained in details with respect to
the Fig. 1-3. While aspects of described systems and methods can be implemented in any number
of different computing systems, transmission environments, and/or configurations, the
embodiments are described in the context of the following system(s).
[0026] Fig. 1 illustrates a system 102, for providing safe confluence modality in a mobile
computing device, in accordance with an embodiment of the present subject matter. Fig. 2(a) and
2(b) illustrate application switching instances of a mobile computing device, in accordance with
an embodiment of the present subject matter.
[0027] The system 102 described herein, can be implemented in any mobile computing
device, comprising a variety of devices including, but not limited to, hand-held devices, laptops
or other portable computers, tablet computers, Phablets, mobile phones, PDAs, Smartphones,
and the like. The system 102 may interface with multiple applications, running on the mobile
computing device, through the operating system of the mobile computing device.
[0028] The system 102 may be implemented in a mobile computing device where the
operating system of the mobile computing device is capable of providing multi-tasking
capability. Further, the operating system may also be capable of switching control of peripheral
8
hardware components between one application and another application based on priority of the
applications.
[0029] In one implementation, the system 102 includes processor(s) 104. The processor
104 may be implemented as one or more microprocessors, microcomputers, microcontrollers,
digital signal processors, central processing units, state machines, logic circuitries, and/or any
devices that manipulate signals based on operational instructions. Among other capabilities, the
processor(s) is configured to fetch and execute computer-readable instructions stored in a
memory.
[0030] Also, the system 102 may include interface(s) 106. The interfaces 106 may
include a variety of software and hardware interfaces that allow the system 102 to interact with
different applications and the peripheral hardware components of the mobile computing device.
The interfaces 106 may facilitate multiple communications within a wide variety of protocol
types including, operating system to application communication, inter process communication,
etc.
[0031] In another embodiment of the present subject matter, the system 102 may also
include a memory 108. The memory 108 may be coupled to the processor 104. The memory 108
can include any computer-readable medium known in the art including, for example, volatile
memory, such as static random access memory (SRAM) and dynamic random access memory
(DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable
programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
[0032] Further, the system 102 may include module(s) 110 and data 112. The modules
110 and the data 112 may be coupled to the processors 104. The modules 110, amongst other
things, include routines, programs, objects, components, data structures, etc., which perform
particular tasks or implement particular abstract data types. The modules 110 may also be
implemented as, signal processor(s), state machine(s), logic circuitries, and/or any other device
or component that manipulate signals based on operational instructions.
[0033] In another aspect of the present subject matter, the modules 110 may be
computer-readable instructions which, when executed by a processor/processing unit, perform
any of the described functionalities. The machine-readable instructions may be stored on an
electronic memory device, hard disk, optical disk or other machine-readable storage medium or
9
non-transitory medium. In one implementation, the computer-readable instructions can be also
be downloaded to a storage medium via a network connection.
[0034] In an implementation, the module(s) 110 includes a switch identification module
114, an interaction capturing module 116, a confluence mapping module 118, a time
determination module 120, and other module(s) 122. The other module(s) 122 may include
programs or coded instructions that supplement applications or functions performed by the
system 102. In said implementation, the data 112 includes NUTA switch record 124, confluence
time record 126, application switch data 128, and other data 130. The other data 130 amongst
other things, may serve as a repository for storing data that is processed, received, or generated
as a result of the execution of one or more modules in the module(s) 110. Although the data 112
is shown internal to the system 102, it may be understood that the data 112 can reside in an
external repository (not shown in the figure), which may be coupled to the system 102. The
system 102 may communicate with the external repository through the interface(s) 106 to obtain
information from the data 112.
[0035] As mentioned before, the system 102 is configured to provide safe confluence
modality for mobile communication devices. According to the present subject matter, the
confluence arises in situations where there is a switch between a foreground application and a
background application. The switch, as mentioned earlier, can be initiated by the user of the
mobile communication device, the operating system of mobile communication device, one of the
background applications, or due to force closure of the foreground application. In said
implementation, the system 102 includes a switch identification module 114. The switch
identification module 114 is configured to identify any switch between two applications of the
mobile computing device.
[0036] The application switch based on user inputs may be a user triggered application
(UTA) switch. For example, the user of a mobile communication device might be using an
application to compose and send short service messages (SMS), such as a messaging application
During the use of this application, the user may wish to listen to music while typing the content
of the SMS. In such a scenario, the user would generally initiate another application for music
playback. Fig. 2(a) illustrates a UTA switch scenario where the user switches from the
messaging application to the application allowing music playback. In Fig. 2(a), three different
10
instances of the mobile computing device are illustrated as 202-1, 202-2, and 202-3. The instance
of the mobile computing device 202-1 illustrates the messaging application being executed. The
instance of the mobile computing device 202-2 illustrates a user initiated switch scenario where
the user may choose to switch to any of the background applications. Based on the choice of the
user, the user may choose from the list of applications 206. From the list of applications depicted
in 206, the user may choose a play music application 208 to play music. Finally, the instance of
the mobile computing device 202-3 illustrates the switched application being run based on user
choice. Therefore, based on the user input, the mobile computing device switches from the
messaging application 204 to play music application 208.
[0037] While the user initiates and selects the music to be played, the messaging
application 204 may be shifted to become one of the background applications 206. It would be
understood by those skilled in the art that the messaging application 204 may not be closed
during this process since the operating system of the mobile computing device may allow multitasking
capabilities where multiple applications can be run in parallel and can utilize the
processing resource of the mobile computing device. Further, during this process of switching
between the messaging application and the application for music playback, the control of the
mobile computing device’s peripheral hardware components may also be switched between the
applications.
[0038] In one implementation of the present subject matter, the switch identification
module 114 is configured to identify such application switches between any two applications. In
operation, the switch identification module 114 may determine the application switch either
based on an interaction with the operating system of the mobile computing device, or based on
identification of change in functionality of the peripheral hardware components.
[0039] As would be understood by those skilled in the art, the peripheral hardware
components of the mobile computing device are associated with specific interaction functionality
as required by the user interface of the foreground application. As soon as the foreground
application is switched to any other application, the functionality associated with the peripheral
hardware components is also switched and the peripheral hardware components represent the
interaction functionality of the new foreground application. Therefore, each application capable
of being run on the mobile computing device has its own set of functionalities corresponding to
11
the available peripheral hardware components which changes with the switch of the foreground
application.
[0040] In the above mentioned scenario where the user switches between the messaging
application 204 and the application providing music playback functionality, the switch
identification module 114 may determine the switch based on the change in functionality of the
peripheral hardware components. It would be understood that the switch identification module
114 may also determine the switch based on an interaction with the operating system of the
mobile computing device. In one implementation of the present subject matter, the operating
system of the mobile computing device may provide an input to the switch identification module
114, whenever a switch between applications occurs, to flag a change in functionality of the
peripheral hardware components.
[0041] Apart from the UTA switch between applications, there might be instances when
the application switch is a non-user triggered application (NUTA) switch. In case the application
switch is a NUTA switch, the switch between the applications may be initiated by one of, the
operating system of the mobile computing device due to overriding priority of another
application, one of the background application running on the mobile computing device, and the
operating system of the mobile computing device due to forced closure of the foreground
application. As described for the UTA switch, in situations of occurrence of the NUTA switch
also, the control of the peripheral hardware components shifts from the foreground application to
the new foreground application. Furthermore, along with the switch in control of the peripheral
hardware components, the functionality associated with the peripheral hardware components is
also switched and the peripheral hardware components represent the interaction functionality of
the new foreground application.
[0042] A NUTA switch is depicted in Fig. 2(b) illustrating an operating system initiated
switch among applications. Fig. 2(b) depicts two instances of the mobile computing device as
252-1 and 252-2. The instance 252-1 depicts a user utilizing the messaging application 254.
During this use of the messaging application 254, the operating system of the mobile computing
device may trigger an application switch to provide notification of an incoming call to the user.
For this purpose, the operating system of the mobile communication device may invoke a caller
12
application 256. Since, the application switch is not triggered by the user, such an application
switch depicted in Fig. 2(b) forms a part of the NUTA switch.
[0043] In one implementation of the present subject matter, the switch identification
module 114, upon identifying the application switch, is also configured to determine whether the
application switch is a NUTA switch. In said implementation, the switch identification module
114 may determine the application switch to be a NUTA switch based on the NUTA switch
record 124. In said implementation, the NUTA switch record 124 may include an exhaustive
combination of possibilities where a NUTA switch among applications may occur. That is, the
NUTA switch record 124 may include an exhaustive combination of possible application
switches, where the switch is not triggered by the user. Each combination in the NUTA switch
record 124 may include a primary application and a corresponding secondary application. The
primary application may refer to a foreground application which may be switched with the
secondary application to make the secondary application the new foreground application. In one
implementation of the present subject matter, the NUTA record 124 may be described as
illustrated in table 1.
Record Id. Primary Application Secondary Application
1 Appi Appj
2 Appk Appl
3 Appa Appb
N Appp Appq
Table 1
[0044] In the above depicted Table1, each combination is listed against a record Id., such
as record Id. 1, record Id. 2, record Id. 3, …, and record Id. N. As described, each record has a
combination of two applications, the primary application and the secondary application. For
example, against record Id. 1, the application ‘i’ is the primary application and the application ‘j’
is the secondary application. This combination of applications ‘i’ and ‘j’ is defined to be a
NUTA switch when there is an application switch from application ‘i’ to application ‘j’. Hence,
based on the NUTA switch record 124, the switch identification module 114 may determine
13
whether the application switch from the primary application to the secondary application is a
NUTA switch or not.
[0045] In operation, the switch identification module 114 may determine the application
running as the foreground application to be one of a primary application and, the application
replacing the foreground application to become the new foreground application to be one of a
secondary application. Upon identifying the primary application and the secondary application,
the switch identification module 114 may search for an exact combination of these applications
in the NUTA switch record 124 against a single record Id. In case the combination of the primary
application and the secondary application is identified to be present in any corresponding record
Id. of the NUTA switch record 124, the switch identification module 114 may determine the
application switch from the primary application to the secondary application to be a NUTA
switch. For example, as depicted in Fig. 2(b), while the application switch occurs from the
messaging application 254 to the caller application 256, the switch identification module 114
may search for an entry corresponding to the scenario where against a record Id. the primary
application is defined to be the messaging application and the secondary application is defined to
be the caller application. In one implementation, upon determination of the application switch to
be the NUTA switch, the switch identification module 114 may store the record Id. along with
the primary application and the secondary application details of the application switch in the
application switch data 128.
[0046] Although it has been described that the switch identification module 114 may
determine the application switch to be a NUTA switch based on the NUTA switch record 124, it
would be appreciated that the switch identification module 114 may also determine the
application switch to be a NUTA switch based on an input from the operating system of the
mobile computing device. In such situations, whenever the operating system of the mobile
computing device performs an application switch without user trigger, an indication may be
provided to the switch identification module 114 to identify the application switch to be a NUTA
switch.
[0047] According to an implementation of the present subject matter, upon determination
of the application switch to be a NUTA switch by the switch identification module 114, the time
determination module 120 may identify a confluence time associated with the application switch.
14
Confluence time may be defined as time duration, computed from the time instance of the
application switch, during which an interaction from the user may be considered as an out-ofsync
interaction (OOSI). In other words, the confluence time period defines the maximum time
duration for which any user’s interaction, after the application switch, would be treated as an
interaction provided for the primary application.
[0048] In one implementation of the present subject matter, the confluence time for each
application switch is based on the primary and secondary application between which the
allocation switch has occurred. It would be appreciated that the time taken by the mobile
computing device to switch between applications may vary depending upon the applications
involved. For few applications the application switch may take less time while for others, it may
take a bit longer. In such situations, the confluence time may also vary based on the applications
involved. To this end, the system 102 may include the confluence time record 126 that may
include the value of the confluence time for each possible combination of NUTA switch. As
described earlier, each possible combination of NUTA switch among applications may be
defined in the NUTA switch record 124 against a specific record Id. Since the confluence time is
dependent on the applications between which the application switch occurs, the confluence time
record 126 may also include a value of confluence time against each record defined in the NUTA
switch record 124. In one implementation of the present subject matter, the confluence time
record 126 may be described as illustrated in table 2.
Record Id. Confluence Time
1 T(i,j)
2 T(k,l)
3 T(a,b)
N T(p,q)
Table 2
[0049] As described in table 1 illustrating the NUTA switch record, the table 2 illustrates
a confluence time against each record defined in the NUTA switch record. For example, against
the record Id. 1, the NUTA switch record defined an application switch between the application
‘i’ and the application ‘j’. Similarly, the table 2 defines the confluence time against the record Id.
1. That is, the time for which any user interaction after the application switch from application ‘i’
to application ‘j’ would be treated as an OOSI. Therefore, in one implementation, the time
15
determination module 120 may determine the confluence time for a NUTA switch between two
applications based on the confluence time record 126.
[0050] Although it has been described that the NUTA switch record and the confluence
time records are defined as separate entities however, it would be understood that there may exist
a single record defining the primary application, the secondary application, and the confluence
time against each record. Table 3 illustrates such a record based on which, both, the switch
identification module 114 may determine an application switch to be a NUTA switch and, the
time determination module 120 may determine the confluence time corresponding to the
application switch.
Record Id. Primary Application Secondary Application Confluence Time
1 Appi Appj T(i,j)
2 Appk Appl T(k,l)
3 Appa Appb T(a,b)
N Appp Appq T(p,q)
Table 3
[0051] In another implementation of the present subject matter, the time determination
module 120 is configured to determine the confluence time based on real time switching time
duration between two applications. In said implementation, the time determination module 120
may determine the time taken by the operating system of the mobile computing device to switch
between two applications in a NUTA switch to determine a corresponding confluence time.
[0052] The confluence time for a NUTA switch may also be fixed for all application
switches, irrespective of the applications involved. In such a scenario, the time determination
module 120 may determine a fixed pre-determined time period as the confluence time for each
application switch.
[0053] The confluence time determined by the time determination module 120, either
based on the confluence time record, the real time switching duration, or fixed value, may be
stored in the application switch data 128.
[0054] In one implementation of the present subject matter, upon determination of the
confluence time for the application switch by the time determination module 120, the interaction
16
capturing module 116 may capture any interaction by the user during the confluence time period.
In other words, once the application switch is determined to be a NUTA switch and a confluence
time for the application switch is determined, any interaction provided by the user during the
determined confluence time period is considered as the interaction for the primary application
rather than the currently active foreground secondary application.
[0055] For example, in the NUTA switch situation depicted in Fig. 2(b), in case the user
has pressed the back button 258 to delete a written letter on the messaging application 254 just
upon the occurrence of the NUTA switch, the user interaction would have been received by the
caller application 256 instead of the messaging application Further, since in this case the call
disconnect interface happens to appear at the same input position, the call disconnect would
instead have been triggered which might have not been the intent of the user. However, to avoid
such situations, the interaction capturing module 116 is configured to capture the user interaction
occurring within the confluence time period of the occurrence of the NUTA switch.
[0056] In one implementation, the interaction capturing module 116 is configured to
initiate a watchdog timer upon determination of an application switch to be a NUTA switch. The
time period of the watchdog timer may be based on confluence time period determined for the
application switch by the time determination module 120. In said implementation, any user
interaction identified by the interaction capturing module 116, while the watchdog timer is still
alive, is captured and identified as an OOSI. In one implementation, the captured user
interactions are not provided to the secondary applications by the interaction capturing module
116.
[0057] In another implementation of the present subject matter, the confluence mapping
module 118 of the system 102 is configured to map the OOSI captured by the interaction
capturing module 116 to the primary application of the application switch. For example, in the
above described situation of Fig. 2(b), the user interaction of 258 press captured by the
interaction capturing module 116 is mapped by the confluence mapping module to the messaging
application 254 rather than the caller application 256. In one implementation, the confluence
mapping module 118 may determine the primary application corresponding to the application
switch based on the NUTA switch record Id. stored in the application switch data 128 by the
switch determination module. Based on the NUTA switch record Id., the confluence mapping
17
module 118 may determine the corresponding primary application with respect to the secondary
application currently running as the new foreground application.
[0058] According to an implementation of the present subject matter, the confluence
mapping module 118 may provide a safe confluence modality to the users during a NUTA
switch. As would be understood by those skilled in the art, once the watchdog time implemented
by the interaction capturing module 116 expires, the user interactions may not be captured and
not provided to the primary application. Rather, the user interactions received after the expiry of
the watchdog timer may directly be provided to the secondary application.
[0059] Based on the implementation of the above described system 102 and the stated
methods, a safe confluence modality can be provided to users to handle OOSIs occurring during
the NUTA switches. The implementation may allow prevention of data loss due to OOSIs and
may also enhance the seamless application switching experience for users.
[0060] Fig. 3 illustrates a method to provide a safe confluence modality to users during a
non-user triggered application (NUTA) switch in a mobile computing device, according to an
embodiment of the present subject matter. The order in which the method 300 is described is not
intended to be construed as a limitation, and any number of the described method blocks can be
combined in any order to implement the method, or any alternative methods. Additionally,
individual blocks may be deleted from the method without departing from the spirit and scope of
the subject matter described herein. Furthermore, the method can be implemented in any suitable
hardware, software, firmware, or combination thereof.
[0061] The methods may be described in the general context of computer executable
instructions. Generally, computer executable instructions can include routines, programs, objects,
components, data structures, procedures, modules, functions, etc., that perform particular
functions or implement particular abstract data types. The methods may also be practiced in a
distributed computing environment where functions are performed by remote processing devices
that are linked through a communications network. In a distributed computing environment,
computer executable instructions may be located in both local and remote computer storage
media, including memory storage devices.
[0062] A person skilled in the art will readily recognize that steps of the methods can be
performed by programmed computers and communication devices. Herein, some embodiments
18
are also intended to cover program storage devices, for example, digital data storage media,
which are machine or computer readable and encode machine-executable or computerexecutable
programs of instructions, where said instructions perform some or all of the steps of
the described methods. The program storage devices may be, for example, digital memories,
magnetic storage media, such as a magnetic disks and magnetic tapes, hard drives, or optically
readable digital data storage media. The embodiments are also intended to cover both
communication network and communication devices configured to perform said steps of the
exemplary methods.
[0063] Referring to the Fig.3, at block 302, an application switch between a primary
application and a secondary application of a mobile computing device is determined. In one
implementation, the primary application is switched from a foreground application to one of
background applications and the secondary application is switched from one of the background
applications to the foreground application. Further, the application switch may occur either based
on a user trigger or, based on a non-user trigger. In said implementation, the primary application
and the secondary application may either be a native or a non-native application running on the
mobile communication device.
[0064] At block 304, it is determined whether the application switch is a non-user
triggered application (NUTA) switch or not. A NUTA switch may occur in situations when
either, an operating system of the mobile computing device invokes another application to run as
the foreground application, the operating system switches one of the background applications to
the foreground application when the already running foreground application force closes due to a
crash or un-expected failure, or one of the background application invokes an application to
become the foreground application. In one implementation, the occurrence of the NUTA switch
is determined based on a pre-defined exhaustive list of possible NUTA switches between the
applications of the mobile computing device. In case the determination at the block 304 is
positive, the control flows to block 306 (‘YES’ branch), however, in case the determination at
the block 304 is negative, the control flows back to the block 302 (‘NO’ branch).
[0065] At block 306, a confluence time based on the primary application and the
secondary application involved in the application switch is determined. The confluence time may
denote the time period after the application switch during which any user interaction may be
19
identified as an out-of-sync interaction (OOSI). In one implementation, the confluence time may
be based on the applications involved in the application switch where for each corresponding
pair of applications, the confluence time is pre-determined.
[0066] At block 308, an OOSI identified during the confluence time, after the application
switch is captured. In one implementation, the captured OOSI is meant for the primary
application, sent by a user of the mobile computing device. In said implementation, the expiry of
the confluence time may be monitored based on a watchdog timer where the limit if the timer is
based on the value of the confluence time.
[0067] At block 310, the captured OOSI is provided to the primary application which is
running as one of the background applications. Providing the OOSI to the primary application
provide safe confluence modality to the user during the NUTA switch.
[0068] Although embodiments for methods and systems for providing safe confluence
modality during NUTA switch in a mobile computing device have been described in a language
specific to structural features and/or methods, it is to be understood that the present subject
matter is not necessarily limited to the specific features or methods described. Rather, the
specific features and methods are disclosed as exemplary embodiments for providing the safe
confluence modality.
20
I/We claim:
1. A method for providing a safe confluence modality in a mobile computing device, the
method comprising:
determining an application switch between a primary application and a secondary
application, wherein the primary application is switched form a foreground application
to a background application, and wherein the secondary application is switched to the
foreground application;
identifying the application switch to be a non-user triggered application (NUTA)
switch based on the primary application and the secondary application, wherein the
NUTA switch corresponds to the application switch initiated by a non-user of the
mobile computing device;
capturing a user interaction after the application switch, wherein the user
interaction is provided for the primary application running as the background
application, and wherein functionalities of peripheral hardware components of the
mobile computing device are mapped to the secondary application running as the
foreground application; and
providing the captured user interaction to the primary application while the
secondary application is running as the foreground application.
2. The method as claimed in claim 1, wherein the capturing is based on a confluence time
associated with the application switch, and wherein the confluence time is indicative of a
time period for which user interactions are identified as out-of-sync interactions.
3. The method as claimed in claim 2, wherein the confluence time is based on the primary
application and the secondary application.
4. The method as claimed in claim 1, wherein the NUTA switch is triggered by an
operating system of the mobile computing device.
5. The method as claimed in claim 1, wherein the determining is based on an input received
from an operating system of the mobile computing system.
21
6. The method as claimed in claim 1, wherein the providing is based on a confluence time
associated with the application switch, and wherein the confluence time is based on the
primary application and the secondary application.
7. A system (102) for providing a safe confluence modality in a mobile computing device,
the system comprising:
a processor (104);
a switch identification module (114) coupled to the processor (104), configured
to:
determine an application switch between a primary application and a
secondary application, wherein the primary application is switched form a
foreground application to a background application, and wherein the secondary
application is switched to the foreground application; and
identify the application switch to be a non-user triggered application
(NUTA) switch based on the primary application and the secondary application,
wherein the NUTA switch corresponds to the application switch initiated by a
non-user of the mobile computing device;
a time determination module (120) coupled to the processor (104), configured to
determine a confluence time associated with the application switch, wherein the
confluence time is indicative of a time period for which user interactions are identified as
out-of-sync interactions (OOSI); and
an interaction capturing module (116) coupled to the processor (104), configured
to capture a user interaction within the confluence time after the NUTA switch, wherein
the user interaction is provided by a user for the primary application running as one of the
background applications, and wherein functionalities of peripheral hardware components
of the mobile computing device are mapped to the secondary application running as the
foreground application.
22
8. The system (102) as claimed in claim 7, further comprising a confluence mapping
module (118), configured to provide the captured user interaction to the primary
application while the secondary application is running as the foreground application.
9. The system (102) as claimed in claim 7, wherein the confluence mapping module 118 is
configured to determine the confluence time based on real-time switching time between
the primary application and the secondary application.
10. The system (102) as claimed in claim 7, wherein the interaction capturing module (116)
is configured to implement a watchdog time to capture the user interaction within the
confluence time after the NUTA switch.
11. The system as claimed in claim 7, wherein the NUTA switch is triggered by an operating
system of the mobile computing device.
| # | Name | Date |
|---|---|---|
| 1 | 359-del-2013-Correspondence Others-(05-03-2013).pdf | 2013-03-05 |
| 1 | 359-DEL-2013-RELEVANT DOCUMENTS [09-09-2023(online)].pdf | 2023-09-09 |
| 2 | 359-DEL-2013-IntimationOfGrant21-09-2021.pdf | 2021-09-21 |
| 2 | SAMSUNG INDIA ELECTRONICS PVT LTD_GPOA.pdf | 2013-03-28 |
| 3 | FORM 5.pdf | 2013-03-28 |
| 3 | 359-DEL-2013-PatentCertificate21-09-2021.pdf | 2021-09-21 |
| 4 | FORM 3.pdf | 2013-03-28 |
| 4 | 359-del-2013-ABSTRACT [24-12-2019(online)].pdf | 2019-12-24 |
| 5 | Figures.pdf | 2013-03-28 |
| 5 | 359-del-2013-CLAIMS [24-12-2019(online)].pdf | 2019-12-24 |
| 6 | CS.pdf | 2013-03-28 |
| 6 | 359-del-2013-DRAWING [24-12-2019(online)].pdf | 2019-12-24 |
| 7 | 359-del-2013-Form-3-(19-02-2014).pdf | 2014-02-19 |
| 7 | 359-del-2013-FER_SER_REPLY [24-12-2019(online)].pdf | 2019-12-24 |
| 8 | 359-del-2013-OTHERS [24-12-2019(online)].pdf | 2019-12-24 |
| 8 | 359-del-2013-Correspondence-Others-(19-02-2014).pdf | 2014-02-19 |
| 9 | 359-DEL-2013-PETITION UNDER RULE 137 [24-12-2019(online)].pdf | 2019-12-24 |
| 9 | 359-DEL-2013-RELEVANT DOCUMENTS [08-05-2018(online)].pdf | 2018-05-08 |
| 10 | 359-DEL-2013-Changing Name-Nationality-Address For Service [08-05-2018(online)].pdf | 2018-05-08 |
| 10 | 359-DEL-2013-Correspondence-101019.pdf | 2019-10-14 |
| 11 | 359-DEL-2013-AMENDED DOCUMENTS [08-05-2018(online)].pdf | 2018-05-08 |
| 11 | 359-DEL-2013-OTHERS-101019.pdf | 2019-10-14 |
| 12 | 359-DEL-2013-8(i)-Substitution-Change Of Applicant - Form 6 [19-09-2019(online)].pdf | 2019-09-19 |
| 12 | 359-DEL-2013-FER.pdf | 2019-07-16 |
| 13 | 359-DEL-2013-ASSIGNMENT DOCUMENTS [19-09-2019(online)].pdf | 2019-09-19 |
| 13 | 359-DEL-2013-PA [19-09-2019(online)].pdf | 2019-09-19 |
| 14 | 359-DEL-2013-ASSIGNMENT DOCUMENTS [19-09-2019(online)].pdf | 2019-09-19 |
| 14 | 359-DEL-2013-PA [19-09-2019(online)].pdf | 2019-09-19 |
| 15 | 359-DEL-2013-8(i)-Substitution-Change Of Applicant - Form 6 [19-09-2019(online)].pdf | 2019-09-19 |
| 15 | 359-DEL-2013-FER.pdf | 2019-07-16 |
| 16 | 359-DEL-2013-AMENDED DOCUMENTS [08-05-2018(online)].pdf | 2018-05-08 |
| 16 | 359-DEL-2013-OTHERS-101019.pdf | 2019-10-14 |
| 17 | 359-DEL-2013-Correspondence-101019.pdf | 2019-10-14 |
| 17 | 359-DEL-2013-Changing Name-Nationality-Address For Service [08-05-2018(online)].pdf | 2018-05-08 |
| 18 | 359-DEL-2013-PETITION UNDER RULE 137 [24-12-2019(online)].pdf | 2019-12-24 |
| 18 | 359-DEL-2013-RELEVANT DOCUMENTS [08-05-2018(online)].pdf | 2018-05-08 |
| 19 | 359-del-2013-Correspondence-Others-(19-02-2014).pdf | 2014-02-19 |
| 19 | 359-del-2013-OTHERS [24-12-2019(online)].pdf | 2019-12-24 |
| 20 | 359-del-2013-FER_SER_REPLY [24-12-2019(online)].pdf | 2019-12-24 |
| 20 | 359-del-2013-Form-3-(19-02-2014).pdf | 2014-02-19 |
| 21 | 359-del-2013-DRAWING [24-12-2019(online)].pdf | 2019-12-24 |
| 21 | CS.pdf | 2013-03-28 |
| 22 | 359-del-2013-CLAIMS [24-12-2019(online)].pdf | 2019-12-24 |
| 22 | Figures.pdf | 2013-03-28 |
| 23 | 359-del-2013-ABSTRACT [24-12-2019(online)].pdf | 2019-12-24 |
| 23 | FORM 3.pdf | 2013-03-28 |
| 24 | 359-DEL-2013-PatentCertificate21-09-2021.pdf | 2021-09-21 |
| 24 | FORM 5.pdf | 2013-03-28 |
| 25 | SAMSUNG INDIA ELECTRONICS PVT LTD_GPOA.pdf | 2013-03-28 |
| 25 | 359-DEL-2013-IntimationOfGrant21-09-2021.pdf | 2021-09-21 |
| 26 | 359-DEL-2013-RELEVANT DOCUMENTS [09-09-2023(online)].pdf | 2023-09-09 |
| 26 | 359-del-2013-Correspondence Others-(05-03-2013).pdf | 2013-03-05 |
| 1 | 2019-07-0914-30-01_09-07-2019.pdf |
| 1 | 2021-05-2713-42-50AE_27-05-2021.pdf |
| 2 | 2019-07-0914-30-01_09-07-2019.pdf |
| 2 | 2021-05-2713-42-50AE_27-05-2021.pdf |