Patent information
IP India · live recordAbstract
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.
Applicants
1Inventors
1Claims
11Specification
Show full textCollapse
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.